Pipelines: Automatiseren als een pro
Nu je repo staat, gaan we je DevOps echt laten shinen. Pipelines zijn het hart van elke Azure DevOps setup. Stel je een superbriljante deployment-pijpleiding voor die je code automatisch uitrolt naar een Azure-resource. Met YAML kun je deze magie coderen.
Hier een kort voorbeeld voor Terraform:
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- script: |
terraform init
terraform plan
terraform apply -auto-approve
displayName: 'Deploy Terraform'
Klinkt fancy? Dat is het ook. Maar het geeft je totale controle over wat, waar, en hoe je code live gaat.
Virtual Machines en Key Vault: De kroon op je werk
Je hebt nu een DevOps-pipeline. Tijd om echt iets cools te deployen, zoals een virtuele machine met logingegevens die veilig in een Key Vault worden opgeslagen.
Voorbeeld Terraform-config:
resource "azurerm_virtual_machine" "vm_example" {
name = "myVM"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
vm_size = "Standard_DS1_v2"
os_profile {
computer_name = "myVM"
admin_username = "azureuser"
admin_password = azurerm_key_vault_secret.vm_password.value
}
}
resource "azurerm_key_vault" "example" {
name = "myKeyVault"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
}
resource "azurerm_key_vault_secret" "vm_password" {
name = "vmAdminPassword"
value = "SuperSecurePassword123!"
key_vault_id = azurerm_key_vault.example.id
}
Het is veiliger als je het wachtwoordt automatisch laat genereren. Dat kan met bijvoorbeeld de volgende code:
resource "random_password" "admin_password" {
length = 16
special = true
override_special = "!#$%&*()-_=+[]{}<>?"
}
Dit wachtwoord wordt veilig gegenereerd en is nooit zichtbaar in je Terraform-bestanden. Het gegenereerde wachtwoord slaan we direct op in Azure Key Vault. Dit maakt het toegankelijk voor andere resources zonder dat je het wachtwoord in je code hoeft te bewaren, dat kan met de volgende code:
resource "azurerm_key_vault_secret" "vm_admin_password" {
name = "vmAdminPassword"
value = random_password.admin_password.result
key_vault_id = azurerm_key_vault.example.id
}
Het wachtwoord wordt nu veilig opgeslagen in de Key Vault, waar alleen geautoriseerde resources of gebruikers toegang toe hebben. In plaats van het wachtwoord direct in je code te zetten, haal je het op uit de Key Vault op het moment dat het nodig is.
resource "azurerm_virtual_machine" "example" {
name = "example-vm"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
vm_size = "Standard_DS1_v2"
os_profile {
computer_name = "example-vm"
admin_username = "azureuser"
admin_password = data.azurerm_key_vault_secret.vm_admin_password.value
}
...
lifecycle {
ignore_changes = [admin_password]
}
}
data "azurerm_key_vault_secret" "vm_admin_password" {
name = "vmAdminPassword"
key_vault_id = azurerm_key_vault.example.id
}
Met deze configuratie wordt het wachtwoord veilig uit de Key Vault opgehaald zonder dat het in je Terraform-bestanden voorkomt.
Deploy dit via je YAML-pipeline en laat Azure het zware werk doen. Jouw VM staat binnen een paar minuten live.
Hulp nodig? Wij fixen het!
Het klinkt misschien als een hoop gedoe, maar met de juiste setup en tools wordt Azure DevOps een feestje. Heb je ergens hulp bij nodig? Of wil je gewoon dat alles werkt zonder hoofdpijn? Neem contact met ons op, en wij regelen het voor je.
Wij regelen de code en automatisering, zodat jij je volledig kunt focussen op wat écht belangrijk is: jouw werk.
Klinkt goed? Neem contact met ons op.