Przejdź do głównej zawartości

2 posty z tagiem "terraform"

Wyświetl wszystkie tagi

Czytelne podsumowanie wdrożenia Terraform w GitHub Actions - Terraform Summary

· 3 min aby przeczytać
Piotr Rogala
MVP Azure & owner JustCloud.pl

Jeśli korzystasz z GitHub Actions i Terraform, ta wtyczka z pewnością Ci się spodoba. W rozbudowanych środowiskach, gdzie zarządzamy wieloma repozytoriami i pipeline'ami, a wdrożenia Terraform są obszerne i często modyfikowane, kluczowa jest szybka identyfikacja zmian oraz potencjalnych błędów. Przeglądanie surowych logów z terraform plan bywa męczące.

Z pomocą przychodzi wtyczka: Terraform summary action.

Pozwala ona na przetworzenie wyniku polecenia terraform plan i wyświetlenie go w formie czytelnego podsumowania bezpośrednio w widoku "Summary" uruchomionego workflow.

Oto jak dodać ją do swojego pipeline'u:

      - name: Terraform Plan
working-directory: ${{ env.WORKING_DIR }}
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
ARM_USE_OIDC: true
# Dla wywołania terraform plan należy dodać: "| tee terraform_plan_output.txt"
run: terraform plan -var-file="production.tfvars" | tee terraform_plan_output.txt

# Po terraform plan należy dodać uruchomienie terraform summary
- name: Terraform Plan Summary
uses: sgametrio/terraform-summary-action@main
with:
log-file: ${{ env.WORKING_DIR }}/terraform_plan_output.txt
title: 'Terraform Plan Summary'

Podsumowanie zmian Terraform w GitHub Actions

Szybkie wdrożenie Azure OpenAI z Terraform i AVM

· 2 min aby przeczytać
Piotr Rogala
MVP Azure & owner JustCloud.pl

Moduły AVM (Azure Verified Modules) oferują gotowe i sprawdzone rozwiązania do tworzenia zasobów w Azure. Poniżej pokażę, jak błyskawicznie wdrożyć usługę Azure OpenAI Service przy użyciu Terraform. Prezentowana konfiguracja korzysta z publicznego dostępu sieciowego, co jest odpowiednie do testów i nauki (w środowiskach produkcyjnych zaleca się wdrożenie przy użyciu Private Endpoints).

Jak tego użyć?

W pliku main.tf definiujemy grupę zasobów oraz wywołujemy moduł AVM:

resource "azurerm_resource_group" "this" {
name = var.resource_group_name
location = var.location

tags = var.tags
}

module "openai" {
source = "Azure/avm-res-cognitiveservices-account/azurerm"
version = "~> 0.7"

name = var.openai_service_name
resource_group_name = azurerm_resource_group.this.name
location = azurerm_resource_group.this.location
kind = "OpenAI"
sku_name = "S0"

cognitive_deployments = { for d in var.openai_models : d.deployment_name => {
name = d.deployment_name
model = {
format = "OpenAI"
name = d.model_name
version = d.model_version
}
scale = {
type = d.sku_name
capacity = d.sku_capacity
}
} }

public_network_access_enabled = var.public_network_access == "Enabled"
outbound_network_access_restricted = !var.outbound_network_access_enabled

tags = var.tags

depends_on = [azurerm_resource_group.this]
}