- name: Prepare random number set_fact: rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" name: "scale{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" run_once: yes - name: Create virtual network azure_rm_virtualnetwork: resource_group: "{{ resource_group }}" name: testVnet address_prefixes: "10.0.0.0/16" - name: Add subnet azure_rm_subnet: resource_group: "{{ resource_group }}" name: testSubnet address_prefix: "10.0.1.0/24" virtual_network: testVnet - name: Create VMSS azure_rm_virtualmachinescaleset: resource_group: "{{ resource_group }}" name: testVMSS{{ rpfx }} vm_size: Standard_DS1_v2 admin_username: testuser ssh_password_enabled: true admin_password: "Password1234!" capacity: 2 virtual_network_name: testVnet subnet_name: testSubnet upgrade_policy: Manual tier: Standard managed_disk_type: Standard_LRS os_disk_caching: ReadWrite image: offer: CoreOS publisher: CoreOS sku: Stable version: latest data_disks: - lun: 0 disk_size_gb: 64 caching: ReadWrite managed_disk_type: Standard_LRS register: vmss - name: create auto scaling (check mode) azure_rm_autoscale: resource_group: "{{ resource_group }}" name: "{{ name }}" target: "{{ vmss.ansible_facts.azure_vmss.id }}" enabled: true profiles: - count: '1' recurrence_days: - Monday name: Auto created scale condition recurrence_timezone: China Standard Time recurrence_mins: - '0' min_count: '1' max_count: '1' recurrence_frequency: Week recurrence_hours: - '18' check_mode: yes register: output - assert: that: - output.changed - name: create auto scaling azure_rm_autoscale: resource_group: "{{ resource_group }}" name: "{{ name }}" target: name: "testVMSS{{ rpfx }}" types: "virtualMachineScaleSets" namespace: "Microsoft.Compute" enabled: true profiles: - count: '1' recurrence_days: - Monday name: Auto created scale condition recurrence_timezone: China Standard Time recurrence_mins: - '0' min_count: '1' max_count: '1' recurrence_frequency: Week recurrence_hours: - '18' register: output - assert: that: - output.changed - output.id - name: create auto scaling (idemponent) azure_rm_autoscale: resource_group: "{{ resource_group }}" name: "{{ name }}" target: "{{ vmss.ansible_facts.azure_vmss.id }}" enabled: true profiles: - count: '1' recurrence_days: - Monday name: Auto created scale condition recurrence_timezone: China Standard Time recurrence_mins: - '0' min_count: '1' max_count: '1' recurrence_frequency: Week recurrence_hours: - '18' register: output - assert: that: - not output.changed - output.id - name: update auto scaling azure_rm_autoscale: resource_group: "{{ resource_group }}" name: "{{ name }}" target: "{{ vmss.ansible_facts.azure_vmss.id }}" enabled: true profiles: - count: '1' recurrence_days: - Monday name: Auto created scale condition 0 rules: - time_aggregation: Average time_window: 10 direction: Increase metric_name: Percentage CPU metric_resource_uri: "{{ vmss.ansible_facts.azure_vmss.id }}" value: '1' threshold: 70 cooldown: 5 time_grain: 1 statistic: Average operator: GreaterThan type: ChangeCount max_count: '1' recurrence_mins: - '0' min_count: '1' recurrence_timezone: China Standard Time recurrence_frequency: Week recurrence_hours: - '6' register: output - assert: that: - output.changed - output.profiles[0].rules[0].metric_resource_uri == vmss.ansible_facts.azure_vmss.id - name: delete auto scaling (check mode) azure_rm_autoscale: resource_group: "{{ resource_group }}" name: "{{ name }}" state: absent check_mode: yes register: output - assert: that: - output.changed - name: delete auto scaling azure_rm_autoscale: resource_group: "{{ resource_group }}" name: "{{ name }}" state: absent register: output - assert: that: - output.changed - name: delete auto scaling (idemponetent) azure_rm_autoscale: resource_group: "{{ resource_group }}" name: "{{ name }}" state: absent register: output - assert: that: - not output.changed - name: Clean VMSS azure_rm_virtualmachinescaleset: resource_group: "{{ resource_group }}" vm_size: Standard_DS1_v2 name: testVMSS{{ rpfx }} state: absent - name: Clean subnet azure_rm_subnet: resource_group: "{{ resource_group }}" name: testSubnet virtual_network: testVnet state: absent - name: Clean virtual network azure_rm_virtualnetwork: resource_group: "{{ resource_group }}" name: testVnet state: absent