2018-08-31 06:18:56 +02:00
|
|
|
- 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_virtualmachine_scaleset:
|
|
|
|
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 }}"
|
2018-09-11 12:52:43 +02:00
|
|
|
target:
|
|
|
|
name: "testVMSS{{ rpfx }}"
|
|
|
|
types: "virtualMachineScaleSets"
|
|
|
|
namespace: "Microsoft.Compute"
|
2018-08-31 06:18:56 +02:00
|
|
|
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_virtualmachine_scaleset:
|
|
|
|
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
|