Tutorial: Mengonfigurasi peering jaringan virtual Azure menggunakan Ansible
Penting
Ansible 2.8 (atau yang lebih baru) diperlukan untuk menjalankan sampel playbook dalam artikel ini.
Peering jaringan virtual (VNet) memungkinkan Anda menyambungkan dua jaringan virtual Azure tanpa hambatan. Setelah peering, dua jaringan virtual muncul sebagai satu untuk semua tujuan konektivitas.
Lalu lintas dirutekan antara VM dalam jaringan virtual yang sama melalui alamat IP pribadi. Demikian pula, lalu lintas antara VM dalam jaringan virtual yang di-peer dirutekan melalui infrastruktur backbone Microsoft. Akibatnya, VM di jaringan virtual yang berbeda dapat berkomunikasi satu sama lain.
Dalam artikel ini, Anda akan mempelajari cara:
- Membuat dua jaringan virtual
- Peering kedua jaringan virtual
- Hapus peering antara kedua jaringan
Prasyarat
- Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
Instal Ansible: Lakukan salah satu opsi berikut:
- Menginstal dan mengonfigurasi Ansibel pada mesin virtual Linux
- Konfigurasikan Azure Cloud Shell dan - jika Anda tidak memiliki akses ke mesin virtual Linux - buat mesin virtual dengan Ansible.
Buat dua grup sumber daya baru
Grup sumber daya Azure adalah kontainer logis yang disebarkan dan dikelola oleh sumber daya Azure.
Sampel kode playbook di bagian ini digunakan untuk:
- Buat dua grup sumber daya baru
- 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 }}"
Buat jaringan virtual pertama
Sampel kode playbook di bagian ini digunakan untuk:
- Membuat jaringan virtual
- Membuat subnet dalam jaringan virtual
- 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 }}"
Buat jaringan virtual kedua
Sampel kode playbook di bagian ini digunakan untuk:
- Membuat jaringan virtual
- Membuat subnet dalam jaringan virtual
- 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 }}"
Peering kedua jaringan virtual
Sampel kode playbook di bagian ini digunakan untuk:
- Inisialisasi peering jaringan virtual
- Peer dua jaringan virtual yang dibuat sebelumnya
- 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
Hapus peering jaringan virtual
Sampel kode playbook di bagian ini digunakan untuk:
- Hapus peering antara dua jaringan virtual yang dibuat sebelumnya
- name: Delete vnet peering
azure_rm_virtualnetworkpeering:
resource_group: "{{ resource_group }}"
name: "{{ peering_name }}"
virtual_network: "{{ vnet_name1 }}"
state: absent
Dapatkan sampel playbook
Ada dua cara untuk mendapatkan sampel playbook lengkap:
- Unduh playbook dan simpan ke
vnet_peering.yml
. - Buat file baru bernama
vnet_peering.yml
dan salin konten berikut ke dalamnya:
- 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
Jalankan sampel playbook
Sampel kode playbook di bagian ini digunakan untuk menguji berbagai fitur yang ditampilkan sepanjang tutorial ini.
Berikut adalah beberapa catatan penting yang perlu dipertimbangkan saat bekerja dengan sampel playbook:
- Pada bagian
vars
, ganti nilai placeholder{{ resource_group_name }}
dengan nama grup sumber daya Anda.
Jalankan playbook menggunakan perintah ansible-playbook:
ansible-playbook vnet_peering.yml
Setelah menjalankan playbook, Anda melihat output yang mirip dengan hasil berikut:
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
Membersihkan sumber daya
Bila tidak lagi diperlukan, hapus sumber daya yang dibuat dalam artikel ini.
Sampel kode playbook di bagian ini digunakan untuk:
- Hapus dua grup sumber daya yang dibuat sebelumnya
Simpan playbook berikut sebagai 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
Berikut adalah beberapa catatan penting yang perlu dipertimbangkan saat bekerja dengan sampel playbook:
- Ganti tempat penampung
{{ resource_group_name-1 }}
dengan nama grup sumber daya pertama yang dibuat. - Ganti tempat penampung
{{ resource_group_name-2 }}
dengan nama grup sumber daya kedua yang dibuat. - Semua sumber daya dalam dua grup sumber daya yang ditentukan akan dihapus.
Jalankan playbook menggunakan perintah ansible-playbook:
ansible-playbook cleanup.yml
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk