[ English | Deutsch | Indonesia | русский | English (United Kingdom) ]
Mengelola jaringan¶
Pertimbangan operasional, seperti kepatuhan, dapat membuatnya perlu untuk mengelola jaringan. Misalnya, menambahkan jaringan penyedia baru ke cloud yang dikelola OpenStack-Ansible. Bagian berikut adalah tugas administratif paling umum yang digariskan untuk menyelesaikan tugas itu.
Untuk informasi lebih umum tentang pemecahan masalah jaringan Anda, lihat Network Troubleshooting chapter dalam Operations Guide.
Untuk informasi lebih mendalam tentang Networking, lihat Networking Guide.
Tambahkan jembatan penyedia (provider bridge) menggunakan antarmuka jaringan baru¶
Tambahkan setiap jaringan penyedia ke cloud Anda untuk diketahui OpenStack-Ansible dan sistem operasi sebelum Anda dapat menjalankan playbook yang diperlukan untuk menyelesaikan konfigurasi.
Konfigurasi OpenStack-Ansible¶
Semua jaringan penyedia perlu ditambahkan ke konfigurasi OpenStack-Ansible.
Edit file /etc/openstack_deploy/openstack_user_config.yml
dan tambahkan blok baru di bawahnya bagian provider_networks
:
Pengaturan container_bridge
menentukan jembatan jaringan (network bridge) fisik yang digunakan untuk menghubungkan pasangan veth dari host fisik ke container. Di dalam container, pengaturan container_interface
menentukan nama di mana jaringan fisik akan tersedia. Pengaturan container_interface
tidak diperlukan saat agen Neutron digunakan pada bare metal. Pastikan kedua pengaturan didefinisikan secara unik di seluruh jaringan penyedia mereka dan antarmuka jaringan dikonfigurasi dengan benar di dalam sistem operasi Anda. group_binds
menentukan ke mana jaringan ini harus dihubungkan (attached), ke container atau host fisik dan pada akhirnya tergantung pada tumpukan jaringan (network stack) yang digunakan. Misalnya, Linuxbridge versus OVS. Konfigurasi range
mendefinisikan ID segmentasi fisik Neutron yang secara otomatis digunakan oleh pengguna akhir (end user) saat membuat jaringan melalui horizon utama dan API Neutron. Mirip dengan true untuk konfigurasi net_name
yang mendefinisikan nama addressable di dalam konfigurasi Neutron. Konfigurasi ini juga harus unik di seluruh jaringan penyedia lainnya.
Untuk informasi lebih lanjut, lihat Configure the deployment dalam OpenStack-Ansible Deployment Guide.
Memperbarui node dengan konfigurasi baru¶
Jalankan playbook yang sesuai tergantung pada bagian group_binds
.
Misalnya, jika Anda memperbarui jaringan yang membutuhkan perubahan di semua node dengan agen bridge linux, dengan asumsi Anda memiliki infra node bernama infra01, infra02, dan infra03, jalankan:
# openstack-ansible containers-deploy.yml --limit localhost,infra01,infra01-host_containers
# openstack-ansible containers-deploy.yml --limit localhost,infra02,infra02-host_containers
# openstack-ansible containers-deploy.yml --limit localhost,infra03,infra03-host_containers
Kemudian perbarui konfigurasi neutron.
# openstack-ansible os-neutron-install.yml --limit localhost,infra01,infra01-host_containers
# openstack-ansible os-neutron-install.yml --limit localhost,infra02,infra02-host_containers
# openstack-ansible os-neutron-install.yml --limit localhost,infra03,infra03-host_containers
Kemudian perbarui node komputasi Anda jika perlu.
Hapus jembatan penyedia (provider bridge) dari OpenStack¶
Mirip dengan menambahkan jaringan penyedia, proses penghapusan menggunakan prosedur yang sama tetapi dalam urutan terbalik. Port Neutron perlu dihapus, sebelum penghapusan konfigurasi OpenStack-Ansible.
Batalkan penetapan semua IP mengambang neutron:
Catatan
Ekspor jaringan Neutron yang akan dihapus sebagai UUID tunggal.
export NETWORK_UUID=<uuid> for p in $( neutron port-list -c id --device_owner compute:nova --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2}' ); do floatid=$( neutron floatingip-list -c id --port_id=$p | awk '/([A-Fa-z0-9]+-){3}/ { print $2 }' ) if [ -n "$floatid" ]; then echo "Disassociating floating IP $floatid from port $p" neutron floatingip-disassociate $floatid fi done
Hapus semua port Neutron dari instance:
export NETWORK_UUID=<uuid> for p in $( neutron port-list -c id -c device_id --device_owner compute:nova --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2}' ); do echo "Removing Neutron compute port $p" neutron port-delete $p done
Hapus port router Neutron dan agen DHCP:
export NETWORK_UUID=<uuid> for line in $( neutron port-list -c id -c device_id --device_owner network:router_interface --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2 "+" $4}' ); do p=$( echo "$line"| cut -d'+' -f1 ); r=$( echo "$line"| cut -d'+' -f2 ) echo "Removing Neutron router port $p from $r" neutron router-interface-delete $r port=$p done for agent in $( neutron agent-list -c id --agent_type='DHCP Agent' --network_id=${NETWORK_UUID}| awk '/([A-Fa-f0-9]+-){3}/ {print $2}' ); do echo "Remove network $NETWORK_UUID from Neutron DHCP Agent $agent" neutron dhcp-agent-network-remove "${agent}" $NETWORK_UUID done
Hapus jaringan Neutron:
export NETWORK_UUID=<uuid> neutron net-delete $NETWORK_UUID
Hapus jaringan penyedia dari konfigurasi
provider_networks
dari konfigurasi OpenStack-Ansible/etc/openstack_deploy/openstack_user_config.yml
dan jalankan kembali playbook berikut:# openstack-ansible lxc-containers-create.yml --limit infra01:infra01-host_containers # openstack-ansible lxc-containers-create.yml --limit infra02:infra02-host_containers # openstack-ansible lxc-containers-create.yml --limit infra03:infra03-host_containers # openstack-ansible os-neutron-install.yml --tags neutron-config
Nyalakan kembali kontainer agen Jaringan¶
Dalam keadaan tertentu, konfigurasi atau masalah sementara, satu kontainer khusus atau semua kontainer neutron perlu di-restart.
Ini dapat diselesaikan dengan beberapa perintah:
Contoh rebooting kontainer yang masih dapat diakses.
Contoh ini akan mengeluarkan reboot ke kontainer yang bernama dengan
neutron_agents_container_hostname_name
dari dalam:# ansible -m shell neutron_agents_container_hostname_name -a 'reboot'
Contoh reboot satu kontainer pada satu waktu, 60 detik terpisah:
# ansible -m shell neutron_agents_container -a 'sleep 60; reboot' --forks 1
Jika kontainer tidak merespons, dapat dimulai kembali dari host jaringan fisik:
# ansible -m shell network_hosts -a 'for c in $(lxc-ls -1 |grep neutron_agents_container); do lxc-stop -n $c && lxc-start -d -n $c; done' --forks 1