Kurz: Konfigurace škálovacích sad virtuálních počítačů v Azure pomocí Ansible
Důležité
K spuštění ukázkových playbooků v tomto článku se vyžaduje Ansible 2.9 (nebo novější).
Škálovací sady virtuálních počítačů Azure jsou funkce Azure, která umožňuje nakonfigurovat skupinu identických virtuálních počítačů s vyrovnáváním zatížení. Škálovací sady nejsou žádné další náklady a jsou sestavené z virtuálních počítačů. Platíte jenom za základní výpočetní prostředky, jako jsou instance virtuálních počítačů, nástroje pro vyrovnávání zatížení nebo úložiště spravovaných disků. Škálovací sady poskytují vrstvy správy a automatizace pro spouštění a škálování aplikací. Místo toho můžete ručně vytvářet a spravovat jednotlivé virtuální počítače. Použití škálovacích sad ale má dvě klíčové výhody. Jsou integrované do Azure a automaticky škálují vaše virtuální počítače tak, aby vyhovovaly potřebám aplikací.
V tomto článku získáte informace o těchto tématech:
- Konfigurace prostředků pro virtuální počítač
- Konfigurace škálovací sady
- Škálování škálovací sady zvýšením počtu instancí virtuálních počítačů
Požadavky
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nainstalujte Ansible: Proveďte jednu z následujících možností:
- Instalace a konfigurace Ansible na virtuálním počítači s Linuxem
- Nakonfigurujte Azure Cloud Shell a – pokud nemáte přístup k virtuálnímu počítači s Linuxem – vytvořte virtuální počítač pomocí Ansible.
Konfigurace škálovací sady
Kód playbooku v této části definuje následující zdroje informací:
- Skupina prostředků, do které se nasadí všechny vaše prostředky.
- Virtuální síť v adresním prostoru 10.0.0.0/16.
- Podsíť v této virtuální síti.
- Veřejná IP adresa, která vám umožní přistupovat k prostředkům přes internet.
- Skupina zabezpečení sítě, která řídí tok síťového provozu ve škálovací sadě a mimo vaši škálovací sadu
- Nástroj pro vyrovnávání zatížení, který s využitím pravidel nástroje pro vyrovnávání zatížení distribuuje provoz mezi sadu definovaných virtuálních počítačů.
- Škálovací sada virtuálních počítačů, která všechny vytvořené prostředky využívá.
Ukázkový playbook můžete získat dvěma způsoby:
Stáhněte playbook a uložte soubor jako
vmss-create.yml
.Vytvořte nový soubor s názvem
vmss-create.yml
. Do nového souboru vložte následující kód:
- 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
Před spuštěním playbooku si přečtěte následující poznámky:
vars
V části nahraďte{{ admin_password }}
zástupný symbol vlastním heslem.
Spuštění playbooku pomocí ansible-playbooku
ansible-playbook vmss-create.yml
Po spuštění playbooku se zobrazí výstup podobný následujícím výsledkům:
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
Zobrazení počtu instancí virtuálních počítačů
Nakonfigurovaná škálovací sada má aktuálně dvě instance. K potvrzení této hodnoty se používají následující kroky:
Přihlaste se k portálu Azure.
Přejděte ke škálovací sadě, kterou jste nakonfigurovali.
Zobrazí se název škálovací sady s počtem instancí v závorkách:
Standard_DS1_v2 (2 instances)
Počet instancí můžete ověřit také pomocí Azure Cloud Shellu spuštěním následujícího příkazu:
az vmss show -n myScaleSet -g myResourceGroup --query '{"capacity":sku.capacity}'
Výsledky spuštění příkazu Azure CLI v Cloud Shellu ukazují, že existují dvě instance:
{ "capacity": 2, }
Horizontální navýšení kapacity škálovací sady
Kód playbooku v této části načte informace o škálovací sadě a změní její kapacitu ze dvou na tři.
Ukázkový playbook můžete získat dvěma způsoby:
Stáhněte playbook a uložte ho do
vmss-scale-out.yml
souboru .Vytvořte nový soubor s názvem
vmss-scale-out.yml
. Do nového souboru vložte následující kód:
---
- 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 }}"
Spuštění playbooku pomocí ansible-playbooku
ansible-playbook vmss-scale-out.yml
Po spuštění playbooku se zobrazí výstup podobný následujícím výsledkům:
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
Ověření výsledků
Ověřte výsledky své práce prostřednictvím webu Azure Portal:
Přihlaste se k portálu Azure.
Přejděte ke škálovací sadě, kterou jste nakonfigurovali.
Zobrazí se název škálovací sady s počtem instancí v závorkách:
Standard_DS1_v2 (3 instances)
Změnu můžete ověřit také pomocí služby Azure Cloud Shell, a to spuštěním následujícího příkazu:
az vmss show -n myScaleSet -g myResourceGroup --query '{"capacity":sku.capacity}'
Výsledky spuštění příkazu Azure CLI v Cloud Shellu ukazují, že teď existují tři instance:
{ "capacity": 3, }