1
0
Clone
8
01 - Infrastructure Azure
Polaire edited this page 2025-01-30 17:19:07 +01:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Nous devons notamment mettre en place les Pré-requis nécessaires au déploiement de l'infrastructure dans Azure.

Il faut notamment installer :

  • AzureCLI
  • la collection Ansible lié à Azure

Connexion à Azure az login

a- Créer un Service Principal dans Azure :

az ad sp create-for-rbac --name "AnsibleServicePrincipal" --role="Contributor" --scopes="/subscriptions/<subscription_id>"

Option Description
az ad sp create-for-rbac Crée un Service Principal avec un rôle basé sur RBAC (Role-Based Access Control).
--name "AnsibleServicePrincipal" Donne un nom au Service Principal (ici, AnsibleServicePrincipal). Tu peux le remplacer par un autre nom si besoin.
--role "Contributor" Attribue le rôle Contributor au Service Principal. Ce rôle lui permet de gérer toutes les ressources dans la portée définie, sans pouvoir modifier les
autorisations daccès.
--scopes "/subscriptions/<subscription_id>" Définit la portée des permissions. Ici, on applique le rôle à tout labonnement Azure. Tu dois remplacer <subscription_id> par lID de ton abonnement
{
 "appId": "212debe2-a0fa-XXXX-9aa5-97f7524036cf",
 "displayName": "AnsibleServicePrincipal",
 "password": "LALALALALALAL",
 "tenant": "LETENANT"
}

b- Configurer Ansible pour utiliser le Service Principal

On utilise un fichier de configuration : Créer un fichier ~/.azure/credentials et ajouter :

[default]
subscription_id=12345678-XXXX-cdef-1234-567890abcdef
client_id=11111111-2222-3333-4444-555555555555
secret=your-secret-password
tenant=66666666-7777-8888-9999-000000000000
Clés Signification
appId Client ID → Identifiant unique de ton Service Principal dans Azure AD
password Client Secret → Mot de passe généré pour authentifier le Service Principal.
tenant Tenant ID → Identifiant de ton Azure Active Directory (AAD).
subscriptionId Identifiant de l'abonnement Azure.

A ajouter dans le fichier yml :

  • name: Configurer l'authentification Azure via fichier credentials copy: dest: "/root/.azure/credentials" content: | [default] subscription_id={{ lookup('env', 'AZURE_SUBSCRIPTION_ID') }} client_id={{ lookup('env', 'AZURE_CLIENT_ID') }} secret={{ lookup('env', 'AZURE_SECRET') }} tenant={{ lookup('env', 'AZURE_TENANT') }} mode: '0600'
  • name: Vérifier la connexion à Azure command: az account show register: azure_account changed_when: false
  • name: Afficher les informations du compte Azure debug: msg: "{{ azure_account.stdout }}"

2- Déploiement via Ansible

On commence par créer le mot de passe sécurisé :

ansible-vault create secrets.yml MDP : Le mot de passe!

Puis on créer le fichier secrets.yml

admin_password: "{{ lookup('password', '/dev/null length=20 chars=ascii_letters,digits,special') }}"
ssh_public_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

On crézer le fichier 01_Infra_Azure.yml (A LINKER)

Exécuter le playbook : ansible-playbook --ask-vault-pass infra_azure.yml > Indiquer le mot de passe de la vault