Assalamuaikum rek, akhirnya berjumpa kembali dengan ane dipostingan ini. Kali ini masih dengan satu tulisan yang sama hehe yaitu Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS” hingga sekarang telah mencapai Part 4.
Bagi kalian yang belum mengikuti tulisan saya dan ingin ikut belajar silahkan kunjungin postingan sebelumnya terlebih dahulu
Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 1
Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 2
Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 3
This is IT! kelanjutannya :
Jadi kali ini kita akan menginstall dan mengkonfigurasi service networking atau yang biasa dikenal dengan nama Neutron dalam Openstack. Nah Openstack Neutron memungkinkan kita untuk membuat dan memasang sebuah device interface yang dapat di manage sesuai kebutuhan dengan menggunakan service Openstack Neutron.
Neutron bertugas meng-implementasikan Virtual Networking Infrastructure (VNI) dan juga Physical Networking Infrastructure (PNI).
Jadi neutron dapat menangani hal tentang routing, load-balancer bahkan sampai firewall dan vpn.
Neutron mempunyai 3 komponen juga, yaitu :
- neutron-server, menerima dan me-route permintaan API untuk neutron plug-in.
- OpenStack Networking plug-ins dan agents, plug dan unplug ports, membuat networks atau subnets, dan menyediakan IP Address.
- Messaging queue, bekerja dengan cara menggunakan installasi paling sering dipakai dari neutron untuk me-route informasi di antara neutron-server dan agent-agentnya. Dan bisa juga bekerja seperti sebagai database untuk menyimpan networking state.
Oke langsung saja, sebelum kita mengistall paket yang dibutuhkan mari kita buat terlebih dahulu database dan akses credentials untuk Neutron. Lakukan konfigurasi ini pada node controller.
LAB 25 – Konfigurasi Database Neutron
$ mysql -u root -p
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \ IDENTIFIED BY 'NEUTRON_DBPASS'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \ IDENTIFIED BY 'NEUTRON_DBPASS';
LAB 26 – Membuat User, dan Project Service, dan API endpoint Neutron
Jika sudah siahkan keluar dari akses database. Selanjutnya gunakan akses admin
$ source admin-openrc.sh
Kita buat akses credentials untuk service neutron
- Buat dulu user neutron
$ openstack user create --domain default --password-prompt neutron
- Tambahkan admin role untuk user neutron
$ openstack role add --project service --user neutron admin
- Tambahkan entitas pada service neutron
$ openstack service create --name neutron \ --description "OpenStack Networking" network
- Buat API endpoint untuk service neutron
$ openstack endpoint create --region RegionOne \ network public http://controller:9696
$ openstack endpoint create --region RegionOne \ network internal http://controller:9696
$ openstack endpoint create --region RegionOne \ network admin http://controller:9696
Pada neutron terdapat 2 arsitektur yang bisa kita deploy (hanya satu yg di pilih)
- Provider (External) Networks, yaitu arsitektur sangat simple yang hanya support untuk menghubungkan VMs ke external networks. Dan hanya admin atau user privileged yang bisa me-manage external networks.
- Self-Service Networks, yaitu arsitektur yang dapat menghubungkan VMs ke self-service networks. User demo dan user unprivileged yang lain dapat me-manage self-service termasuk router yang menyediakan koneksi antara self-service dan external-networks.
Dilab ini saya akan menjelaskan untuk Opsi ke-2 yaitu Self Service Network. Mungkin kedepan akan saya berikan juga tutorial untuk yang opsi pertama. Bagi yang penasaran dan ingin mengetahui lebih lanjut pada opsi pertama bisa mengunjungi terlebih dahulu docs.openstack.org
LAB 27 – Instalasi dan Konfigurasi Neutron Pada Node Controller
Baiklah, kita mulai dengan menginstall paket-paket yang dibutuhkan
# apt-get install neutron-server neutron-plugin-ml2 \ neutron-plugin-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent \ neutron-metadata-agent python-neutronclient conntrack
Edit file /etc/neutron/neutron.conf dan tambahkan perintah dibawah ini
[DEFAULT] service_plugins = router allow_overlapping_ips = True rpc_backend = rabbit auth_strategy = keystone notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True core_plugins = ml2 [database] #connection = sqlite:///var/lib/neutron/neutron.sqlite connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = NEUTRON_PASS [nova] auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = nova password = NOVA_PASS
Jangan lupa ubah RABBIT_PASS dengan password RabbitMQ anda, kemudian NEUTRON_PASS dengan password neutron anda, NEUTRON_DBPASS dengan password database neutron dan NOVA_PASS dengan password nova anda.
LAB 28 – Konfigurasi ML2 Pada Node Controller
- Edit file /etc/neutron/l3_agent.ini dan tambahkan perintah dibawah ini
[ml2] type_drivers = flat,vlan,vxlan tenant_network_types = vxlan mechanism_drivers = linuxbridge,l2population extension_drivers = port_security [ml2_type_flat] flat_networks = provider [ml2_type_vxlan] vni_ranges = 1:1000 [securitygroup] enable_ipset = True
Setelah selesai silahkan simpan dan keluar.
Kemudian kita akan melakukan konfigurasi linux bridge agent sebagai layer 2 (bridging dan switching) virtual networking infrastructure untuk instances termasuk tunnel untuk VXVLAN dan juga security.
LAB 29 – Konfigurasi Linux Bridge Agent
Buka dan edit file /etc/neutron/plugins/ml2/linuxbridge_agent.ini, kemudian tambahkan perintah dibawah ini
[linux_bridge] physical_interface_mappings = public:INTERFACE_NAME [vxlan] enable_vxlan = True local_ip = OVERLAY_INTERFACE_IP l2_population = True
[agent] ... prevent_arp_spoofing = True
[securitygroup] enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
Jangan lupa ganti INTERFACE_NAME dengan physicaly interface mapping yaitu interface yang terkoneksi pada node controller yang berlaku sebagai management bukan akses internet dan juga untuk OVERLAY_INTERFACE_IP diganti dengan IP management yang ada pada node controller.
LAB 30 – Konfigurasi L3 Agent Pada Node Controller
Selanjutnya konfigurasi L3 AGENT, fungsi dari L3 AGENT adalah untuk menyediakan layanan routing dan NAT untuk virtual network. Langsung saja buka dan edit file /etc/neutron/l3_agent.ini dan ubah konfigurasi seperti dibawah ini :
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver external_network_bridge =
[DEFAULT] ... verbose = True
LAB 31 – Konfigurasi DHCP Agent Pada Node Controller
Kemudian konfigurasikan DHCP Agent, DHCP Agent menyediakan layanan DHCP untuk virtual network. Langsung saja silahkan edit file /etc/neutron/dhcp_agent.ini
[DEFAULT] interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = True
verbose = True
dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
Dan pada opsi [DEFAULT] konfigurasi interface driver linux bridge, driver Dnsmasq DHCP dan aktifkan isolated metada agar VMs pada external networks dapat meng-akses metadata dari network.
Terakhir buat dan ubah file /etc/neutron/dnsmasq-neutron.conf
dhcp-option-force=26,1450
LAB 32 – Konfigurasi Metadata Agent Pada Node Controller
Metadata Agent menyediakan informasi seperti kredensial untuk instances. Berikut langkah-langkahnya :
Buka dan edit file /etc/neutron/metadata_agent.ini
Pada bagian [DEFAULT], editlah seperti ini
[DEFAULT] nova_metadata_ip = controller metadata_proxy_shared_secret = META_SECRET auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_region = RegionOne auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS
verbose = True
Ubahlah META_SECRET dengan secret yang anda inginkan untuk meta proxy kalian. Dan juga ubah NEUTRON_PASS dengan password neutron kalian.
LAB 33 – Konfigurasi Node Compute agar dapat menggunakan Networking
Kita juga harus mengatur untuk node compute agar nantinya dapat menggunakan Neutron. Silahkan edit /etc/nova/nova.conf
[neutron] ... url = http://controller:9696 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS service_metadata_proxy = True metadata_proxy_shared_secret = META_SECRET
Ubahlah NEUTRON_PASS dengan password neutron anda, dan META_SECRET dengan secret meta anda
Lakukan sinkronisasi database
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \ --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
Restart Compute API service
# service nova-api restart
Restart Networking service
# service neutron-server restart # service neutron-plugin-linuxbridge-agent restart # service neutron-dhcp-agent restart # service neutron-metadata-agent restart
# service neutron-l3-agent restart
Hapuslah neutron.sqlite karena itu tidak penting
# rm -f /var/lib/neutron/neutron.sqlite
Oke cukup sekian dulu dan nanti kita lanjutkan pada lab yang akan datang. Sekian dan terima kasih. Wassalamualaikum wr. wb.