Megosztás a következőn keresztül:


Oktatóanyag: Azure-beli virtuális hálózatok közötti társviszony-létesítés konfigurálása az Ansible használatával

Fontos

Az Ansible 2.8 (vagy újabb) szükséges a jelen cikkben szereplő minta forgatókönyvek futtatásához.

A virtuális hálózatok közötti társviszony-létesítés lehetővé teszi két Azure-beli virtuális hálózat zökkenőmentes csatlakoztatását. A társviszony létesítése után a két virtuális hálózat összekapcsolás céljából egyként jelenik meg.

A forgalom ugyanabban a virtuális hálózatban lévő virtuális gépek között privát IP-címeken keresztül van irányítva. Hasonlóképpen, a társhálózatban lévő virtuális hálózatok virtuális gépei közötti forgalom a Microsoft gerincinfrastruktúrán keresztül történik. Ennek eredményeképpen a különböző virtuális hálózatok virtuális gépei kommunikálhatnak egymással.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Két virtuális gép létrehozása
  • Társviszony a két virtuális hálózattal
  • A két hálózat közötti társviszony törlése

Előfeltételek

  • Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.

Két erőforráscsoport létrehozása

Az erőforráscsoport olyan logikai tároló, amelyben a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat.

Az ebben a szakaszban található minta forgatókönyv-kód a következőre szolgál:

  • Két erőforráscsoport létrehozása
  - 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 }}"

Az első virtuális hálózat létrehozása

Az ebben a szakaszban található minta forgatókönyv-kód a következőre szolgál:

  • Virtuális hálózat létrehozása
  • Alhálózat létrehozása a virtuális hálózaton belül
  - 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 }}"

A második virtuális hálózat létrehozása

Az ebben a szakaszban található minta forgatókönyv-kód a következőre szolgál:

  • Virtuális hálózat létrehozása
  • Alhálózat létrehozása a virtuális hálózaton belül
  - 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 }}"

Társviszony a két virtuális hálózattal

Az ebben a szakaszban található minta forgatókönyv-kód a következőre szolgál:

  • Virtuális hálózati társviszony inicializálása
  • Társviszony két korábban létrehozott virtuális hálózattal
  - 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

Törölje a virtuális hálózati társviszonyt.

Az ebben a szakaszban található minta forgatókönyv-kód a következőre szolgál:

  • A két korábban létrehozott virtuális hálózat közötti társviszony törlése
  - name: Delete vnet peering
    azure_rm_virtualnetworkpeering:
      resource_group: "{{ resource_group }}"
      name: "{{ peering_name }}"
      virtual_network: "{{ vnet_name1 }}"
      state: absent

A minta forgatókönyv lekérése

A teljes minta forgatókönyv kétféleképpen szerezhető be:

  • Töltse le a forgatókönyvet , és mentse a következőre vnet_peering.yml: .
  • Hozzon létre egy új, elnevezett vnet_peering.yml fájlt, és másolja a következő tartalmat a fájlba:
- 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

A minta forgatókönyv futtatása

Az ebben a szakaszban található minta forgatókönyv-kód az oktatóanyag során bemutatott különböző funkciók tesztelésére szolgál.

Az alábbiakban néhány fontos megjegyzést érdemes figyelembe venni a minta forgatókönyv használatakor:

  • vars A szakaszban cserélje le a {{ resource_group_name }} helyőrzőt az erőforráscsoport nevére.

Futtassa a forgatókönyvet az ansible-playbook paranccsal:

ansible-playbook vnet_peering.yml

A forgatókönyv futtatása után a következő eredményekhez hasonló kimenet jelenik meg:

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

Clean up resources

Ha már nincs rá szükség, törölje a cikkben létrehozott erőforrásokat.

Az ebben a szakaszban található minta forgatókönyv-kód a következőre szolgál:

  • A korábban létrehozott két erőforráscsoport törlése

Mentse a következő forgatókönyvet cleanup.yml néven:

- 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	

Az alábbiakban néhány fontos megjegyzést érdemes figyelembe venni a minta forgatókönyv használatakor:

  • Cserélje le a {{ resource_group_name-1 }} helyőrzőt az első létrehozott erőforráscsoport nevére.
  • Cserélje le a {{ resource_group_name-2 }} helyőrzőt a második létrehozott erőforráscsoport nevére.
  • A két megadott erőforráscsoporton belüli összes erőforrás törlődik.

Futtassa a forgatókönyvet az ansible-playbook paranccsal:

ansible-playbook cleanup.yml	

További lépések