Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo presenta un playbook ansible di esempio per la configurazione di una macchina virtuale Linux.
In questo articolo vengono illustrate le operazioni seguenti:
- Creare un gruppo di risorse
- Creare una rete virtuale
- Creare un indirizzo IP pubblico
- Creare un gruppo di sicurezza di rete
- Creare una scheda di interfaccia di rete virtuale
- Creare una macchina virtuale
1. Configurare l'ambiente
- Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Installare Ansible: eseguire una delle opzioni seguenti:
- Installare e configurare Ansible in una macchina virtuale Linux
- Configurare Azure Cloud Shell
2. Creare una coppia di chiavi SSH
Esegui il comando seguente: Quando richiesto, specificare i file da creare nella directory seguente:
/home/azureuser/.ssh/authorized_keys.ssh-keygen -m PEM -t rsa -b 4096Copiare il contenuto del file di chiave pubblica. Per impostazione predefinita, il file di chiave pubblica è denominato
id_rsa.pub. Il valore è una stringa lunga che inizia con "ssh-rsa". Questo valore sarà necessario nel passaggio successivo.
3. Implementare il playbook Ansible
Creare una directory in cui testare ed eseguire il codice Ansible di esempio e impostarla come directory corrente.
Creare un file denominato
main.ymle inserire il codice seguente. Sostituire il<key_data>segnaposto con il valore della chiave pubblica del passaggio precedente.- 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
Esegui il piano operativo
Eseguire ansible-playbook per eseguire il playbook Ansible.
ansible-playbook main.yml
5. Verificare i risultati
Eseguire az vm list per verificare che la macchina virtuale sia stata creata.
az vm list -d -o table --query "[?name=='myVM']"
6. Connettersi alla macchina virtuale
Eseguire il comando SSH per connettersi alla nuova macchina virtuale Linux. Sostituire il segnaposto <indirizzo IP> con l'indirizzo IP del passaggio precedente.
ssh azureuser@<ip_address> -i /home/azureuser/.ssh/authorized_keys/id_rsa
Pulire le risorse
Salvare il codice seguente come
delete_rg.yml.--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rgEsegui il playbook usando il comando ansible-playbook. Sostituire il segnaposto con il nome del gruppo di risorse da eliminare. Tutte le risorse all'interno del gruppo di risorse verranno eliminate.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"Punti chiave:
- A causa della variabile
registere della sezionedebugdel playbook, i risultati vengono visualizzati al termine del comando.
- A causa della variabile