Tutorial: Konfigurasikan set skala komputer virtual di Azure menggunakan Ansible
Penting
Ansible 2.9 (atau lebih baru) diperlukan untuk menjalankan sampel playbook dalam artikel ini.
set skala komputer virtual Azure adalah fitur Azure yang memungkinkan Anda mengonfigurasi sebuah grup VM dengan beban seimbang yang identik. Tidak ada biaya tambahan untuk set skala dan ini dibangun dari mesin virtual. Anda hanya membayar untuk sumber daya komputasi dasar seperti instans VM, penyeimbang beban, atau penyimpanan Disk Terkelola. Dengan set skala, lapisan manajemen dan otomatisasi disediakan untuk menjalankan dan menskalakan aplikasi Anda. Anda dapat membuat dan mengelola VM individual secara manual. Namun, ada dua manfaat utama dari penggunaan set skala. Ini dibangun ke dalam Azure dan secara otomatis menskalakan mesin virtual Anda untuk memenuhi kebutuhan aplikasi.
Dalam artikel ini, Anda akan mempelajari cara:
- Mengonfigurasi sumber daya untuk VM
- Mengonfigurasi set skala
- Menskalakan set skala dengan meningkatkan instans VM-nya
Prasyarat
- 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 dan - jika Anda tidak memiliki akses ke mesin virtual Linux - buat mesin virtual dengan Ansible.
Mengonfigurasi set skala
Kode playbook di bagian ini mendefinisikan sumber daya berikut:
- Grup sumber daya di mana semua sumber daya Anda akan disebarkan.
- Jaringan virtual di ruang alamat 10.0.0.0/16
- Subnet di dalam jaringan virtual
- Alamat IP publik yang memungkinkan Anda mengakses sumber daya di Internet
- Grup keamanan jaringan yang mengontrol arus lalu lintas jaringan masuk dan keluar dari set skala Anda
- Load balancer yang mendistribusikan lalu lintas di sekumpulan VM yang ditentukan menggunakan aturan load balancer
- Set skala komputer virtual yang menggunakan semua sumber daya yang dibuat
Ada dua cara untuk mendapatkan playbook sampel:
Unduh playbook dan simpan file sebagai
vmss-create.yml
.Buat file baru bernama
vmss-create.yml
. Masukkan kode berikut ke file yang baru:
- hosts: localhost
vars:
resource_group: myResourceGroup
vmss_name: myvmscalesetname
vmss_lb_name: myScaleSetLb
location: eastus
admin_username: azureuser
admin_password: "{{ admin_password }}"
tasks:
- name: Create a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
- name: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}"
address_prefixes: "10.0.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}"
address_prefix: "10.0.1.0/24"
virtual_network: "{{ vmss_name }}"
- name: Create public IP address
azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Static
name: "{{ vmss_name }}"
- name: Create Network Security Group that allows SSH
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}"
rules:
- name: SSH
protocol: Tcp
destination_port_range: 22
access: Allow
priority: 1001
direction: Inbound
- name: Create a load balancer
azure_rm_loadbalancer:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}lb"
location: "{{ location }}"
frontend_ip_configurations:
- name: "{{ vmss_name }}front-config"
public_ip_address: "{{ vmss_name }}"
backend_address_pools:
- name: "{{ vmss_name }}backend-pool"
probes:
- name: "{{ vmss_name }}prob0"
port: 8080
interval: 10
fail_count: 3
inbound_nat_pools:
- name: "{{ vmss_name }}nat-pool"
frontend_ip_configuration_name: "{{ vmss_name }}front-config"
protocol: Tcp
frontend_port_range_start: 50000
frontend_port_range_end: 50040
backend_port: 22
load_balancing_rules:
- name: "{{ vmss_name }}lb-rules"
frontend_ip_configuration: "{{ vmss_name }}front-config"
backend_address_pool: "{{ vmss_name }}backend-pool"
frontend_port: 80
backend_port: 8080
load_distribution: Default
probe: "{{ vmss_name }}prob0"
- name: Create VMSS
no_log: true
azure_rm_virtualmachinescaleset:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}"
vm_size: Standard_DS1_v2
admin_username: "{{ admin_username }}"
admin_password: "{{ admin_password }}"
ssh_password_enabled: true
capacity: 2
virtual_network_name: "{{ vmss_name }}"
subnet_name: "{{ vmss_name }}"
upgrade_policy: Manual
tier: Standard
managed_disk_type: Standard_LRS
os_disk_caching: ReadWrite
image:
offer: UbuntuServer
publisher: Canonical
sku: 16.04-LTS
version: latest
load_balancer: "{{ vmss_name }}lb"
data_disks:
- lun: 0
disk_size_gb: 20
managed_disk_type: Standard_LRS
caching: ReadOnly
- lun: 1
disk_size_gb: 30
managed_disk_type: Standard_LRS
caching: ReadOnly
Sebelum menjalankan playbook, lihat catatan berikut:
- Di bagian
vars
, ganti tempat penampung{{ admin_password }}
dengan kata sandi Anda sendiri.
Jalankan playbook menggunakan ansible-playbook.
ansible-playbook vmss-create.yml
Setelah menjalankan playbook, Anda melihat output yang mirip dengan hasil berikut:
PLAY [localhost]
TASK [Gathering Facts]
ok: [localhost]
TASK [Create a resource group]
changed: [localhost]
TASK [Create virtual network]
changed: [localhost]
TASK [Add subnet]
changed: [localhost]
TASK [Create public IP address]
changed: [localhost]
TASK [Create Network Security Group that allows SSH]
changed: [localhost]
TASK [Create a load balancer]
changed: [localhost]
TASK [Create Scale Set]
changed: [localhost]
PLAY RECAP
localhost : ok=8 changed=7 unreachable=0 failed=0
Lihat jumlah instans VM
Set skala yang dikonfigurasi saat ini memiliki dua instans. Langkah-langkah berikut digunakan untuk mengonfirmasi nilai tersebut:
Masuk ke portal Azure.
Navigasikan ke set skala yang Anda konfigurasikan.
Anda melihat nama set skala dengan jumlah instans dalam tanda kurung:
Standard_DS1_v2 (2 instances)
Anda juga dapat memverifikasi jumlah instans dengan Azure Cloud Shell dengan menjalankan perintah berikut:
az vmss show -n myScaleSet -g myResourceGroup --query '{"capacity":sku.capacity}'
Hasil menjalankan perintah Azure CLI di Cloud Shell menunjukkan bahwa ada dua instans:
{ "capacity": 2, }
Menskalakan set skala
Kode playbook di bagian ini mengambil informasi tentang set skala dan mengubah kapasitasnya dari dua menjadi tiga.
Ada dua cara untuk mendapatkan playbook sampel:
Unduh playbook dan simpan ke
vmss-scale-out.yml
.Buat file baru bernama
vmss-scale-out.yml
. Masukkan kode berikut ke file yang baru:
---
- hosts: localhost
gather_facts: false
vars:
resource_group: myTestRG
vmss_name: myTestVMSS
tasks:
- name: Get scaleset info
azure_rm_virtualmachine_scaleset_facts:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}"
format: curated
register: output_scaleset
- name: set image fact
set_fact:
vmss_image: "{{ output_scaleset.vmss[0].image }}"
- name: Create VMSS
no_log: true
azure_rm_virtualmachinescaleset:
resource_group: "{{ resource_group }}"
name: "{{ vmss_name }}"
capacity: 3
image: "{{ vmss_image }}"
Jalankan playbook menggunakan ansible-playbook.
ansible-playbook vmss-scale-out.yml
Setelah menjalankan playbook, Anda melihat output yang mirip dengan hasil berikut:
PLAY [localhost]
TASK [Gathering Facts]
ok: [localhost]
TASK [Get scaleset info]
ok: [localhost]
TASK [Set image fact]
ok: [localhost]
TASK [Change VMSS capacity]
changed: [localhost]
PLAY RECAP
localhost : ok=3 changed=1 unreachable=0 failed=0
Memverifikasi hasil
Verifikasi hasil pekerjaan Anda melalui portal Azure:
Masuk ke portal Azure.
Navigasikan ke set skala yang Anda konfigurasikan.
Anda melihat nama set skala dengan jumlah instans dalam tanda kurung:
Standard_DS1_v2 (3 instances)
Anda juga dapat memverifikasi perubahan dengan Azure Cloud Shell dengan menjalankan perintah berikut:
az vmss show -n myScaleSet -g myResourceGroup --query '{"capacity":sku.capacity}'
Hasil menjalankan perintah Azure CLI di Cloud Shell menunjukkan bahwa sekarang ada tiga instans:
{ "capacity": 3, }