Öğretici: Azure sanal ağ eşlemesini, anormal kullanarak yapılandırmaTutorial: Configure Azure virtual network peering using Ansible

Önemli

Ansible 2.8 (veya üzeri), bu makaledeki örnek playbook'ları çalıştırmak için gereklidir.Ansible 2.8 (or later) is required to run the sample playbooks in this article.

Sanal ağ (VNet) eşlemesi , iki Azure sanal ağını sorunsuzca bağlamanıza olanak tanır.Virtual network (VNet) peering allows you to seamlessly connect two Azure virtual networks. Eşlendikten sonra iki sanal ağ bağlantı amaçlarıyla bir tane olarak görünür.Once peered, the two virtual networks appear as one for connectivity purposes.

Trafik, özel IP adresleri aracılığıyla aynı sanal ağdaki VM 'Ler arasında yönlendirilir.Traffic is routed between VMs in the same virtual network through private IP addresses. Benzer şekilde, eşlenmiş bir sanal ağdaki VM 'Ler arasındaki trafik, Microsoft omurga altyapısı aracılığıyla yönlendirilir.Similarly, traffic between VMs in a peered virtual network is routed through the Microsoft backbone infrastructure. Sonuç olarak, farklı sanal ağlardaki VM 'Ler birbirleriyle iletişim kurabilir.As a result, VMs in different virtual networks can communicate with each other.

Bu öğreticide, Ansible için kullanılır:In this tutorial, Ansible is used to:

  • İki sanal ağ oluşturmaCreate two virtual networks
  • İki sanal ağı eşlerPeer the two virtual networks
  • İki ağ arasındaki eşlemeyi silmeDelete the peering between the two networks

ÖnkoşullarPrerequisites

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.Azure subscription: If you don't have an Azure subscription, create a free account before you begin.

İki kaynak grubu oluşturmaCreate two resource groups

Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.A resource group is a logical container in which Azure resources are deployed and managed.

Bu bölümdeki örnek PlayBook kodu şu şekilde kullanılır:The sample playbook code in this section is used to:

  • İki kaynak grubu oluşturmaCreate two resource groups
  - 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 }}"

İlk sanal ağı oluşturmaCreate the first virtual network

Bu bölümdeki örnek PlayBook kodu şu şekilde kullanılır:The sample playbook code in this section is used to:

  • Sanal ağ oluşturmaCreate a virtual network
  • Sanal ağ içinde bir alt ağ oluşturmaCreate a subnet within the virtual network
  - 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 }}"

İkinci sanal ağı oluşturmaCreate the second virtual network

Bu bölümdeki örnek PlayBook kodu şu şekilde kullanılır:The sample playbook code in this section is used to:

  • Sanal ağ oluşturmaCreate a virtual network
  • Sanal ağ içinde bir alt ağ oluşturmaCreate a subnet within the virtual network
  - name: Ceate 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 }}"

İki sanal ağı eşlerPeer the two virtual networks

Bu bölümdeki örnek PlayBook kodu şu şekilde kullanılır:The sample playbook code in this section is used to:

  • Sanal Ağ eşlemesini BaşlatInitialize virtual-network peering
  • Daha önce oluşturulmuş ikinci sanal ağPeer two previously created virtual networks
  - 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

Sanal Ağ eşlemesini SilDelete the virtual network peering

Bu bölümdeki örnek PlayBook kodu şu şekilde kullanılır:The sample playbook code in this section is used to:

  • Daha önce oluşturulan iki sanal ağ arasındaki eşlemeyi SilDelete the peering between the two previously created virtual networks
  - name: Delete vnet peering
    azure_rm_virtualnetworkpeering:
      resource_group: "{{ resource_group }}"
      name: "{{ peering_name }}"
      virtual_network: "{{ vnet_name1 }}"
      state: absent

Örnek PlayBook 'u alınGet the sample playbook

Örnek PlayBook 'un tamamını almanın iki yolu vardır:There are two ways to get the complete sample playbook:

  • PlayBook 'U indirin ve vnet_peering.ymlkaydedin.Download the playbook and save it to vnet_peering.yml.
  • vnet_peering.yml adlı yeni bir dosya oluşturun ve aşağıdaki içerikleri içine kopyalayın:Create a new file named vnet_peering.yml and copy into it the following contents:
- 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: Ceate 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

Örnek PlayBook 'u çalıştırmaRun the sample playbook

Bu bölümdeki örnek PlayBook kodu, bu öğretici genelinde gösterilen çeşitli özellikleri test etmek için kullanılır.The sample playbook code in this section is used to test various features shown throughout this tutorial.

Örnek PlayBook ile çalışırken göz önünde bulundurmanız gereken bazı önemli notlar şunlardır:Here are some key notes to consider when working with the sample playbook:

  • vars bölümünde, {{ resource_group_name }} yer tutucusunu kaynak grubunuzun adıyla değiştirin.In the vars section, replace the {{ resource_group_name }} placeholder with the name of your resource group.

Anerişilebilir-PlayBook komutunu kullanarak PlayBook 'u çalıştırın:Run the playbook using the ansible-playbook command:

ansible-playbook vnet_peering.yml

PlayBook çalıştırıldıktan sonra aşağıdaki sonuçlara benzer bir çıktı görürsünüz:After running the playbook, you see output similar to the following results:

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 [Ceate 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

Kaynakları temizlemeClean up resources

Artık gerekli değilse, bu makalede oluşturulan kaynakları silin.When no longer needed, delete the resources created in this article.

Bu bölümdeki örnek PlayBook kodu şu şekilde kullanılır:The sample playbook code in this section is used to:

  • Daha önce oluşturulan iki kaynak grubunu silDelete the two resources groups created earlier

Aşağıdaki playbook'u cleanup.yml olarak kaydedin:Save the following playbook as 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

Örnek PlayBook ile çalışırken göz önünde bulundurmanız gereken bazı önemli notlar şunlardır:Here are some key notes to consider when working with the sample playbook:

  • {{ resource_group_name-1 }} yer tutucusunu oluşturulan ilk kaynak grubunun adıyla değiştirin.Replace the {{ resource_group_name-1 }} placeholder with the name of the first resource group created.
  • {{ resource_group_name-2 }} yer tutucusunu, oluşturulan ikinci kaynak grubunun adıyla değiştirin.Replace the {{ resource_group_name-2 }} placeholder with the name of the second resource group created.
  • Belirtilen iki kaynak grubu içindeki tüm kaynaklar silinecek.All resources within the two specified resource groups will be deleted.

Anerişilebilir-PlayBook komutunu kullanarak PlayBook 'u çalıştırın:Run the playbook using the ansible-playbook command:

ansible-playbook cleanup.yml

Sonraki adımlarNext steps