Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält ein Beispiel für ein ansible Playbook zum Konfigurieren eines virtuellen Linux-Computers.
In diesem Artikel erfahren Sie, wie Sie:
- Erstellen einer Ressourcengruppe
- Erstellen eines virtuellen Netzwerks
- Erstellen einer öffentlichen IP-Adresse
- Erstellen einer Netzwerksicherheitsgruppe
- Erstellen einer virtuellen Netzwerkschnittstellenkarte
- Erstellen eines virtuellen Computers
1. Konfigurieren Ihrer Umgebung
- Azure-Abonnement: Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Installieren Sie Ansible: Führen Sie eine der folgenden Optionen aus:
- Installieren und Konfigurieren von Ansible auf einem virtuellen Linux-Computer
- Konfigurieren von Azure Cloud Shell
2. Erstellen eines SSH-Schlüsselpaars
Führen Sie den folgenden Befehl aus. Wenn Sie dazu aufgefordert werden, geben Sie die Dateien an, die im folgenden Verzeichnis erstellt werden sollen:
/home/azureuser/.ssh/authorized_keys.ssh-keygen -m PEM -t rsa -b 4096Kopieren Sie den Inhalt der Öffentlichen Schlüsseldatei. Standardmäßig heißt
id_rsa.pubdie Datei des öffentlichen Schlüssels . Der Wert ist eine lange Zeichenfolge, die mit "ssh-rsa" beginnt. Sie benötigen diesen Wert im nächsten Schritt.
3. Implementieren des Ansible Playbook
Erstellen Sie ein Verzeichnis, in dem der Beispiel-Ansible-Code getestet und ausgeführt werden soll, und machen Sie es zum aktuellen Verzeichnis.
Erstellen Sie eine Datei namens
main.yml, und fügen Sie den folgenden Code ein: Ersetzen Sie den<key_data>Platzhalter durch den Wert des öffentlichen Schlüssels aus dem vorherigen Schritt.- name: Create Azure VM hosts: localhost connection: local tasks: - name: Create resource group azure_rm_resourcegroup: name: myResourceGroup location: eastus - name: Create virtual network azure_rm_virtualnetwork: resource_group: myResourceGroup name: myVnet address_prefixes: "10.0.0.0/16" - name: Add subnet azure_rm_subnet: resource_group: myResourceGroup name: mySubnet address_prefix: "10.0.1.0/24" virtual_network: myVnet - name: Create public IP address azure_rm_publicipaddress: resource_group: myResourceGroup allocation_method: Static name: myPublicIP register: output_ip_address - name: Public IP of VM debug: msg: "The public IP is {{ output_ip_address.state.ip_address }}." - name: Create Network Security Group that allows SSH azure_rm_securitygroup: resource_group: myResourceGroup name: myNetworkSecurityGroup rules: - name: SSH protocol: Tcp destination_port_range: 22 access: Allow priority: 1001 direction: Inbound - name: Create virtual network interface card azure_rm_networkinterface: resource_group: myResourceGroup name: myNIC virtual_network: myVnet subnet: mySubnet public_ip_name: myPublicIP security_group: myNetworkSecurityGroup - name: Create VM azure_rm_virtualmachine: resource_group: myResourceGroup name: myVM vm_size: Standard_DS1_v2 admin_username: azureuser ssh_password_enabled: false ssh_public_keys: - path: /home/azureuser/.ssh/authorized_keys key_data: "<key_data>" network_interfaces: myNIC image: offer: 0001-com-ubuntu-server-jammy publisher: Canonical sku: 22_04-lts version: latest
4. Führen Sie das Playbook aus
Führen Sie ansible-playbook aus, um das Ansible-Playbook auszuführen.
ansible-playbook main.yml
5. Überprüfen der Ergebnisse
Führen Sie az vm list aus, um zu überprüfen, ob der virtuelle Computer erstellt wurde.
az vm list -d -o table --query "[?name=='myVM']"
6. Herstellen einer Verbindung mit dem virtuellen Computer
Führen Sie den SSH-Befehl aus, um eine Verbindung mit Ihrer neuen Linux-VM herzustellen. Ersetzen Sie den <IP-Adresse> Platzhalter durch die IP-Adresse aus dem vorherigen Schritt.
ssh azureuser@<ip_address> -i /home/azureuser/.ssh/authorized_keys/id_rsa
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: rgFühren Sie das Playbook mit dem Befehl "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>"Wichtige Punkte:
- Aufgrund der
registerVariablen und desdebugAbschnitts des Playbooks werden die Ergebnisse angezeigt, sobald der Befehl abgeschlossen ist.
- Aufgrund der