Erste Schritte: Konfigurieren von Ansible auf einem virtuellen Azure-Computer
In diesem Artikel wird veranschaulicht, wie Sie Ansible auf einem virtuellen Ubuntu-Computer in Azure installieren.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Erstellen einer Ressourcengruppe
- Erstellen eines virtuellen Ubuntu-Computers
- Installieren von Ansible auf dem virtuellen Computer
- Herstellen einer Verbindung mit dem virtuellen Computer über SSH
- Konfigurieren von Ansible auf dem virtuellen Computer
Voraussetzungen
- Azure-Abonnement: Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Azure-Dienstprinzipal: Erstellen Sie einen Dienstprinzipal, und notieren Sie sich die folgenden Werte: appId, displayName, password und tenant.
Erstellen eines virtuellen Computers
Erstellen einer Azure-Ressourcengruppe.
az group create --name QuickstartAnsible-rg --location eastus
Möglicherweise müssen Sie den Parameter
--location
durch den entsprechenden Wert für Ihre Umgebung ersetzen.Erstellen Sie den virtuellen Azure-Computer für Ansible.
az vm create \ --resource-group QuickstartAnsible-rg \ --name QuickstartAnsible-vm \ --image Ubuntu2204 \ --admin-username azureuser \ --admin-password <password>
Ersetzen Sie
<password>
durch Ihr Kennwort.Rufen Sie die öffentliche IP-Adresse des virtuellen Azure-Computers ab.
az vm show -d -g QuickstartAnsible-rg -n QuickstartAnsible-vm --query publicIps -o tsv
Herstellen einer Verbindung mit Ihrem virtuellen Computer per SSH
Verwenden Sie den SSH-Befehl, um eine Verbindung mit der öffentlichen IP-Adresse Ihres virtuellen Computers herzustellen.
ssh azureuser@<vm_ip_address>
Ersetzen Sie <vm_ip_address>
durch den entsprechenden Wert, der in den vorherigen Befehlen zurückgegeben wurde.
Installieren von Ansible auf dem virtuellen Computer
Ansible mit „azure.azcollection“
Führen Sie die folgenden Befehle aus, um Ansible unter Ubuntu zu konfigurieren:
#!/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
Die wichtigsten Punkte:
- Für den Ansible-Steuerknoten muss Python 2 (Version 2.7) oder Python 3 (Version 3.5 und höher) installiert sein. Für Ansible 4.0.0 und ansible-core 2.11 besteht eine lose Abhängigkeit von Python 3.8, aber es können auch frühere Versionen genutzt werden. Für Ansible 5.0.0 und ansible-core 2.12 wird aber Version 3.8 oder höher benötigt.
Erstellen von Azure-Anmeldeinformationen
Um die Anmeldeinformationen für Ansible zu konfigurieren, benötigen Sie die folgenden Informationen:
- Ihre Azure-Abonnement-ID und Mandanten-ID
- Die Anwendungs-ID des Dienstprinzipals und das Geheimnis
Konfigurieren Sie die Ansible-Anmeldeinformationen mithilfe einer der folgenden Methoden:
- Option 1: Erstellen einer Datei mit Ansible-Anmeldeinformationen
- Option 2: Definieren von Ansible-Umgebungsvariablen
Option 1: Erstellen einer Datei mit Ansible-Anmeldeinformationen
In diesem Abschnitt erstellen Sie eine lokale Datei mit Anmeldeinformationen, um Anmeldeinformationen für Ansible bereitzustellen. Aus Sicherheitsgründen sollten Dateien mit Anmeldeinformationen ausschließlich in Entwicklungsumgebungen verwendet werden.
Weitere Informationen zum Definieren von Ansible-Anmeldeinformationen finden Sie unter Bereitstellen von Anmeldeinformationen für Azure-Module.
Nachdem Sie erfolgreich eine Verbindung mit dem virtuellen Hostcomputer hergestellt haben, erstellen und öffnen Sie eine Datei mit dem Namen
credentials
:mkdir ~/.azure vi ~/.azure/credentials
Fügen Sie in der Datei die folgenden Zeilen ein. Ersetzen Sie die Platzhalter durch die Werte für den Dienstprinzipal.
[default] subscription_id=<subscription_id> client_id=<service_principal_app_id> secret=<service_principal_password> tenant=<service_principal_tenant_id>
Speichern und schließen Sie die Datei.
Option 2: Definieren von Ansible-Umgebungsvariablen
Exportieren Sie auf dem virtuellen Hostcomputer die Werte für den Dienstprinzipal, um Ihre Ansible-Anmeldeinformationen zu konfigurieren.
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>
Testen der Ansible-Installation
Sie verfügen nun über einen virtuellen Computer, auf dem Ansible installiert und konfiguriert ist!
In diesem Abschnitt wird gezeigt, wie Sie eine Testressourcengruppe in der neuen Ansible-Konfiguration erstellen. Ist dies nicht erforderlich, können Sie diesen Schritt überspringen.
- Option 1: Verwenden eines Ansible-Ad-hoc-Befehls
- Option 2: Schreiben und Ausführen eines Ansible-Playbooks
Option 1: Verwenden eines Ansible-Ad-hoc-Befehls
Führen Sie den folgenden Ansible-Ad-hoc-Befehl aus, um eine Ressourcengruppe zu erstellen:
#Ansible with azure.azcollection
ansible localhost -m azure.azcollection.azure_rm_resourcegroup -a "name=<resource_group_name> location=<location>"
Ersetzen Sie <resource_group_name>
und <location>
durch Ihre eigenen Werte.
Option 2: Schreiben und Ausführen eines Ansible-Playbooks
Speichern Sie den folgenden Code als
create_rg.yml
.Ansible mit „azure.azcollection“
- hosts: localhost connection: local collections: - azure.azcollection tasks: - name: Creating resource group azure_rm_resourcegroup: name: "<resource_group_name" location: "<location>"
Ersetzen Sie
<resource_group_name>
und<location>
durch Ihre eigenen Werte.Führen Sie das Playbook mithilfe von ansible-playbook aus.
ansible-playbook create_rg.yml
Informieren Sie sich über azure.azcollection.
Bereinigen von Ressourcen
Speichern Sie den folgenden Code als
delete_rg.yml
.--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rg
Führen Sie das Playbook mithilfe des Befehls ansible-playbook aus. Ersetzen Sie den Platzhalter durch den Namen der zu löschenden Ressourcengruppe. Alle Ressourcen innerhalb der Ressourcengruppe werden gelöscht.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
Die wichtigsten Punkte:
- Aufgrund der Variablen
register
und des Abschnittsdebug
des Playbooks werden die Ergebnisse angezeigt, wenn der Befehl abgeschlossen ist.
- Aufgrund der Variablen