Introduzione: Configurare Ansible in una macchina virtuale di Azure
Attenzione
Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.
Questo articolo illustra come installare Ansible in una macchina virtuale Centos in Azure.
In questo articolo vengono illustrate le operazioni seguenti:
- Creare un gruppo di risorse
- Creare una macchina virtuale CentOS
- Installare Ansible nella macchina virtuale
- Connettersi alla macchina virtuale tramite SSH
- Configurare Ansible nella macchina virtuale
Prerequisiti
- Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Entità servizio di Azure: creare un'entità servizio, prendere nota dei valori seguenti: appId, displayName, password e tenant.
Creare una macchina virtuale
Crea gruppo di risorse di Azure.
az group create --name QuickstartAnsible-rg --location eastus
Potrebbe essere necessario sostituire il parametro
--location
con il valore appropriato per l'ambiente.Creare la macchina virtuale di Azure per Ansible.
az vm create \ --resource-group QuickstartAnsible-rg \ --name QuickstartAnsible-vm \ --image CentOS85Gen2 \ --admin-username azureuser \ --admin-password <password>
Sostituire la
<password>
password.Ottenere l'indirizzo IP pubblico della macchina virtuale di Azure.
az vm show -d -g QuickstartAnsible-rg -n QuickstartAnsible-vm --query publicIps -o tsv
Connettersi alla macchina virtuale tramite SSH
Usando il comando SSH, connettersi all'indirizzo IP pubblico della macchina virtuale.
ssh azureuser@<vm_ip_address>
<vm_ip_address>
Sostituire con il valore appropriato restituito nei comandi precedenti.
Installare Ansible nella macchina virtuale
Ansible 2.9 con il modulo azure_rm
Eseguire i comandi seguenti per configurare Ansible 2.9 in 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 con azure.azcollection
Eseguire i comandi seguenti per configurare Ansible in 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
Punti principali:
- Il nodo di controllo Ansible richiede Python 2 (versione 2.7) o Python 3 (versioni 3.5 e successive) installato. Ansible 4.0.0 e ansible-core 2.11 ha una dipendenza temporanea da Python 3.8, ma funziona con versioni precedenti. Tuttavia, Ansible 5.0.0 e ansible-core 2.12 richiederanno 3.8 e versioni successive.
Creare credenziali di Azure
Per configurare le credenziali di Ansible, sono necessarie le informazioni seguenti:
- ID sottoscrizione e ID tenant di Azure
- ID applicazione e segreto dell'entità servizio
Configurare le credenziali di Ansible con una delle tecniche seguenti:
- Opzione 1: Creare un file di credenziali Ansible
- Opzione 2: Definire le variabili di ambiente Ansible
Opzione 1: Creare un file di credenziali Ansible
In questa sezione viene creato un file di credenziali locale per fornire credenziali ad Ansible. Per motivi di sicurezza, i file di credenziali devono essere usati solo negli ambienti di sviluppo.
Per altre informazioni su come definire le credenziali di Ansible, vedere Providing Credentials to Azure Modules (Fornire le credenziali ai moduli di Azure).
Dopo avere completato correttamente la connessione alla macchina virtuale host, creare e aprire un file denominato
credentials
:mkdir ~/.azure vi ~/.azure/credentials
Inserire le righe seguenti nel file. Sostituire i segnaposto con i valori dell'entità servizio.
[default] subscription_id=<subscription_id> client_id=<service_principal_app_id> secret=<service_principal_password> tenant=<service_principal_tenant_id>
Salva e chiudi il file.
Opzione 2: Definire le variabili di ambiente Ansible
Nella macchina virtuale host esportare i valori dell'entità servizio per configurare le credenziali di 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>
Testare l'installazione di Ansible
È ora disponibile una macchina virtuale con Ansible installato e configurato.
Questa sezione illustra come creare un gruppo di risorse di test all'interno della nuova configurazione di Ansible. Se non è necessario eseguire tale operazione, è possibile ignorare questa sezione.
Opzione 1: Usare un comando ansible ad hoc
Eseguire il comando Ansible ad hoc seguente per creare un gruppo di risorse:
#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>"
Sostituire <resource_group_name>
e <location>
con i propri valori.
Opzione 2: Scrivere ed eseguire un playbook Ansible
Salvare il codice seguente come
create_rg.yml
.Ansible 2.9 con modulo azure_rm
--- - hosts: localhost connection: local tasks: - name: Creating resource group azure_rm_resourcegroup: name: "<resource_group_name" location: "<location>"
Ansible 2.10 con azure.azcollection
- hosts: localhost connection: local collections: - azure.azcollection tasks: - name: Creating resource group azure_rm_resourcegroup: name: "<resource_group_name" location: "<location>"
Sostituire
<resource_group_name>
e<location>
con i propri valori.Eseguire il playbook con ansible-playbook.
ansible-playbook create_rg.yml
Altre informazioni su azure.azcollection.
Pulire le risorse
Salvare il codice seguente come
delete_rg.yml
.--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rg
Eseguire il playbook usando il comando ansible-playbook. Sostituire il segnaposto con il nome del gruppo di risorse da eliminare. Tutte le risorse presenti nel gruppo di risorse verranno eliminate.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
Punti principali:
- A causa della variabile e
debug
dellaregister
sezione del playbook, i risultati vengono visualizzati al termine del comando.
- A causa della variabile e
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per