Actualiser Home
+95
@@ -51,3 +51,98 @@ Une fois le fichier créer, on lance la commande :
|
|||||||
|
|
||||||
SCREEEN
|
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/<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 d’accès. |
|
||||||
|
| --scopes "/subscriptions/<subscription_id>" | Définit la portée des permissions. Ici, on applique le rôle à tout l’abonnement Azure. Tu dois remplacer <subscription_id> 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
|
||||||
Reference in New Issue
Block a user