Linux rendszerű virtuális gépek létrehozása az Azure-ban az Ansible használatával
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.
Az Ansible telepítése: Válasszon az alábbi lehetőségek közül:
- Az Ansible telepítése és konfigurálása Linux rendszerű virtuális gépen
- Az Azure Cloud Shell konfigurálása
2. SSH-kulcspár létrehozása
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
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
Hozzon létre egy könyvtárat, amelyben tesztelheti és futtathatja a minta Ansible-kódot, és az aktuális könyvtárvá teheti.
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: 0001-com-ubuntu-server-jammy publisher: Canonical sku: 22_04-lts 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
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
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 ésdebug
szakasza miatt az eredmények a parancs befejeződésekor jelennek meg.