Zelfstudie: Peering van virtuele Azure-netwerken configureren met Ansible
Belangrijk
Ansible 2.8 (of hoger) is vereist om de voorbeeldplaybooks in dit artikel uit te voeren.
Met VNet-peering (virtual network) kunt u naadloos twee virtuele Azure-netwerken verbinden. Zodra de peering is uitgevoerd, worden de twee virtuele netwerken weergegeven als één voor connectiviteitsdoeleinden.
Verkeer wordt gerouteerd tussen VM's in hetzelfde virtuele netwerk via privé-IP-adressen. Op dezelfde manier wordt verkeer tussen VM's in een gekoppeld virtueel netwerk gerouteerd via de Microsoft-backbone-infrastructuur. Hierdoor kunnen VM's in verschillende virtuele netwerken met elkaar communiceren.
In dit artikel leert u het volgende:
- Twee virtuele netwerken maken
- Peering van de twee virtuele netwerken
- De peering tussen de twee netwerken verwijderen
Vereisten
- Azure-abonnement: als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account aan voordat u begint.
Ansible installeren: Voer een van de volgende opties uit:
- Ansible installeren en configureren op een virtuele Linux-machine
- Configureer Azure Cloud Shell en maak een virtuele machine met Ansible als u geen toegang hebt tot een virtuele Linux-machine.
Twee resourcegroepen maken
Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
De voorbeeldplaybookcode in deze sectie wordt gebruikt voor het volgende:
- Twee resourcegroepen maken
- name: Create a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
- name: Create secondary resource group
azure_rm_resourcegroup:
name: "{{ resource_group_secondary }}"
location: "{{ location }}"
Het eerste virtuele netwerk maken
De voorbeeldplaybookcode in deze sectie wordt gebruikt voor het volgende:
- Een virtueel netwerk maken
- Een subnet maken binnen het virtuele netwerk
- name: Create first virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name1 }}"
address_prefixes: "10.0.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name1 }}"
address_prefix: "10.0.0.0/24"
virtual_network: "{{ vnet_name1 }}"
Het tweede virtuele netwerk maken
De voorbeeldplaybookcode in deze sectie wordt gebruikt voor het volgende:
- Een virtueel netwerk maken
- Een subnet maken binnen het virtuele netwerk
- name: Create second virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group_secondary }}"
name: "{{ vnet_name2 }}"
address_prefixes: "10.1.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name2 }}"
address_prefix: "10.1.0.0/24"
virtual_network: "{{ vnet_name2 }}"
Peering van de twee virtuele netwerken
De voorbeeldplaybookcode in deze sectie wordt gebruikt voor het volgende:
- Peering van virtuele netwerken initialiseren
- Peer twee eerder gemaakte virtuele netwerken
- name: Initial vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name1 }}"
remote_virtual_network:
resource_group: "{{ resource_group_secondary }}"
name: "{{ vnet_name2 }}"
allow_virtual_network_access: true
allow_forwarded_traffic: true
- name: Connect vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group_secondary }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name2 }}"
remote_virtual_network:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name1 }}"
allow_virtual_network_access: true
allow_forwarded_traffic: true
De peering voor het virtuele netwerk verwijderen
De voorbeeldplaybookcode in deze sectie wordt gebruikt voor het volgende:
- De peering tussen de twee eerder gemaakte virtuele netwerken verwijderen
- name: Delete vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name1 }}"
state: absent
Het voorbeeldplaybook ophalen
Er zijn twee manieren om het volledige voorbeeldplaybook op te halen:
- Download het playbook en sla het op in
vnet_peering.yml
. - Maak een nieuw bestand met de naam
vnet_peering.yml
en kopieer de volgende inhoud naar het bestand:
- hosts: localhost
tasks:
- name: Prepare random postfix
set_fact:
rpfx: "{{ 1000 | random }}"
run_once: yes
- name: Connect virtual networks with virtual network peering
hosts: localhost
connection: local
vars:
resource_group: "{{ resource_group_name }}"
resource_group_secondary: "{{ resource_group_name }}2"
vnet_name1: "myVnet{{ rpfx }}"
vnet_name2: "myVnet{{ rpfx }}2"
peering_name: peer1
location: eastus2
tasks:
- name: Create a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
- name: Create secondary resource group
azure_rm_resourcegroup:
name: "{{ resource_group_secondary }}"
location: "{{ location }}"
- name: Create first virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name1 }}"
address_prefixes: "10.0.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name1 }}"
address_prefix: "10.0.0.0/24"
virtual_network: "{{ vnet_name1 }}"
- name: Create second virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group_secondary }}"
name: "{{ vnet_name2 }}"
address_prefixes: "10.1.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name2 }}"
address_prefix: "10.1.0.0/24"
virtual_network: "{{ vnet_name2 }}"
- name: Initial vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name1 }}"
remote_virtual_network:
resource_group: "{{ resource_group_secondary }}"
name: "{{ vnet_name2 }}"
allow_virtual_network_access: true
allow_forwarded_traffic: true
- name: Connect vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group_secondary }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name2 }}"
remote_virtual_network:
resource_group: "{{ resource_group }}"
name: "{{ vnet_name1 }}"
allow_virtual_network_access: true
allow_forwarded_traffic: true
- name: Delete vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name1 }}"
state: absent
Het voorbeeldplaybook uitvoeren
De voorbeeldplaybookcode in deze sectie wordt gebruikt om verschillende functies te testen die in deze zelfstudie worden weergegeven.
Hier volgen enkele belangrijke opmerkingen die u moet overwegen bij het werken met het voorbeeldplaybook:
- Vervang in de
vars
sectie de{{ resource_group_name }}
tijdelijke aanduiding door de naam van uw resourcegroep.
Voer het playbook uit met behulp van de ansible-playbook-opdracht:
ansible-playbook vnet_peering.yml
Nadat u het playbook hebt uitgevoerd, ziet u uitvoer die vergelijkbaar is met de volgende resultaten:
PLAY [localhost]
TASK [Gathering Facts]
ok: [localhost]
TASK [Prepare random postfix]
ok: [localhost]
PLAY [Connect virtual networks with virtual network peering]
TASK [Gathering Facts]
ok: [localhost]
TASK [Create a resource group]
changed: [localhost]
TASK [Create secondary resource group]
changed: [localhost]
TASK [Create first virtual network]
changed: [localhost]
TASK [Add subnet]
changed: [localhost]
TASK [Create second virtual network]
changed: [localhost]
TASK [Add subnet]
changed: [localhost]
TASK [Initial vnet peering]
changed: [localhost]
TASK [Connect vnet peering]
changed: [localhost]
TASK [Delete vnet peering]
changed: [localhost]
PLAY RECAP
localhost : ok=12 changed=9 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Resources opschonen
Verwijder de resources die u in dit artikel hebt gemaakt als u ze niet meer nodig hebt.
De voorbeeldplaybookcode in deze sectie wordt gebruikt voor het volgende:
- De twee resourcesgroepen verwijderen die u eerder hebt gemaakt
Sla het volgende playbook op als cleanup.yml
:
- hosts: localhost
vars:
resource_group: "{{ resource_group_name-1 }}"
resource_group_secondary: "{{ resource_group_name-2 }}"
tasks:
- name: Delete a resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
force_delete_nonempty: yes
state: absent
- name: Delete a resource group
azure_rm_resourcegroup:
name: "{{ resource_group_secondary }}"
force_delete_nonempty: yes
state: absent
Hier volgen enkele belangrijke opmerkingen die u moet overwegen bij het werken met het voorbeeldplaybook:
- Vervang de
{{ resource_group_name-1 }}
tijdelijke aanduiding door de naam van de eerste resourcegroep die is gemaakt. - Vervang de
{{ resource_group_name-2 }}
tijdelijke aanduiding door de naam van de tweede resourcegroep die is gemaakt. - Alle resources binnen de twee opgegeven resourcegroepen worden verwijderd.
Voer het playbook uit met behulp van de ansible-playbook-opdracht:
ansible-playbook cleanup.yml