Partager via


Démarrage : Configurez Ansible sur une VM Azure

Cet article montre comment installer Ansible sur une machine virtuelle Ubuntu dans Azure.

Dans cet article, vous apprendrez comment :

  • Créer un groupe de ressources
  • Créer une machine virtuelle Ubuntu
  • Installer Ansible sur la machine virtuelle
  • Vous connecter à la machine virtuelle via SSH
  • Configurer Ansible sur la machine virtuelle

Prérequis

  • Abonnement Azure : Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Création d'une machine virtuelle

  1. Création d’un groupe de ressources Azure.

    az group create --name QuickstartAnsible-rg --location eastus
    

    Vous devrez peut-être remplacer le paramètre --location par la valeur correspondant à votre environnement.

  2. Créez la machine virtuelle Azure pour Ansible.

    az vm create \
    --resource-group QuickstartAnsible-rg \
    --name QuickstartAnsible-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --admin-password <password>
    

    Remplacez <password> par votre mot de passe.

  3. Obtenez l’adresse IP publique de la machine virtuelle Azure.

    az vm show -d -g QuickstartAnsible-rg -n QuickstartAnsible-vm --query publicIps -o tsv
    

Se connecter à votre machine virtuelle via SSH

À l’aide de la commande SSH, connectez-vous à l’adresse IP publique de votre machine virtuelle.

ssh azureuser@<vm_ip_address>

Remplacez <vm_ip_address> par la valeur appropriée retournée dans les commandes précédentes.

Installer Ansible sur la machine virtuelle

Ansible avec azure.azcollection

Exécutez les commandes suivantes pour configurer Ansible sur Ubuntu:

#!/bin/bash

sudo apt update

sudo apt install software-properties-common

sudo add-apt-repository --yes --update ppa:ansible/ansible

sudo apt install ansible

# Install Ansible az collection for interacting with Azure. (optional)
ansible-galaxy collection install azure.azcollection --force 

# Install Ansible modules for Azure (optional)
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt

Points essentiels :

  • Le nœud de contrôle Ansible nécessite l’installation de Python 2 (version 2.7) ou de Python 3 (versions 3.5 et ultérieures). Ansible 4.0.0 et ansible-core 2.11 ont une dépendance logicielle vis-à-vis de Python 3.8, mais fonctionnent avec des versions inférieures. Toutefois, Ansible 5.0.0 et ansible-core 2.12 exigent les versions 3.8 et ultérieures.

Créer des informations d’identification Azure

Pour configurer les informations d’identification Ansible, vous avez besoin des informations suivantes :

  • Votre ID d’abonnement Azure et votre ID de locataire
  • L’ID de l’application du principal du service et le secret

Configurez les informations d’identification Ansible à l’aide de l’une des techniques suivantes :

Option 1 : Créer un fichier d’informations d’identification Ansible

Dans cette section, vous créez un fichier d’informations d’identification local pour fournir ces informations à Ansible. Pour des raisons de sécurité, les fichiers d’informations d’identification doivent être utilisés uniquement dans les environnements de développement.

Pour plus d’informations sur la définition des informations d’identification Ansible, consultez Fourniture d’informations d’identification aux modules Azure.

  1. Une fois que vous avez réussi à vous connecter à la machine virtuelle hôte, créez et ouvrez un fichier nommé credentials :

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Insérez les lignes suivantes dans le fichier. Remplacez les espaces réservés par les valeurs du principal de service.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Enregistrez le fichier et fermez-le.

Option 2 : Définir des variables d’environnement Ansible

Sur la machine virtuelle hôte, exportez les valeurs du principal de service pour configurer vos informations d’identification Ansible.

export AZURE_SUBSCRIPTION_ID=<subscription_id>
export AZURE_CLIENT_ID=<service_principal_app_id>
export AZURE_SECRET=<service_principal_password>
export AZURE_TENANT=<service_principal_tenant_id>

Tester l’installation d’Ansible

Vous disposez maintenant d’une machine virtuelle sur laquelle Ansible est installé et configuré.

Cette section montre comment créer un groupe de ressources de test dans votre nouvelle configuration Ansible. Si vous n’avez pas besoin de faire cela, vous pouvez ignorer cette section.

Option 1 : Utiliser une commande Ansible ad hoc

Exécutez la commande Ansible ad hoc suivante pour créer un groupe de ressources :


#Ansible with azure.azcollection
ansible localhost -m azure.azcollection.azure_rm_resourcegroup -a "name=<resource_group_name> location=<location>"

Remplacez <resource_group_name> et <location> par vos valeurs.

Option 2 : Écrire et exécuter un playbook Ansible

  1. Enregistrez le code suivant en tant que create_rg.yml.

    Ansible avec azure.azcollection

    - hosts: localhost
      connection: local
      collections:
        - azure.azcollection
      tasks:
        - name: Creating resource group
          azure_rm_resourcegroup:
            name: "<resource_group_name"
            location: "<location>"
    

    Remplacez <resource_group_name> et <location> par vos valeurs.

  2. Exécutez le playbook en utilisant ansible-playbook.

    ansible-playbook create_rg.yml
    

Découvrez-en plus sur azure.azcollection.

Nettoyer les ressources

  1. Enregistrez le code suivant en tant que delete_rg.yml.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Exécutez le playbook en utilisant la commande ansible-playbook. Remplacez l’espace réservé par le nom du groupe de ressources à supprimer. Toutes les ressources du groupe de ressources seront supprimées.

    ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
    

    Points essentiels :

    • En raison de la variable register et de la section debug du playbook, les résultats s’affichent quand la commande se termine.

Étapes suivantes