1- name: Prepare random number 2 set_fact: 3 vnetname1: "vnet1{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" 4 vnetname2: "vnet2{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" 5 peering_name: "peering1{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 100 | random }}" 6 7- name: Create first virtual network 8 azure_rm_virtualnetwork: 9 name: "{{ vnetname1 }}" 10 address_prefixes_cidr: 11 - 10.1.0.0/16 12 tags: 13 testing: testing 14 delete: on-exit 15 resource_group: "{{ resource_group }}" 16 register: vnet1 17 18- name: Create second virtual network 19 azure_rm_virtualnetwork: 20 name: "{{ vnetname2 }}" 21 address_prefixes_cidr: 22 - 10.2.0.0/24 23 resource_group: "{{ resource_group_secondary }}" 24 register: vnet2 25 26- assert: 27 that: 28 - vnet1.changed 29 - vnet2.changed 30 31- name: Create virtual network peering (check mode) 32 azure_rm_virtualnetworkpeering: 33 resource_group: "{{ resource_group }}" 34 name: "{{ peering_name }}" 35 virtual_network: "{{ vnetname1 }}" 36 remote_virtual_network: 37 resource_group: "{{ resource_group_secondary }}" 38 name: "{{ vnetname2 }}" 39 allow_virtual_network_access: false 40 allow_forwarded_traffic: true 41 check_mode: yes 42 register: output 43 44- assert: 45 that: output.changed 46 47- name: Create virtual network peering 48 azure_rm_virtualnetworkpeering: 49 resource_group: "{{ resource_group }}" 50 name: "{{ peering_name }}" 51 virtual_network: "{{ vnetname1 }}" 52 remote_virtual_network: 53 resource_group: "{{ resource_group_secondary }}" 54 name: "{{ vnetname2 }}" 55 allow_virtual_network_access: false 56 allow_forwarded_traffic: true 57 register: output 58 59- assert: 60 that: output.changed 61 62- name: Update virtual network peering (idempotent) 63 azure_rm_virtualnetworkpeering: 64 resource_group: "{{ resource_group }}" 65 name: "{{ peering_name }}" 66 virtual_network: "{{ vnetname1 }}" 67 remote_virtual_network: 68 resource_group: "{{ resource_group_secondary }}" 69 name: "{{ vnetname2 }}" 70 allow_virtual_network_access: false 71 allow_forwarded_traffic: true 72 register: output 73 74- assert: 75 that: not output.changed 76 77- name: Update virtual network peering 78 azure_rm_virtualnetworkpeering: 79 resource_group: "{{ resource_group }}" 80 name: "{{ peering_name }}" 81 virtual_network: "{{ vnetname1 }}" 82 remote_virtual_network: 83 resource_group: "{{ resource_group_secondary }}" 84 name: "{{ vnetname2 }}" 85 allow_virtual_network_access: true 86 allow_forwarded_traffic: false 87 register: output 88 89- assert: 90 that: output.changed 91 92- name: Get facts 93 azure_rm_virtualnetworkpeering_facts: 94 resource_group: "{{ resource_group }}" 95 name: "{{ peering_name }}" 96 virtual_network: "{{ vnetname1 }}" 97 register: facts 98 99- name: Assert Facts 100 assert: 101 that: 102 - facts['vnetpeerings'] | length == 1 103 - facts['vnetpeerings'][0]['id'] 104 - facts['vnetpeerings'][0]['peering_state'] 105 - facts['vnetpeerings'][0]['remote_virtual_network'] 106 - facts['vnetpeerings'][0]['provisioning_state'] 107 108- name: Delete virtual network peering 109 azure_rm_virtualnetworkpeering: 110 resource_group: "{{ resource_group }}" 111 name: "{{ peering_name }}" 112 virtual_network: "{{ vnetname1 }}" 113 state: absent 114 register: output 115 116- name: Delete first virtual network 117 azure_rm_virtualnetwork: 118 name: "{{ vnetname1 }}" 119 resource_group: "{{ resource_group }}" 120 state: absent 121 122- name: Delete virtual network 123 azure_rm_virtualnetwork: 124 name: "{{ vnetname2 }}" 125 resource_group: "{{ resource_group_secondary }}" 126 state: absent