Linux rendszerű virtuális gépek létrehozása az Azure-ban az Ansible használatával

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Fontolja meg a használatát, és ennek megfelelően tervezze meg. További információ: CentOS End Of Life útmutató.

Ez a cikk egy Minta Ansible forgatókönyvet mutat be Linux rendszerű virtuális gépek konfigurálásához.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Erőforráscsoport létrehozása
  • Virtuális hálózat létrehozása
  • Hozzon létre egy nyilvános IP-címet
  • Hálózati biztonsági csoport létrehozása
  • Virtuális hálózati kártya létrehozása
  • Virtuális gép létrehozása

1. A környezet konfigurálása

  • Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.

2. SSH-kulcspár létrehozása

  1. Futtassa az alábbi parancsot. Amikor a rendszer kéri, adja meg a létrehozandó fájlokat a következő könyvtárban: /home/azureuser/.ssh/authorized_keys.

    ssh-keygen -m PEM -t rsa -b 4096
    
  2. Másolja ki a nyilvános kulcsfájl tartalmát. Alapértelmezés szerint a nyilvános kulcsfájl neve id_rsa.pub. Az érték egy hosszú sztring, amely az "ssh-rsa" karakterrel kezdődik. Erre az értékre a következő lépésben lesz szüksége.

3. Az Ansible forgatókönyv implementálása

  1. Hozzon létre egy könyvtárat, amelyben tesztelheti és futtathatja a minta Ansible-kódot, és az aktuális könyvtárvá teheti.

  2. Hozzon létre egy elnevezett main.yml fájlt, és szúrja be a következő kódot. Cserélje le a <key_data> helyőrzőt az előző lépésben szereplő nyilvános kulcs értékére.

    - 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: CentOS
            publisher: OpenLogic
            sku: '7.5'
            version: latest
    

4. A forgatókönyv futtatása

Futtassa az ansible-forgatókönyvet az Ansible forgatókönyv futtatásához.

ansible-playbook main.yml

5. Az eredmények ellenőrzése

Futtassa az az virtuálisgép-listát a virtuális gép létrehozásának ellenőrzéséhez.

az vm list -d -o table --query "[?name=='myVM']"

6. Csatlakozás a virtuális géphez

Futtassa az SSH-parancsot az új Linux rendszerű virtuális géphez való csatlakozáshoz. Cserélje le az <IP-cím> helyőrzőt az előző lépésben szereplő IP-címre.

ssh azureuser@<ip_address> -i /home/azureuser/.ssh/authorized_keys/id_rsa

Az erőforrások eltávolítása

  1. Mentse a következő kódot.delete_rg.yml

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Futtassa a forgatókönyvet az ansible-playbook paranccsal. Cserélje le a helyőrzőt a törölni kívánt erőforráscsoport nevére. Az erőforráscsoporton belüli összes erőforrás törlődik.

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

    Főbb pontok:

    • register A forgatókönyv változója és debug szakasza miatt az eredmények a parancs befejeződésekor jelennek meg.

Következő lépések