Kurz: Konfigurace partnerského vztahu virtuálních sítí Azure pomocí Ansible
Důležité
K spuštění ukázkových playbooků v tomto článku se vyžaduje Ansible 2.8 (nebo novější).
Partnerský vztah virtuální sítě umožňuje bezproblémově propojit dvě virtuální sítě Azure. Po vytvoření partnerského vztahu se dvě virtuální sítě zobrazí jako jedna pro účely připojení.
Provoz se směruje mezi virtuálními počítači ve stejné virtuální síti prostřednictvím privátních IP adres. Podobně se provoz mezi virtuálními počítači v partnerské virtuální síti směruje přes páteřní infrastrukturu Microsoftu. V důsledku toho můžou virtuální počítače v různých virtuálních sítích vzájemně komunikovat.
V tomto článku získáte informace o těchto tématech:
- Vytvoření dvou virtuálních sítí
- Vytvoření partnerského vztahu mezi dvěma virtuálními sítěmi
- Odstranění partnerského vztahu mezi dvěma sítěmi
Požadavky
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nainstalujte Ansible: Proveďte jednu z následujících možností:
- Instalace a konfigurace Ansible na virtuálním počítači s Linuxem
- Nakonfigurujte Azure Cloud Shell a – pokud nemáte přístup k virtuálnímu počítači s Linuxem – vytvořte virtuální počítač pomocí Ansible.
Vytvoření dvou skupin prostředků
Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
Vzorový kód playbooku v této části slouží k:
- Vytvoření dvou skupin prostředků
- 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 }}"
Vytvoření první virtuální sítě
Vzorový kód playbooku v této části slouží k:
- Vytvoření virtuální sítě
- Vytvoření podsítě ve virtuální síti
- 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 }}"
Vytvoření druhé virtuální sítě
Vzorový kód playbooku v této části slouží k:
- Vytvoření virtuální sítě
- Vytvoření podsítě ve virtuální síti
- 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 }}"
Vytvoření partnerského vztahu mezi dvěma virtuálními sítěmi
Vzorový kód playbooku v této části slouží k:
- Inicializace partnerského vztahu virtuálních sítí
- Vytvoření partnerského vztahu dvou dříve vytvořených virtuálních sítí
- 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
Odstraňte partnerský vztah virtuálních sítí.
Vzorový kód playbooku v této části slouží k:
- Odstranění partnerského vztahu mezi dvěma dříve vytvořenými virtuálními sítěmi
- name: Delete vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name1 }}"
state: absent
Získání ukázkového playbooku
Kompletní ukázkový playbook můžete získat dvěma způsoby:
- Stáhněte playbook a uložte ho do
vnet_peering.yml
souboru . - Vytvořte nový soubor s názvem
vnet_peering.yml
a zkopírujte do něj následující obsah:
- 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
Spuštění ukázkového playbooku
Vzorový kód playbooku v této části slouží k otestování různých funkcí zobrazených v tomto kurzu.
Tady je několik klíčových poznámek, které je potřeba vzít v úvahu při práci s ukázkovým playbookem:
vars
V části nahraďte{{ resource_group_name }}
zástupný symbol názvem vaší skupiny prostředků.
Spusťte playbook pomocí příkazu ansible-playbook:
ansible-playbook vnet_peering.yml
Po spuštění playbooku se zobrazí výstup podobný následujícím výsledkům:
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
Vyčištění prostředků
Pokud už prostředky vytvořené v tomto článku nepotřebujete, odstraňte je.
Vzorový kód playbooku v této části slouží k:
- Odstranění dvou skupin prostředků vytvořených dříve
Uložte následující ukázkový playbook jako 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
Tady je několik klíčových poznámek, které je potřeba vzít v úvahu při práci s ukázkovým playbookem:
{{ resource_group_name-1 }}
Zástupný symbol nahraďte názvem první vytvořené skupiny prostředků.{{ resource_group_name-2 }}
Zástupný symbol nahraďte názvem druhé vytvořené skupiny prostředků.- Odstraní se všechny prostředky v rámci dvou zadaných skupin prostředků.
Spusťte playbook pomocí příkazu ansible-playbook:
ansible-playbook cleanup.yml