Delen via


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.

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	

Volgende stappen