mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 21:00:22 -07:00
add auto scale module (#41533)
* add autoscale modules * add test alias
This commit is contained in:
parent
f6fa5a11bb
commit
b7d614df78
8 changed files with 1033 additions and 1 deletions
4
test/integration/targets/azure_rm_autoscale/aliases
Normal file
4
test/integration/targets/azure_rm_autoscale/aliases
Normal file
|
@ -0,0 +1,4 @@
|
|||
cloud/azure
|
||||
shippable/azure/group4
|
||||
destructive
|
||||
azure_rm_autoscale
|
|
@ -0,0 +1,2 @@
|
|||
dependencies:
|
||||
- setup_azure
|
216
test/integration/targets/azure_rm_autoscale/tasks/main.yml
Normal file
216
test/integration/targets/azure_rm_autoscale/tasks/main.yml
Normal file
|
@ -0,0 +1,216 @@
|
|||
- 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 }}"
|
||||
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:
|
||||
- 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
|
|
@ -11,6 +11,7 @@ azure-mgmt-containerservice==3.0.1
|
|||
azure-mgmt-dns==1.2.0
|
||||
azure-mgmt-keyvault==0.40.0
|
||||
azure-mgmt-marketplaceordering==0.1.0
|
||||
azure-mgmt-monitor==0.5.2
|
||||
azure-mgmt-network==1.7.1
|
||||
azure-mgmt-nspkg==2.0.0
|
||||
azure-mgmt-rdbms==1.2.0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue