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.
Installera Ansible: Gör något av följande alternativ:
- Installera och konfigurera Ansible på en virtuell Linux-dator
- Konfigurera Azure Cloud Shell och – om du inte har åtkomst till en virtuell Linux-dator – skapa en virtuell dator med Ansible.
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