Membuat mesin virtual Linux di Azure menggunakan Ansible
Artikel ini menyajikan playbook Ansible sampel untuk mengonfigurasi mesin virtual Linux.
Dalam artikel ini, Anda akan mempelajari cara:
- Buat grup sumber daya
- Membuat jaringan virtual
- Membuat alamat IP publik
- Membuat grup keamanan jaringan
- Membuat kartu antarmuka jaringan virtual
- Membuat mesin virtual
1. Mengonfigurasi lingkungan Anda
- Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
Instal Ansible: Lakukan salah satu opsi berikut:
- Menginstal dan mengonfigurasi Ansibel pada mesin virtual Linux
- Konfigurasikan Azure Cloud Shell
2. Buat pasangan kunci SSH
Jalankan perintah berikut. Saat diminta, tentukan file yang akan dibuat pada direktori berikut:
/home/azureuser/.ssh/authorized_keys
.ssh-keygen -m PEM -t rsa -b 4096
Salin seluruh konten file kunci umum. Secara default, file kunci publik diberi nama
id_rsa.pub
. Nilainya adalah string panjang yang dimulai dengan "ssh-rsa". Anda akan membutuhkan nilai ini pada langkah berikutnya.
3. Terapkan playbook Ansible
Buat direktori untuk menguji dan menjalankan kode Ansible sample dan menjadikannya direktori saat ini.
Buat file bernama
main.yml
dan masukkan kode berikut. Ganti tempat penampung<key_data>
dengan nilai kunci umum dari langkah sebelumnya.- 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. Jalankan playbook
Jalankan ansible-playbook untuk menjalankan playbook Ansible.
ansible-playbook main.yml
5. Memverifikasi hasil
Jalankan az vm list untuk memverifikasi VM yang telah dibuat.
az vm list -d -o table --query "[?name=='myVM']"
6. Sambungkan ke VM
Jalankan perintah SSH untuk menghubungkan ke VM Linux baru Anda. Ganti tempat penampung <ip-address> dengan alamat IP dari langkah sebelumnya.
ssh azureuser@<ip_address> -i /home/azureuser/.ssh/authorized_keys/id_rsa
Membersihkan sumber daya
Simpan kode berikut sebagai
delete_rg.yml
.--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rg
Jalankan playbook menggunakan perintah ansible-playbook. Ganti tempat penampung dengan nama grup sumber daya yang akan dihapus. Semua sumber daya dalam grup sumber daya akan dihapus.
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
Poin utama:
- Karena variabel
register
dan bagiandebug
dari playbook, hasilnya akan ditampilkan ketika perintah selesai.
- Karena variabel