Kom igång: Konfigurera Ansible på en virtuell Azure-dator

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

Den här artikeln visar hur du installerar Ansible på en virtuell Centos-dator i Azure.

I den här artikeln kan du se hur du:

  • Skapa en resursgrupp
  • Skapa en virtuell CentOS-dator
  • Installera Ansible på den virtuella datorn
  • Anslut till den virtuella datorn via SSH
  • Konfigurera Ansible på den virtuella datorn

Förutsättningar

  • Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
  • Azure-tjänstens huvudnamn: Skapa ett huvudnamn för tjänsten och anteckna följande värden: appId, displayName, lösenord och klientorganisation.

Skapa en virtuell dator

  1. Skapa en Azure-resursgrupp.

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

    Du kan behöva ersätta parametern --location med lämpligt värde för din miljö.

  2. Skapa den virtuella Azure-datorn för Ansible.

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

    <password> Ersätt lösenordet.

  3. Hämta den offentliga IP-adressen för den virtuella Azure-datorn.

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

Anslut till den virtuella datorn via SSH

Anslut till den virtuella datorns offentliga IP-adress med hjälp av SSH-kommandot.

ssh azureuser@<vm_ip_address>

<vm_ip_address> Ersätt med lämpligt värde som returnerades i tidigare kommandon.

Installera Ansible på den virtuella datorn

Ansible 2.9 med modulen azure_rm

Kör följande kommandon för att konfigurera Ansible 2.9 på Centos:

#!/bin/bash

# Update all packages that have available updates.
sudo yum update -y

# Install Python 3 and pip.
sudo yum install -y python3-pip

# Upgrade pip3.
sudo pip3 install --upgrade pip

# Install Ansible.
pip3 install "ansible==2.9.17"

# Install Ansible azure_rm module for interacting with Azure.
pip3 install ansible[azure]

Ansible 2.10 med azure.azcollection

Kör följande kommandon för att konfigurera Ansible på Centos:

#!/bin/bash

# Update all packages that have available updates.
sudo yum update -y

# Install Python 3 and pip.
sudo yum install -y python3-pip

# Upgrade pip3.
sudo pip3 install --upgrade pip

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

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

Viktiga punkter:

  • Ansible-kontrollnoden kräver att Python 2 (version 2.7) eller Python 3 (version 3.5 och senare) är installerade. Ansible 4.0.0 och ansible-core 2.11 har ett mjukt beroende av Python 3.8, men fungerar med lägre versioner. Ansible 5.0.0 och ansible-core 2.12 kräver dock 3,8 och senare.

Skapa Azure-autentiseringsuppgifter

För att konfigurera Ansible-autentiseringsuppgifterna behöver du följande information:

  • Ditt Azure-prenumerations-ID och klient-ID
  • Program-ID och hemlighet för tjänstens huvudnamn

Konfigurera Ansible-autentiseringsuppgifterna med någon av följande tekniker:

Alternativ 1: Skapa fil med ansible-autentiseringsuppgifter

I det här avsnittet skapar du en fil med lokala autentiseringsuppgifter för att ange autentiseringsuppgifter för Ansible. Av säkerhetsskäl bör filer med autentiseringsuppgifter endast användas i utvecklingsmiljöer.

Mer information om hur du definierar Ansible-autentiseringsuppgifter finns i Tillhandahålla autentiseringsuppgifter till Azure-moduler.

  1. När du har anslutit till den virtuella värddatorn skapar och öppnar du en fil med namnet credentials:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Infoga följande rader i filen. Ersätt platshållarna med tjänstens huvudnamnsvärden.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Spara och stäng filen.

Alternativ 2: Definiera Ansible-miljövariabler

På den virtuella värddatorn exporterar du värdena för tjänstens huvudnamn för att konfigurera dina Ansible-autentiseringsuppgifter.

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>

Testa Ansible-installation

Nu har du en virtuell dator med Ansible installerad och konfigurerad!

Det här avsnittet visar hur du skapar en testresursgrupp i din nya Ansible-konfiguration. Om du inte behöver göra det kan du hoppa över det här avsnittet.

Alternativ 1: Använd ett ad hoc-ansible-kommando

Kör följande ad hoc Ansible-kommando för att skapa en resursgrupp:

#Ansible 2.9 with azure_rm module
ansible localhost -m azure_rm_resourcegroup -a "name=ansible-test location=eastus"

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

Ersätt <resource_group_name> och <location> med dina värden.

Alternativ 2: Skriva och köra en Ansible-spelbok

  1. Spara följande kod som create_rg.yml.

    Ansible 2.9 med azure_rm modul

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

    Ansible 2.10 med azure.azcollection

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

    Ersätt <resource_group_name> och <location> med dina värden.

  2. Kör spelboken med hjälp av ansible-playbook.

    ansible-playbook create_rg.yml
    

Läs mer om azure.azcollection.

Rensa resurser

  1. Spara följande kod som delete_rg.yml.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Kör spelboken med kommandot ansible-playbook . Ersätt platshållaren med namnet på den resursgrupp som ska tas bort. Alla resurser i resursgruppen tas bort.

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

    Viktiga punkter:

    • På grund av variabeln register och debug avsnittet i spelboken visas resultatet när kommandot har slutförts.

Nästa steg