diff --git a/Home.md b/Home.md index 88f93e7..d5ab2e8 100644 --- a/Home.md +++ b/Home.md @@ -51,3 +51,98 @@ Une fois le fichier créer, on lance la commande : SCREEEN +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/"` + + +| **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 d’accès. | +| --scopes "/subscriptions/" | Définit la portée des permissions. Ici, on applique le rôle à tout l’abonnement Azure. Tu dois remplacer par l’ID 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 \ No newline at end of file