OpenStack adalah platform komputasi awan open source, menyediakan solusi untuk infrastruktur sebagai layanan. OpenStack terdiri dari beberapa komponen yang disatukan untuk menyediakan IaaS, komponen tercantum di bawah ini beserta penggunaannya.
Komponen:
Komponen | Nama | Gunakan |
---|---|---|
Hitung | (Nova) | Mengelola mesin virtual |
Penyimpanan Objek | (Cepat) | Mengelola penyimpanan di seluruh cloud |
Blokir Penyimpanan | (Cinder) | Mengelola penyimpanan untuk menghitung instance |
Jaringan | (Neutron) | Mengelola jaringan dan alamat ip |
Dasbor | (Horizon) | Menyediakan antarmuka web grafis untuk mengelola sumber daya |
Layanan Identitas | (Batu kunci) | Mengelola sistem otentikasi di seluruh cloud |
Layanan Gambar | (Sekilas) | Menyediakan gambar disk dan server (Templat) |
Telemetri | (Seilometer) | Sistem penagihan |
Orkestrasi | (Panas) | Menyediakan fungsi orkestrasi |
Desain Infrastruktur:
Untuk infrastruktur, kita akan menggunakan jaringan OpenStack (neutron), total tiga instance Ubuntu akan digunakan di sini, akan bertindak sebagai Controller, Network dan Compute Node.
OpenStack merekomendasikan konfigurasi minimum di bawah ini untuk setiap node, dengan sistem operasi host 64 bit.
• Node Pengontrol:1 prosesor, memori 2 GB, dan penyimpanan 5 GB
• Node Komputasi:1 prosesor, memori 2 GB, dan penyimpanan 10 GB
Berikut adalah konfigurasi jaringan setiap node.
Peran | Kartu NW 1 | Kartu NW 2 |
---|---|---|
Node Pengontrol NamaHost =controller.itzgeek.local (pengontrol) | 192.168.12.21 / 24, GW=192.168.12.2 (Jaringan Manajemen) | 192.168.0.21 / 24 GW=192.168.0.1 (Jaringan Publik – DHCP Diaktifkan) |
Node Komputasi NamaHost =compute.itzgeek.local (compute) | 192.168.12.22 / 24 GW=192.168.12.2 (Jaringan Manajemen) | 192.168.0.22 / 24 GW=192.168.0.1 (Jaringan Publik – DHCP Diaktifkan) |
* Manajemen pada 192.168.12.0/24 dengan gateway 192.168.12.1
Jaringan ini memerlukan gateway untuk menyediakan akses Internet ke semua node untuk tujuan administratif seperti penginstalan paket, update keamanan, DNS, dan NTP.
* Publik di 192.168.0.0/24 dengan gateway 192.168.0.1
Jaringan ini memerlukan gateway untuk menyediakan akses Internet ke instance di lingkungan OpenStack Anda.
Tambahkan entri host, sehingga node dapat menggunakan nama host untuk berkomunikasi alih-alih alamat ip. Tempatkan di semua node.
# nano /etc/hosts # controller 192.168.12.21 controller.itzgeek.local controller # compute 192.168.12.22 compute.itzgeek.local compute
Setelah Anda selesai mengonfigurasi alamat ip, lakukan ping antar node untuk memverifikasi konektivitas.
Server NTP:
Instal dan konfigurasi chrony (NTP) pada Controller Node sehingga semua node lain dapat melakukan sinkronisasi waktu dengan controller node.
# apt-get install ntp # service ntp restart
Konfigurasi NTP Klien
Instal paket NTP pada node Compute dan setiap node yang Anda tambahkan di masa mendatang.
# apt-get install ntp
Edit file konfigurasi di bawah ini.
# nano /etc/ntp.conf
Hapus server ntp lain dari file ini atau cukup komentari baris yang dimulai dengan kata "server". Tambahkan entri di bawah ini untuk menyinkronkan simpul kami dengan simpul pengontrol.
server controller
Mulai ulang layanan NTP.
# service ntp restart
Paket OpenStack:
Instal keyring dan repositori arsip Ubuntu Cloud.
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
Tingkatkan sistem Anda.
# apt-get update && apt-get dist-upgrade
Instal klien python OpenStack.
# apt-get install python-openstackclient
Lakukan dua langkah di atas pada semua node.
Instal database MySQL:
Komponen OpenStack menggunakan database MySQL untuk menyimpan informasi, jadi instal MySQL di Controller Node.
# apt-get install mariadb-server python-pymysql
Pemasang memanggil baris perintah tui untuk menyetel kata sandi root MySQL.
Buat dan edit /etc/mysql/conf.d/mysqld_openstack.cnf berkas
# nano /etc/mysql/conf.d/mysqld_openstack.cnf
Tambahkan nilai berikut dan pastikan nilai bind-address disetel ke alamat ip manajemen node pengontrol agar node lain dapat mengakses instance MySQL.
[mysqld] ## Set to Management IP bind-address = 192.168.12.21 default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
Mulai ulang MySQL.
# service mysql restart
Instal database NoSQL (Untuk Layanan Telemetri):
Layanan Telemetri menggunakan database NoSQL untuk menyimpan informasi. Basis data biasanya berjalan pada node pengontrol. Di sini kita akan menggunakan MongoDB.
Instalasi server database NoSQL hanya diperlukan saat menginstal layanan Telemetri. Jika tidak, Anda dapat melewati ini.
Instal MongoDB dan paketnya.
# apt-get install mongodb-server mongodb-clients python-pymongo
Edit /etc/mongodb.conf berkas.
# vi /etc/mongodb.conf
Tambahkan nilai berikut dan pastikan nilai bind_ip diatur ke alamat ip manajemen node pengontrol untuk memungkinkan node lain dapat mengakses instance MySQL. Juga, setel smallfiles =true .
# Management interface IP address of the controller node bind_ip = 192.168.12.21 smallfiles = true
Hentikan dan mulai layanan MongoDB.
# service mongodb stop # rm -rf /var/lib/mongodb/journal/prealloc.* # service mongodb start
Instal RabbitMQ:
RabbitMQ digunakan oleh OpenStack untuk mengoordinasikan operasi dan informasi status antar layanan. Instal di node pengontrol.
# apt-get install rabbitmq-server
Tambahkan pengguna openstack.
# rabbitmqctl add_user openstack password
* Ganti kata sandi dengan kata sandi Anda sendiri.
Izinkan pengguna openstack untuk membaca, menulis, dan akses konfigurasi.
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Selanjutnya adalah mengonfigurasi layanan KeyStone (OpenStack identity) .