Öğretici: Ansible kullanarak Azure sanal ağ eşlemesini yapılandırma
Önemli
Bu makaledeki örnek playbook'ları çalıştırmak için Ansible 2.8 (veya üzeri) gereklidir.
Sanal ağ (VNet) eşlemesi , iki Azure sanal ağını sorunsuz bir şekilde bağlamanızı sağlar. Eşlendikten sonra, iki sanal ağ bağlantı amacıyla tek bir ağ olarak görünür.
Trafik, özel IP adresleri aracılığıyla aynı sanal ağdaki VM'ler arasında yönlendirilir. Benzer şekilde, eşlenmiş bir sanal ağdaki VM'ler arasındaki trafik Microsoft omurga altyapısı üzerinden yönlendirilir. Sonuç olarak, farklı sanal ağlardaki VM'ler birbirleriyle iletişim kurabilir.
Bu makalede şunları öğreneceksiniz:
- İki sanal ağ oluşturma
- İki sanal ağı eşleme
- İki ağ arasındaki eşlemeyi silme
Önkoşullar
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Ansible'ı Yükleme: Aşağıdaki seçeneklerden birini yapın:
- Ansible'ı Linux sanal makinesine yükleme ve yapılandırma
- Azure Cloud Shell'i yapılandırın ve Linux sanal makinesine erişiminiz yoksa Ansible ile bir sanal makine oluşturun.
İki kaynak grubu oluşturma
Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.
Bu bölümdeki örnek playbook kodu şunları yapmak için kullanılır:
- İki kaynak grubu oluşturma
- 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şturma
Bu bölümdeki örnek playbook kodu şunları yapmak için kullanılır:
- Sanal ağ oluşturma
- Sanal ağ içinde alt ağ oluşturma
- 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şturma
Bu bölümdeki örnek playbook kodu şunları yapmak için kullanılır:
- Sanal ağ oluşturma
- Sanal ağ içinde alt ağ oluşturma
- 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 }}"
İki sanal ağı eşleme
Bu bölümdeki örnek playbook kodu şunları yapmak için kullanılır:
- Sanal ağ eşlemesini başlatma
- Önceden oluşturulmuş iki sanal ağı eşleme
- 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 silin
Bu bölümdeki örnek playbook kodu şunları yapmak için kullanılır:
- Önceden oluşturulmuş iki sanal ağ arasındaki eşlemeyi silme
- name: Delete vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name1 }}"
state: absent
Örnek playbook'u edinin
Örnek playbook'un tamamını almanın iki yolu vardır:
- Playbook'u indirin ve öğesine
vnet_peering.yml
kaydedin. - adlı
vnet_peering.yml
yeni bir dosya oluşturun ve aşağıdaki içeriği bu dosyaya kopyalayın:
- 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
Örnek playbook'u çalıştırma
Bu bölümdeki örnek playbook kodu, bu öğretici boyunca gösterilen çeşitli özellikleri test etmek için kullanılır.
Örnek playbook ile çalışırken göz önünde bulundurmanız gereken bazı önemli notlar şunlardır:
vars
bölümünde yer tutucuyu{{ resource_group_name }}
kaynak grubunuzun adıyla değiştirin.
ansible-playbook komutunu kullanarak playbook'u çalıştırın:
ansible-playbook vnet_peering.yml
Playbook'u çalıştırdıktan sonra aşağıdaki sonuçlara benzer bir çıktı görürsünüz:
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
Kaynakları temizleme
Artık gerekli olmadığında, bu makalede oluşturulan kaynakları silin.
Bu bölümdeki örnek playbook kodu şunları yapmak için kullanılır:
- Daha önce oluşturulan iki kaynak grubunu silin
Aşağıdaki playbook'u cleanup.yml
olarak kaydedin:
- 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:
- Yer tutucuyu
{{ resource_group_name-1 }}
, oluşturulan ilk kaynak grubunun adıyla değiştirin. - Yer tutucuyu
{{ resource_group_name-2 }}
, oluşturulan ikinci kaynak grubunun adıyla değiştirin. - Belirtilen iki kaynak grubundaki tüm kaynaklar silinir.
ansible-playbook komutunu kullanarak playbook'u çalıştırın:
ansible-playbook cleanup.yml