Megosztás a következőn keresztül:


Oktatóanyag: Virtuálisgép-méretezési csoportok konfigurálása az Azure-ban az Ansible használatával

Fontos

Az Ansible 2.9 -et (vagy újabb verziót) a jelen cikkben szereplő minta forgatókönyvek futtatásához kell futtatni.

Az Azure-beli virtuálisgép-méretezési csoportok egy Olyan Azure-szolgáltatás, amellyel azonos, elosztott terhelésű virtuális gépek csoportját konfigurálhatja. A skálázási csoportoknak nincs további költsége, és virtuális gépekből vannak felépítve. Csak a mögöttes számítási erőforrásokért kell fizetnie, például a virtuálisgép-példányokért, a terheléselosztókért vagy a felügyelt lemeztárolókért. A méretezési csoportok biztosítják az alkalmazások futtatásához és méretezéséhez szükséges felügyeleti és automatizálási rétegeket. Ehelyett manuálisan is létrehozhat és kezelhet egyéni virtuális gépeket. A méretezési csoportok használatának azonban két fő előnye van. Az Azure-ba vannak beépítve, és automatikusan skálázzák a virtuális gépeket az alkalmazás igényeinek megfelelően.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Virtuális gép erőforrásainak konfigurálása
  • Méretezési csoport konfigurálása
  • A méretezési csoport méretezése a virtuálisgép-példányok növelésével

Előfeltételek

  • 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.

Méretezési csoport konfigurálása

Az ebben a szakaszban található forgatókönyvkód a következő erőforrásokat határozza meg:

  • Erőforráscsoport , amelyben az összes erőforrás üzembe lesz helyezve.
  • A 10.0.0.0/16 címtartományban szereplő virtuális hálózat
  • A virtuális hálózaton belüli alhálózat
  • A Nyilvános IP-cím, amely lehetővé teszi az erőforrások elérését az internetről.
  • Hálózati biztonsági csoport , amely a méretezési csoporton belüli és kimenő hálózati forgalom áramlását vezérli
  • A terheléselosztó, amely a terheléselosztó szabályait használó meghatározott virtuális gépek készletében osztja szét a forgalmat.
  • A virtuálisgép-méretezési csoport, amely a létrehozott erőforrásokat használja.

A minta forgatókönyv kétféleképpen szerezhető be:

  • Töltse le a forgatókönyvet, és mentse a fájlt .vmss-create.yml

  • Hozzon létre egy új fájlt vmss-create.yml néven. Szúrja be a következő kódot az új fájlba:

- 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

A forgatókönyv futtatása előtt tekintse meg a következő megjegyzéseket:

  • vars A szakaszban cserélje le a {{ admin_password }} helyőrzőt a saját jelszavára.

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook vmss-create.yml

A forgatókönyv futtatása után a következő eredményekhez hasonló kimenet jelenik meg:

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

Virtuálisgép-példányok számának megtekintése

A konfigurált méretezési csoportnak jelenleg két példánya van. Az érték megerősítéséhez a következő lépések szükségesek:

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen a konfigurált méretezési csoporthoz.

  3. A méretezési csoport neve zárójelben látható a példányok számával: Standard_DS1_v2 (2 instances)

  4. A példányok számát az Azure Cloud Shellben az alábbi parancs futtatásával is ellenőrizheti:

    az vmss show -n myScaleSet -g myResourceGroup --query '{"capacity":sku.capacity}' 
    

    Az Azure CLI-parancs Cloud Shellben való futtatásának eredményei azt mutatják, hogy két példány létezik:

    {
      "capacity": 2,
    }
    

Méretezési csoport méretezése

Az ebben a szakaszban található forgatókönyvkód beolvassa a méretezési csoport adatait, és kétról háromra módosítja a kapacitását.

A minta forgatókönyv kétféleképpen szerezhető be:

  • Töltse le a forgatókönyvet , és mentse a következőre vmss-scale-out.yml: .

  • Hozzon létre egy új fájlt vmss-scale-out.yml néven. Szúrja be a következő kódot az új fájlba:

---
- 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 }}"

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook vmss-scale-out.yml

A forgatókönyv futtatása után a következő eredményekhez hasonló kimenet jelenik meg:

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

Az eredmények ellenőrzése

Ellenőrizze a munkája eredményeit az Azure Portalon:

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen a konfigurált méretezési csoporthoz.

  3. A méretezési csoport neve zárójelben látható a példányok számával: Standard_DS1_v2 (3 instances)

  4. A változásokat ellenőrizheti az Azure Cloud Shell-lel, ha futtatja az alábbi parancsot:

    az vmss show -n myScaleSet -g myResourceGroup --query '{"capacity":sku.capacity}' 
    

    Az Azure CLI-parancs Cloud Shellben való futtatásának eredményei azt mutatják, hogy három példány létezik:

    {
      "capacity": 3,
    }
    

További lépések