mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
7db4352f6e
idempotence
260 lines
7.1 KiB
YAML
260 lines
7.1 KiB
YAML
- name: Prepare random number
|
|
set_fact:
|
|
pipaname: "pipa{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
pipbname: "pipb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
lbvnname: "lbvn{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
lbname_a: "lba{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
lbname_b: "lbb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
lbname_c: "lbc{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
lbname_d: "lbd{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
run_once: yes
|
|
|
|
- name: create public ip
|
|
azure_rm_publicipaddress:
|
|
name: "{{ pipbname }}"
|
|
sku: Standard
|
|
allocation_method: Static
|
|
resource_group: '{{ resource_group }}'
|
|
|
|
- name: create public ip
|
|
azure_rm_publicipaddress:
|
|
name: "{{ pipaname }}"
|
|
resource_group: '{{ resource_group }}'
|
|
|
|
- name: clear load balancer
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_a }}"
|
|
state: absent
|
|
|
|
- name: create load balancer
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_a }}"
|
|
public_ip: "{{ pipaname }}"
|
|
register: output
|
|
|
|
- name: assert load balancer created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: delete load balancer
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_a }}"
|
|
state: absent
|
|
register: output
|
|
|
|
- name: assert load balancer deleted
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: delete load balancer (idempotent)
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_a }}"
|
|
state: absent
|
|
register: output
|
|
|
|
- name: assert load balancer deleted (idempotent)
|
|
assert:
|
|
that: not output.changed
|
|
|
|
- name: create another load balancer with more options
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_b }}"
|
|
sku: Standard
|
|
public_ip_address: "{{ pipbname }}"
|
|
probe_protocol: Tcp
|
|
probe_port: 80
|
|
probe_interval: 10
|
|
probe_fail_count: 3
|
|
protocol: Tcp
|
|
load_distribution: Default
|
|
frontend_port: 80
|
|
backend_port: 8080
|
|
idle_timeout: 4
|
|
natpool_frontend_port_start: 30
|
|
natpool_frontend_port_end: 40
|
|
natpool_backend_port: 80
|
|
natpool_protocol: Tcp
|
|
register: output
|
|
|
|
- name: assert complex load balancer created
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
- output.state.sku.name == 'Standard'
|
|
|
|
- name: create load balancer again to check idempotency
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_b }}"
|
|
sku: Standard
|
|
public_ip_address: "{{ pipbname }}"
|
|
probe_protocol: Tcp
|
|
probe_port: 80
|
|
probe_interval: 10
|
|
probe_fail_count: 3
|
|
protocol: Tcp
|
|
load_distribution: Default
|
|
frontend_port: 80
|
|
backend_port: 8080
|
|
idle_timeout: 4
|
|
natpool_frontend_port_start: 30
|
|
natpool_frontend_port_end: 40
|
|
natpool_backend_port: 80
|
|
natpool_protocol: Tcp
|
|
register: output
|
|
|
|
- name: assert that output has not changed
|
|
assert:
|
|
that:
|
|
- not output.changed
|
|
|
|
- name: create load balancer again to check idempotency - change something
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_b }}"
|
|
sku: Standard
|
|
public_ip_address: "{{ pipbname }}"
|
|
probe_protocol: Tcp
|
|
probe_port: 80
|
|
probe_interval: 10
|
|
probe_fail_count: 3
|
|
protocol: Tcp
|
|
load_distribution: Default
|
|
frontend_port: 81
|
|
backend_port: 8080
|
|
idle_timeout: 4
|
|
natpool_frontend_port_start: 30
|
|
natpool_frontend_port_end: 40
|
|
natpool_backend_port: 80
|
|
natpool_protocol: Tcp
|
|
register: output
|
|
|
|
- name: assert that output has changed
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: delete load balancer
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_b }}"
|
|
state: absent
|
|
|
|
- name: create load balancer with multiple parameters
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_c }}"
|
|
frontend_ip_configurations:
|
|
- name: frontendipconf0
|
|
public_ip_address: "{{ pipaname }}"
|
|
backend_address_pools:
|
|
- name: backendaddrpool0
|
|
probes:
|
|
- name: prob0
|
|
port: 80
|
|
inbound_nat_pools:
|
|
- name: inboundnatpool0
|
|
frontend_ip_configuration_name: frontendipconf0
|
|
protocol: Tcp
|
|
frontend_port_range_start: 80
|
|
frontend_port_range_end: 81
|
|
backend_port: 8080
|
|
load_balancing_rules:
|
|
- name: lbrbalancingrule0
|
|
frontend_ip_configuration: frontendipconf0
|
|
backend_address_pool: backendaddrpool0
|
|
frontend_port: 80
|
|
backend_port: 80
|
|
probe: prob0
|
|
register: output
|
|
|
|
- name: assert complex load balancer created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: delete load balancer
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_c }}"
|
|
state: absent
|
|
|
|
- name: Create virtual network
|
|
azure_rm_virtualnetwork:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ lbvnname }}"
|
|
address_prefixes: "10.10.0.0/16"
|
|
|
|
- name: Add subnet
|
|
azure_rm_subnet:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "lb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}sb"
|
|
address_prefix: "10.10.0.0/24"
|
|
virtual_network: "{{ lbvnname }}"
|
|
register: subnet
|
|
|
|
- name: create internal loadbalancer
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_d }}"
|
|
frontend_ip_configurations:
|
|
- name: frontendipconf0
|
|
private_ip_address: 10.10.0.10
|
|
private_ip_allocation_method: Static
|
|
subnet: "{{ subnet.state.id }}"
|
|
backend_address_pools:
|
|
- name: backendaddrpool0
|
|
probes:
|
|
- name: prob0
|
|
port: 80
|
|
inbound_nat_pools:
|
|
- name: inboundnatpool0
|
|
frontend_ip_configuration_name: frontendipconf0
|
|
protocol: Tcp
|
|
frontend_port_range_start: 80
|
|
frontend_port_range_end: 81
|
|
backend_port: 8080
|
|
load_balancing_rules:
|
|
- name: lbrbalancingrule0
|
|
frontend_ip_configuration: frontendipconf0
|
|
backend_address_pool: backendaddrpool0
|
|
frontend_port: 80
|
|
backend_port: 80
|
|
probe: prob0
|
|
register: output
|
|
|
|
- name: assert complex load balancer created
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: delete load balancer
|
|
azure_rm_loadbalancer:
|
|
resource_group: '{{ resource_group }}'
|
|
name: "{{ lbname_d }}"
|
|
state: absent
|
|
|
|
- name: cleanup public ip
|
|
azure_rm_publicipaddress:
|
|
name: "{{ item }}"
|
|
resource_group: '{{ resource_group }}'
|
|
state: absent
|
|
with_items:
|
|
- "{{ pipaname }}"
|
|
- "{{ pipbname }}"
|
|
|
|
- name: cleanup subnet
|
|
azure_rm_subnet:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "lb{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}sb"
|
|
virtual_network: "{{ lbvnname }}"
|
|
state: absent
|
|
|
|
- name: cleanup virtual network
|
|
azure_rm_virtualnetwork:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ lbvnname }}"
|
|
state: absent
|