|
|
|
- name: Prepare random number
|
|
|
|
set_fact:
|
|
|
|
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
|
|
run_once: yes
|
|
|
|
|
|
|
|
- name: Create a virtual network
|
|
|
|
azure_rm_virtualnetwork:
|
|
|
|
name: vnet{{ rpfx }}
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
address_prefixes_cidr:
|
|
|
|
- 10.1.0.0/16
|
|
|
|
- 172.100.0.0/16
|
|
|
|
dns_servers:
|
|
|
|
- 127.0.0.1
|
|
|
|
- 127.0.0.2
|
|
|
|
- name: Create a subnet
|
|
|
|
azure_rm_subnet:
|
|
|
|
name: subnet{{ rpfx }}
|
|
|
|
virtual_network_name: vnet{{ rpfx }}
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
address_prefix_cidr: 10.1.0.0/24
|
|
|
|
register: subnet_output
|
|
|
|
|
|
|
|
- name: Create instance of Application Gateway -- check mode
|
|
|
|
azure_rm_appgateway:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: "appgateway{{ rpfx }}"
|
|
|
|
sku:
|
|
|
|
name: standard_small
|
|
|
|
tier: standard
|
|
|
|
capacity: 2
|
|
|
|
ssl_policy:
|
|
|
|
policy_type: predefined
|
|
|
|
policy_name: ssl_policy20150501
|
|
|
|
disabled_ssl_protocols:
|
|
|
|
- tls_v1_0
|
|
|
|
cipher_suites:
|
|
|
|
- tls_ecdhe_ecdsa_with_aes_256_gcm_sha384
|
|
|
|
authentication_certificates:
|
|
|
|
- name: cert1
|
|
|
|
data: "{{ lookup('file', 'cert1.txt') }}"
|
|
|
|
ssl_certificates:
|
|
|
|
- name: cert2
|
|
|
|
password: your-password
|
|
|
|
data: "{{ lookup('file', 'cert2.txt') }}"
|
|
|
|
gateway_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: app_gateway_ip_config
|
|
|
|
frontend_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: sample_gateway_frontend_ip_config
|
|
|
|
frontend_ports:
|
|
|
|
- port: 90
|
|
|
|
name: ag_frontend_port
|
|
|
|
backend_address_pools:
|
|
|
|
- backend_addresses:
|
|
|
|
- ip_address: 10.0.0.4
|
|
|
|
name: test_backend_address_pool
|
|
|
|
backend_http_settings_collection:
|
|
|
|
- port: 80
|
|
|
|
protocol: http
|
|
|
|
cookie_based_affinity: enabled
|
|
|
|
name: sample_appgateway_http_settings
|
|
|
|
http_listeners:
|
|
|
|
- frontend_ip_configuration: sample_gateway_frontend_ip_config
|
|
|
|
frontend_port: ag_frontend_port
|
|
|
|
protocol: https
|
|
|
|
ssl_certificate: cert2
|
|
|
|
name: sample_http_listener
|
|
|
|
request_routing_rules:
|
|
|
|
- rule_type: basic
|
|
|
|
backend_address_pool: test_backend_address_pool
|
|
|
|
backend_http_settings: sample_appgateway_http_settings
|
|
|
|
http_listener: sample_http_listener
|
|
|
|
name: rule1
|
|
|
|
check_mode: yes
|
|
|
|
register: output
|
|
|
|
- name: Assert the resource instance is well created
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: dump
|
|
|
|
debug:
|
|
|
|
var: output
|
|
|
|
|
|
|
|
- name: Create instance of Application Gateway
|
|
|
|
azure_rm_appgateway:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: "appgateway{{ rpfx }}"
|
|
|
|
sku:
|
|
|
|
name: standard_small
|
|
|
|
tier: standard
|
|
|
|
capacity: 2
|
|
|
|
ssl_policy:
|
|
|
|
policy_type: predefined
|
|
|
|
policy_name: ssl_policy20150501
|
|
|
|
disabled_ssl_protocols:
|
|
|
|
- tls_v1_0
|
|
|
|
cipher_suites:
|
|
|
|
- tls_ecdhe_ecdsa_with_aes_256_gcm_sha384
|
|
|
|
authentication_certificates:
|
|
|
|
- name: cert1
|
|
|
|
data: "{{ lookup('file', 'cert1.txt') }}"
|
|
|
|
ssl_certificates:
|
|
|
|
- name: cert2
|
|
|
|
password: your-password
|
|
|
|
data: "{{ lookup('file', 'cert2.txt') }}"
|
|
|
|
gateway_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: app_gateway_ip_config
|
|
|
|
frontend_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: sample_gateway_frontend_ip_config
|
|
|
|
frontend_ports:
|
|
|
|
- port: 90
|
|
|
|
name: ag_frontend_port
|
|
|
|
backend_address_pools:
|
|
|
|
- backend_addresses:
|
|
|
|
- ip_address: 10.0.0.4
|
|
|
|
name: test_backend_address_pool
|
|
|
|
backend_http_settings_collection:
|
|
|
|
- port: 80
|
|
|
|
protocol: http
|
|
|
|
cookie_based_affinity: enabled
|
|
|
|
name: sample_appgateway_http_settings
|
|
|
|
http_listeners:
|
|
|
|
- frontend_ip_configuration: sample_gateway_frontend_ip_config
|
|
|
|
frontend_port: ag_frontend_port
|
|
|
|
protocol: https
|
|
|
|
ssl_certificate: cert2
|
|
|
|
name: sample_http_listener
|
|
|
|
request_routing_rules:
|
|
|
|
- rule_type: Basic
|
|
|
|
backend_address_pool: test_backend_address_pool
|
|
|
|
backend_http_settings: sample_appgateway_http_settings
|
|
|
|
http_listener: sample_http_listener
|
|
|
|
name: rule1
|
|
|
|
register: output
|
|
|
|
- name: Assert the resource instance is well created
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Try to update instance of Application Gateway - no change
|
|
|
|
azure_rm_appgateway:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: "appgateway{{ rpfx }}"
|
|
|
|
sku:
|
|
|
|
name: standard_small
|
|
|
|
tier: standard
|
|
|
|
capacity: 2
|
|
|
|
ssl_policy:
|
|
|
|
policy_type: predefined
|
|
|
|
policy_name: ssl_policy20150501
|
|
|
|
disabled_ssl_protocols:
|
|
|
|
- tls_v1_0
|
|
|
|
cipher_suites:
|
|
|
|
- tls_ecdhe_ecdsa_with_aes_256_gcm_sha384
|
|
|
|
authentication_certificates:
|
|
|
|
- name: cert1
|
|
|
|
data: "{{ lookup('file', 'cert1.txt') }}"
|
|
|
|
ssl_certificates:
|
|
|
|
- name: cert2
|
|
|
|
password: your-password
|
|
|
|
data: "{{ lookup('file', 'cert2.txt') }}"
|
|
|
|
gateway_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: app_gateway_ip_config
|
|
|
|
frontend_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: sample_gateway_frontend_ip_config
|
|
|
|
frontend_ports:
|
|
|
|
- port: 90
|
|
|
|
name: ag_frontend_port
|
|
|
|
backend_address_pools:
|
|
|
|
- backend_addresses:
|
|
|
|
- ip_address: 10.0.0.4
|
|
|
|
name: test_backend_address_pool
|
|
|
|
backend_http_settings_collection:
|
|
|
|
- port: 80
|
|
|
|
protocol: http
|
|
|
|
cookie_based_affinity: enabled
|
|
|
|
name: sample_appgateway_http_settings
|
|
|
|
http_listeners:
|
|
|
|
- frontend_ip_configuration: sample_gateway_frontend_ip_config
|
|
|
|
frontend_port: ag_frontend_port
|
|
|
|
protocol: https
|
|
|
|
ssl_certificate: cert2
|
|
|
|
name: sample_http_listener
|
|
|
|
request_routing_rules:
|
|
|
|
- rule_type: Basic
|
|
|
|
backend_address_pool: test_backend_address_pool
|
|
|
|
backend_http_settings: sample_appgateway_http_settings
|
|
|
|
http_listener: sample_http_listener
|
|
|
|
name: rule1
|
|
|
|
register: output
|
|
|
|
- name: Assert the resource instance is well created
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- not output.changed
|
|
|
|
|
|
|
|
- name: Try to update instance of Application Gateway - single change
|
|
|
|
azure_rm_appgateway:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: "appgateway{{ rpfx }}"
|
|
|
|
sku:
|
|
|
|
name: standard_small
|
|
|
|
tier: standard
|
|
|
|
capacity: 2
|
|
|
|
ssl_policy:
|
|
|
|
policy_type: predefined
|
|
|
|
policy_name: ssl_policy20150501
|
|
|
|
disabled_ssl_protocols:
|
|
|
|
- tls_v1_0
|
|
|
|
cipher_suites:
|
|
|
|
- tls_ecdhe_ecdsa_with_aes_256_gcm_sha384
|
|
|
|
authentication_certificates:
|
|
|
|
- name: cert1
|
|
|
|
data: "{{ lookup('file', 'cert1.txt') }}"
|
|
|
|
ssl_certificates:
|
|
|
|
- name: cert2
|
|
|
|
password: your-password
|
|
|
|
data: "{{ lookup('file', 'cert2.txt') }}"
|
|
|
|
gateway_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: app_gateway_ip_config
|
|
|
|
frontend_ip_configurations:
|
|
|
|
- subnet:
|
|
|
|
id: "{{ subnet_output.state.id }}"
|
|
|
|
name: sample_gateway_frontend_ip_config
|
|
|
|
frontend_ports:
|
|
|
|
- port: 90
|
|
|
|
name: ag_frontend_port
|
|
|
|
backend_address_pools:
|
|
|
|
- backend_addresses:
|
|
|
|
- ip_address: 10.0.0.4
|
|
|
|
name: test_backend_address_pool
|
|
|
|
backend_http_settings_collection:
|
|
|
|
- port: 81
|
|
|
|
protocol: http
|
|
|
|
cookie_based_affinity: enabled
|
|
|
|
name: sample_appgateway_http_settings
|
|
|
|
http_listeners:
|
|
|
|
- frontend_ip_configuration: sample_gateway_frontend_ip_config
|
|
|
|
frontend_port: ag_frontend_port
|
|
|
|
protocol: https
|
|
|
|
ssl_certificate: cert2
|
|
|
|
name: sample_http_listener
|
|
|
|
request_routing_rules:
|
|
|
|
- rule_type: Basic
|
|
|
|
backend_address_pool: test_backend_address_pool
|
|
|
|
backend_http_settings: sample_appgateway_http_settings
|
|
|
|
http_listener: sample_http_listener
|
|
|
|
name: rule1
|
|
|
|
register: output
|
|
|
|
- name: Assert the resource instance is well created
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Delete instance of Application Gateway -- check mode
|
|
|
|
azure_rm_appgateway:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: "appgateway{{ rpfx }}"
|
|
|
|
state: absent
|
|
|
|
check_mode: yes
|
|
|
|
register: output
|
|
|
|
- name: Assert the state has changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Delete instance of Application Gateway
|
|
|
|
azure_rm_appgateway:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: "appgateway{{ rpfx }}"
|
|
|
|
state: absent
|
|
|
|
register: output
|
|
|
|
- name: Assert the state has changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Delete unexisting instance of Application Gateway
|
|
|
|
azure_rm_appgateway:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: "appgateway{{ rpfx }}"
|
|
|
|
state: absent
|
|
|
|
register: output
|
|
|
|
- name: Assert the state has changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- output.changed == false
|