Freigeben über


Erstellen einer virtuellen Linux-Computer in Azure mithilfe von Ansible

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.

2. Erstellen eines SSH-Schlüsselpaars

  1. 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 4096
    
  2. Kopieren 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

  1. Erstellen Sie ein Verzeichnis, in dem der Beispiel-Ansible-Code getestet und ausgeführt werden soll, und machen Sie es zum aktuellen Verzeichnis.

  2. 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

  1. 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
    
  2. Fü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 register Variablen und des debug Abschnitts des Playbooks werden die Ergebnisse angezeigt, sobald der Befehl abgeschlossen ist.

Nächste Schritte