Dela via


Självstudie: Konfigurera peering för virtuella Azure-nätverk med Ansible

Viktigt!

Ansible 2.8 (eller senare) krävs för att köra exempelspelböckerna i den här artikeln.

Med peering för virtuella nätverk (VNet) kan du smidigt ansluta två virtuella Azure-nätverk. När de två virtuella nätverken har peer-kopplats visas de som ett för anslutningsändamål.

Trafik dirigeras mellan virtuella datorer i samma virtuella nätverk via privata IP-adresser. På samma sätt dirigeras trafik mellan virtuella datorer i ett peer-kopplat virtuellt nätverk via Microsofts staminfrastruktur. Därför kan virtuella datorer i olika virtuella nätverk kommunicera med varandra.

I den här artikeln kan du se hur du:

  • Skapa två virtuella nätverk
  • Peer-koppla de två virtuella nätverken
  • Ta bort peering mellan de två nätverken

Förutsättningar

  • Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Skapa två resursgrupper

En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.

Exempelspelbokskoden i det här avsnittet används för att:

  • Skapa två resursgrupper
  - 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 }}"

Skapa det första virtuella nätverket

Exempelspelbokskoden i det här avsnittet används för att:

  • Skapa ett virtuellt nätverk
  • Skapa ett undernät i det virtuella nätverket
  - 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 }}"

Skapa det andra virtuella nätverket

Exempelspelbokskoden i det här avsnittet används för att:

  • Skapa ett virtuellt nätverk
  • Skapa ett undernät i det virtuella nätverket
  - 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 }}"

Peer-koppla de två virtuella nätverken

Exempelspelbokskoden i det här avsnittet används för att:

  • Initiera peering för virtuella nätverk
  • Peer-två tidigare skapade virtuella nätverk
  - 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

Ta bort peeringen för virtuella nätverk

Exempelspelbokskoden i det här avsnittet används för att:

  • Ta bort peering mellan de två tidigare skapade virtuella nätverken
  - name: Delete vnet peering
    azure_rm_virtualnetworkpeering:
      resource_group: "{{ resource_group }}"
      name: "{{ peering_name }}"
      virtual_network: "{{ vnet_name1 }}"
      state: absent

Hämta exempelspelboken

Det finns två sätt att hämta den fullständiga exempelspelboken:

  • Ladda ned spelboken och spara den i vnet_peering.yml.
  • Skapa en ny fil med namnet vnet_peering.yml och kopiera följande innehåll till den:
- 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

Kör exempelspelboken

Exempelspelbokskoden i det här avsnittet används för att testa olika funktioner som visas i den här självstudien.

Här följer några viktiga kommentarer att tänka på när du arbetar med exempelspelboken:

  • I avsnittet vars ersätter du {{ resource_group_name }} platshållaren med namnet på resursgruppen.

Kör spelboken med kommandot ansible-playbook:

ansible-playbook vnet_peering.yml

När du har kört spelboken visas utdata som liknar följande resultat:

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

Rensa resurser

Ta bort resurserna som skapas i den här artikeln när de inte längre behövs.

Exempelspelbokskoden i det här avsnittet används för att:

  • Ta bort de två resursgrupper som skapades tidigare

Spara följande spelbok som 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	

Här följer några viktiga kommentarer att tänka på när du arbetar med exempelspelboken:

  • {{ resource_group_name-1 }} Ersätt platshållaren med namnet på den första resursgruppen som skapades.
  • {{ resource_group_name-2 }} Ersätt platshållaren med namnet på den andra resursgruppen som skapades.
  • Alla resurser inom de två angivna resursgrupperna tas bort.

Kör spelboken med kommandot ansible-playbook:

ansible-playbook cleanup.yml	

Nästa steg