-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines-1.yml
70 lines (62 loc) · 3.87 KB
/
azure-pipelines-1.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- master # branche "master"
pool: "default" # notre pool d'agents locaux (nous en avons deux)
variables:
- name: CloudInitContent # variable contenant les scripts de déploiement, vide au départ
steps:
# script de récupération et de chiffrement du CloudInitContent
- task: PowerShell@2
displayName: Encrytpion du cloud-init
inputs:
targetType: "inline"
script: |
$CloudContent = Get-Content -Path .\AzureRessourceGroup1\VMSS\Cloud-init.txt -Raw
Write-Host $CloudContent
$encodedContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($CloudContent))
Write-Host $encodedContent
Write-Host "##vso[task.setvariable variable=CloudInitContent;]$encodedContent"
# débug : vérification du CloudInitContent par affichage dans les logs
- script: |
echo $(CloudInitContent)
# déploiement du Resource Group contenant la KeyVault
- task: AzureResourceManagerTemplateDeployment@3
displayName: Déploiement de la KeyVault
inputs:
deploymentScope: "Resource Group" # déploiement à l'échelle d'un Resource Group
azureResourceManagerConnection: "Azure subscription 1(e81592a2-5b66-4be5-8e47-eb76c109ccf2)" # l'abonnement Azure d'Elias
subscriptionId: "e81592a2-5b66-4be5-8e47-eb76c109ccf2" # même chose
action: "Create Or Update Resource Group" # "créer ou mettre à jour un Resource Group"
resourceGroupName: "KeyVaultRG" # ce sera le Resource Group du Scale Set
location: "East US"
templateLocation: "Linked artifact"
csmFile: "$(System.DefaultWorkingDirectory)/AzureRessourceGroup1/KeyVault/azuredeploy.json" # chemin du template
csmParametersFile: "$(System.DefaultWorkingDirectory)/AzureRessourceGroup1/KeyVault/azuredeploy.parameters.json" # chemin des paramètres du template
overrideParameters: "-adminPassword $(AdminPass)" #Le mot de passe est stocké dans une variable de la pipeline pour ne pas apparaitre en "brut" dans cette dernière
deploymentMode: "Validation" # Validation Only
# déploiement du Resource Group contenant le Linux Scale Set (VMSS)
- task: AzureResourceManagerTemplateDeployment@3
displayName: Déploiement du VMSS
inputs:
deploymentScope: "Resource Group" # déploiement à l'échelle d'un Resource Group
azureResourceManagerConnection: "Azure subscription 1(e81592a2-5b66-4be5-8e47-eb76c109ccf2)" # l'abonnement Azure d'Elias
subscriptionId: "e81592a2-5b66-4be5-8e47-eb76c109ccf2" # même chose
action: "Create Or Update Resource Group" # "créer ou mettre à jour un Resource Group"
resourceGroupName: "ScaleSetRG" # ce sera le Resource Group du Scale Set
location: "East US"
templateLocation: "Linked artifact"
csmFile: "$(System.DefaultWorkingDirectory)/AzureRessourceGroup1/VMSS/azuredeploy.json" # chemin du template
csmParametersFile: "$(System.DefaultWorkingDirectory)/AzureRessourceGroup1/VMSS/azuredeploy.parameters.json" # chemin des paramètres du template
overrideParameters: "-customData $(CloudInitContent) -adminPassword $(AdminPass)" #Le mot de passe est stocké dans une variable de la pipeline pour ne pas apparaitre en "brut" dans cette dernière
deploymentMode: "Validation" # Validation Only
# récupération du secret de la KeyVault
- task: AzureKeyVault@2
displayName: Récuperation le Secret
inputs:
azureSubscription: "Azure subscription 1(e81592a2-5b66-4be5-8e47-eb76c109ccf2)" # l'abonnement Azure d'Elias
KeyVaultName: "keyvaultprojet7" # nom du KeyVault
SecretsFilter: "*" # prendre tous les secrets
RunAsPreJob: false # nos jobs ne dépendent pas du KeyVault