Terapkan All-In-One OpenStack dengan Kolla-Ansible di Ubuntu 18.04

Dalam panduan ini, Anda akan mempelajari cara menerapkan OpenStack all-in-one dengan Kolla-Ansible di Ubuntu 18.04.

Kolla menyediakan wadah Docker dan buku pedoman Ansible untuk memenuhi misi Kolla. Misi Kolla adalah menyediakan wadah siap produksi dan alat penyebaran untuk mengoperasikan cloud OpenStack. Ini memungkinkan operator dengan pengalaman minimal untuk menyebarkan OpenStack dengan cepat dan seiring bertambahnya pengalaman, modifikasi konfigurasi OpenStack agar sesuai dengan kebutuhan operator yang tepat.

Terapkan All-In-One OpenStack dengan Kolla-Ansible di Ubuntu 18.04

Persyaratan sistem

Di bawah ini adalah persyaratan minimum yang disarankan untuk menerapkan AIO OpenStack dengan Kolla-Ansible:

  • 2 (atau lebih) interface jaringan.
  • Memori utama minimal 8gb
  • Setidaknya 40gb ruang disk

Di bawah ini adalah spesifikasi sistem penerapan kami;

Interfaces 2 interface jaringan: enp1s0: 192.168.122.216/24 enp6s0: tidak ada alamat IP yang ditetapkan
RAM 8 GB
vCPUs 2
Storage /dev/vda (sistem file root), /: 50G /dev/vda5 (Grup volume, openstack_cinder): 50G
Virtualization Platform KVM
Operating System Ubuntu 18.04 LTS
User user non root dengan hak sudo

Anda dapat menyediakan sumber daya sebanyak mungkin karena semakin banyak sumber daya yang Anda miliki, semakin baik kinerja stack.

NOTE: We are running the installation as non root user (koromicha in our case) with sudo privileges.

Instal Paket yang Diperlukan di Ubuntu 18.04

Sebelum Anda dapat melanjutkan, ada sejumlah paket yang diperlukan yang perlu diinstal.

Perbarui dan tingkatkan paket sistem Anda

sudo apt update
sudo apt upgrade

Instal paket yang diperlukan;

sudo apt install python3-dev python3-venv libffi-dev gcc libssl-dev git

Buat lingkungan virtual untuk menerapkan Kolla-ansible. Untuk menghindari konflik antara paket sistem dan paket Kolla-ansible, disarankan agar Kolla-ansible diinstal di lingkungan virtual.

Anda dapat membuat lingkungan virtual dengan menjalankan perintah di bawah ini. Pastikan untuk mengganti jalur ke lingkungan virtual Anda.

python3 -m venv $HOME/kolla-openstack

Selanjutnya, aktifkan lingkungan virtual Anda;

source $HOME/kolla-openstack/bin/activate

Setelah Anda mengaktifkan lingkungan virtual Kolla-ansible, prompt shell Anda akan berubah. Lihat prompt shell saya;

(kolla-openstack) [email protected]:~$

Tingkatkan pip;

pip install -U pip

Instal Ansible di Ubuntu 18.04

Instal Ansible dari lingkungan virtual. Jika Anda pernah keluar dari lingkungan virtual, Anda selalu dapat mencari jalur untuk mengaktifkannya;

source $HOME/kolla-openstack/bin/activate

Selanjutnya, instal Ansible. Kolla membutuhkan setidaknya Ansible  2.8 hingga  2.9.

pip install 'ansible<2.10'

Buat file konfigurasi yang memungkinkan di direktori home Anda dengan merdu berikut;

vim $HOME/ansible.cfg
[defaults] host_key_checking=False pipelining=True forks=100

Instal Kolla-ansible di Ubuntu 18.04

Instal Kolla-ansible di Ubuntu 18.04 menggunakan pip dari lingkungan virtual di atas;

source $HOME/kolla-openstack/bin/activate
pip install kolla-ansible

Konfigurasikan Kolla-ansible untuk All-in-one OpenStack Deployment

Selanjutnya, buat direktori konfigurasi Kolla;

sudo mkdir /etc/kolla

Perbarui kepemilikan direktori konfigurasi Kolla ke user tempat Anda mengaktifkan lingkungan virtual penerapan Koll-ansible.

sudo chown $USER:$USER /etc/kolla

Copy file konfigurasi Kolla utama, globals.ymldan file password service OpenStack, passwords.ymlke direktori konfigurasi Kolla di atas darivirtual environment.

cp $HOME/kolla-openstack/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/

Copy inventaris penerapan yang memungkinkan Kolla ke direktori kerja saat ini. Dalam tutorial ini, kami menerapkan OpenStack all-in-one dengan Kolla-ansible. Oleh karena itu, copy file inventaris all-in-one yang memungkinkan.

cp $HOME/kolla-openstack/share/kolla-ansible/ansible/inventory/all-in-one.

Tentukan Opsi Penerapan Global Kolla-Ansible

Buka globals.ymlfile konfigurasi dan tentukan opsi penerapan global AIO Kolla;

vim /etc/kolla/globals.yml

Di bawah ini adalah opsi dasar yang kami aktifkan untuk penerapan AIO OpenStack kami.

grep -vE '^$|^#' /etc/kolla/globals.yml
--- config_strategy: "COPY_ALWAYS" kolla_base_distro: "ubuntu" kolla_install_type: "binary" openstack_release: "ussuri" kolla_internal_vip_address: "192.168.122.206" kolla_internal_fqdn: "{{ kolla-openstack.kifarunix-demo.com }}" kolla_external_vip_address: "{{ kolla_internal_vip_address }}" kolla_external_fqdn: "{{ kolla_internal_fqdn }}" network_interface: "enp1s0" neutron_external_interface: "enp6s0" neutron_plugin_agent: "openvswitch" enable_haproxy: "yes" enable_cinder: "yes" enable_cinder_backend_lvm: "yes" keystone_token_provider: 'fernet' cinder_volume_group: "openstack_cinder" nova_compute_virt_type: "qemu"

Note that we enabled cinder block storage for openstack and defined the name of the existing volume group.

sudo vgs
 VG #PV #LV #SN Attr VSize VFree openstack_cinder 1 0 0 wz--n- <53.06g <53.06g

Lihat panduan dokumentasi Kolla-ansible untuk mempelajari lebih lanjut tentang opsi global yang digunakan di atas. Konfigurasi juga sangat dikomentari. Lihat komentar untuk setiap opsi untuk mempelajari apa itu tentang opsi tertentu.

Hasilkan Kata Sandi Kolla

passwords.ymlFile konfigurasi Kolla menyimpan berbagai password service OpenStack. Anda dapat membuat password secara otomatis menggunakan Kolla-ansible kolla-genpwddi lingkungan virtual Anda.

Pastikan lingkungan virtual Anda diaktifkan

source $HOME/kolla-openstack/bin/activate

Selanjutnya, buat password;

kolla-genpwd

Semua password yang dihasilkan akan diisi ke /etc/kolla/passwords.ymlfile.

Konfigurasikan Inventaris penyebaran OpenStack All-in-one

Anda sekarang memiliki inventaris penerapan kami. Karena kami menjalankan penerapan all-in-one, kami akan membiarkan semua opsi default yang ditentukan pada all-in-onefile inventaris apa adanya.

Terapkan All-In-One OpenStack dengan Kolla-Ansible di Ubuntu 18.04

Karena semuanya sudah diatur, Anda sekarang dapat mulai menerapkan OpenStack menggunakan playbook yang memungkinkan Kolla.

Again, ensure that your virtual environment is activated.

source $HOME/kolla-openstack/bin/activate

Bootstrap konfigurasi localhost Anda sebelum men-deploy container menggunakan bootstrap-serverssubcommand.

kolla-ansible -i all-in-one bootstrap-servers

Di bawah ini hanyalah cuplikan dari perintah bootstrap;

... TASK [baremetal : Restart docker] ****************************************************************************************************************************************** changed: [localhost] TASK [baremetal : Enable docker] ****************************************************
*************************************************************************************** ok: [localhost] TASK [baremetal : Stop time service] *************************************************************************************************************************************** skipping: [localhost] TASK [baremetal : Stop time service] *************************************************************************************************************************************** skipping: [localhost] TASK [baremetal : Synchronizing time one-time] ***************************************************************************************************************************** skipping: [localhost] TASK [baremetal : Start time sync service] ********************************************************************************************************************************* skipping: [localhost] TASK [baremetal : Start time sync service] ********************************************************************************************************************************* skipping: [localhost] TASK [baremetal : Change state of selinux] ********************************************************************************************************************************* skipping: [localhost] TASK [baremetal : include_tasks] ******************************************************************************************************************************************* skipping: [localhost] PLAY RECAP ***************************************************************************************************************************************************************** localhost : ok=39 changed=16 unreachable=0 failed=0 skipped=32 rescued=0 ignored=0 

Inilah yang dilakukan perintah bootstrap;

  • Kustomisasi dari /etc/hosts
  • Pembuatan user dan grup
  • Direktori konfigurasi Kolla
  • Pemasangan dan penghapusan paket
  • Instalasi dan konfigurasi engine Docker
  • Menonaktifkan firewall
  • Pembuatan lingkungan virtual Python
  • Konfigurasi Apparmor
  • Konfigurasi SELinux
  • Konfigurasi daemon NTP

Jalankan pemeriksaan pra-penerapan;

kolla-ansible -i all-in-one prechecks

Jika semuanya baik-baik saja, lanjutkan untuk menyebarkan OpenStack all-in-one dengan Kolla-ansible di Ubuntu 18.04;

kolla-ansible -i all-in-one deploy

Prosesnya mungkin memakan waktu cukup lama karena melibatkan pembuatan wadah untuk berbagai service OpenStack.

Jika semuanya berakhir dengan baik, Anda harus mendapatkan 0 tugas yang gagal;

... PLAY RECAP ***************************************************************************************************************************************************************** localhost : ok=366 changed=72 unreachable=0 failed=0 skipped=245 rescued=0 ignored=0

Daftar Menjalankan OpenStack Docker Containers

Setelah penerapan selesai, Anda dapat membuat daftar wadah buruh pelabuhan OpenStack yang sedang berjalan.

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c6b248403560 kolla/ubuntu-binary-horizon:ussuri "dumb-init --single-…" 8 minutes ago Up 8 minutes horizon 2beb267813bf kolla/ubuntu-binary-heat-engine:ussuri "dumb-init --single-…" 10 minutes ago Up 10 minutes heat_engine 5870b0231ebd kolla/ubuntu-binary-heat-api-cfn:ussuri "dumb-init --single-…" 10 minutes ago Up 10 minutes heat_api_cfn 66f4ed832ddd kolla/ubuntu-binary-heat-api:ussuri "dumb-init --single-…" 11 minutes ago Up 11 minutes heat_api f2bb8fada9a7 kolla/ubuntu-binary-neutron-metadata-agent:ussuri "dumb-init --single-…" 14 minutes ago Up 14 minutes neutron_metadata_agent f9d5336ac7c6 kolla/ubuntu-binary-neutron-l3-agent:ussuri "dumb-init --single-…" 14 minutes ago Up 14 minutes neutron_l3_agent 9d03c6194140 kolla/ubuntu-binary-neutron-dhcp-agent:ussuri "dumb-init --single-…" 14 minutes ago Up 14 minutes neutron_dhcp_agent a19896229e01 kolla/ubuntu-binary-neutron-openvswitch-agent:ussuri "dumb-init --single-…" 15 minutes ago Up 15 minutes neutron_openvswitch_agent 4fb2a327014a kolla/ubuntu-binary-neutron-server:ussuri "dumb-init --single-…" 15 minutes ago Up 15 minutes neutron_server c5afee94823a kolla/ubuntu-binary-openvswitch-vswitchd:ussuri "dumb-init --single-…" 25 minutes ago Up 25 minutes openvswitch_vswitchd 84c10bfce945 kolla/ubuntu-binary-openvswitch-db-server:ussuri "dumb-init --single-…" 25 minutes ago Up 25 minutes openvswitch_db 1b4b0189c044 kolla/ubuntu-binary-nova-compute:ussuri "dumb-init --single-…" 49 minutes ago Up 33 minutes nova_compute 410bc4a9ac94 kolla/ubuntu-binary-nova-libvirt:ussuri "dumb-init --single-…" 51 minutes ago Up 33 minutes nova_libvirt 286aabab9557 kolla/ubuntu-binary-nova-ssh:ussuri "dumb-init --single-…" 53 minutes ago Up 33 minutes nova_ssh f7ade004aba0 kolla/ubuntu-binary-nova-novncproxy:ussuri "dumb-init --single-…" 54 minutes ago Up 34 minutes nova_novncproxy ce053ee3936c kolla/ubuntu-binary-nova-conductor:ussuri "dumb-init --single-…" 54 minutes ago Up 33 minutes nova_conductor 9ace1abb6b13 kolla/ubuntu-binary-nova-api:ussuri "dumb-init --single-…" 54 minutes ago Up 33 minutes nova_api 93ec899f31e3 kolla/ubuntu-binary-nova-scheduler:ussuri "dumb-init --single-…" 54 minutes ago Up 32 minutes nova_scheduler 71675d26922b kolla/ubuntu-binary-placement-api:ussuri "dumb-init --single-…" About an hour ago Up 33 minutes placement_api 022bc9dd585c kolla/ubuntu-binary-cinder-backup:ussuri "dumb-init --single-…" About an hour ago Up 32 minutes cinder_backup 10f728092b34 kolla/ubuntu-binary-cinder-volume:ussuri "dumb-init --single-…" About an hour ago Up 33 minutes cinder_volume e34abeac698c kolla/ubuntu-binary-cinder-scheduler:ussuri "dumb-init --single-…" About an hour ago Up 33 minutes cinder_scheduler d82dbb5a8b94 kolla/ubuntu-binary-cinder-api:ussuri "dumb-init --single-…" About an hour ago Up 32 minutes cinder_api c214451bc731 kolla/ubuntu-binary-glance-api:ussuri "dumb-init --single-…" About an hour ago Up 34 minutes glance_api d895ebbc56b9 kolla/ubuntu-binary-keystone-fernet:ussuri "dumb-init --single-…" About an hour ago Up 33 minutes keystone_fernet 8e59bb92ad72 kolla/ubuntu-binary-keystone-ssh:ussuri "dumb-init --single-…" About an hour ago Up 34 minutes keystone_ssh 4e3f928dc21d kolla/ubuntu-binary-keystone:ussuri "dumb-init --single-…" About an hour ago Up 34 minutes keystone e53e6f4982af kolla/ubuntu-binary-rabbitmq:ussuri "dumb-init --single-…" About an hour ago Up 33 minutes rabbitmq bc7eeed07ef7 kolla/ubuntu-binary-tgtd:ussuri "dumb-init --single-…" About an hour ago Up 32 minutes tgtd 50fb03637da8 kolla/ubuntu-binary-iscsid:ussuri "dumb-init --single-…" About an hour ago Up 32 minutes iscsid 87d533ef99ee kolla/ubuntu-binary-memcached:ussuri "dumb-init --single-…" About an hour ago Up 34 minutes memcached 8504b79a0988 kolla/ubuntu-binary-keepalived:ussuri "dumb-init --single-…" 2 hours ago Up 34 minutes keepalived 73cbbebc44c2 kolla/ubuntu-binary-haproxy:ussuri "dumb-init --single-…" 2 hours ago Up 34 minutes haproxy c44ebacd4a1b kolla/ubuntu-binary-mariadb-clustercheck:ussuri "dumb-init --single-…" 2 hours ago Up 33 minutes mariadb_clustercheck f307c05bc38a kolla/ubuntu-binary-mariadb:ussuri "dumb-init -- kolla_…" 2 hours ago Up 34 minutes mariadb 5693020d43a2 kolla/ubuntu-binary-chrony:ussuri "dumb-init --single-…" 2 hours ago Up 34 minutes chrony 9cb7d0776984 kolla/ubuntu-binary-cron:ussuri "dumb-init --single-…" 2 hours ago Up 34 minutes cron acf3ce5c1813 kolla/ubuntu-binary-kolla-toolbox:ussuri "dumb-init --single-…" 2 hours ago Up 33 minutes kolla_toolbox 54b6b06d7e03 kolla/ubuntu-binary-fluentd:ussuri "dumb-init --single-…" 2 hours ago Up 34 minutes fluentd

OpenStack All-in-one sekarang aktif dan berjalan.

All-in-one OpenStack Post Deployment Tasks

Instal alat administrasi command line OpenStack. Anda dapat melakukan ini dari lingkungan virtual.

source $HOME/kolla-openstack/bin/ac
tivate
pip install python-openstackclient python-neutronclient python-glanceclient

Anda sekarang dapat mengelola OpenStack dari cli. Misalnya, untuk membuat daftar service yang tersedia saat ini;

openstack service list
+----------------------------------+-------------+----------------+ | ID | Name | Type | +----------------------------------+-------------+----------------+ | 06864fe8aae14ca9ad3a021af20b6159 | nova_legacy | compute_legacy | | 3f3b8fdfc1b04d789cbafc820ba6971d | cinderv3 | volumev3 | | 5cb91155a74d4fe0bed0081f60376b0f | heat | orchestration | | 789c635f1dc947018aaa962537547985 | glance | image | | abe33e17f53d4656b71251cbf57cf24c | nova | compute | | df623a12fe25412b9bd29483560eb4e5 | neutron | network | | e2318f5d7a424dac9416910e6b1094f6 | placement | placement | | e6c08f0c6a84421e85c8bff4c73a1b83 | heat-cfn | cloudformation | | ec383b1d33aa4d64ab55829a44b3c687 | keystone | identity | | f0d09637e4b84db1a02ce26b005407ca | cinderv2 | volumev2 | +----------------------------------+-------------+----------------+

Buat file kredensial user admin OpenStack ( openrc).

kolla-ansible post-deploy

Perintah ini menghasilkan file kredensial admin, /etc/kolla/admin-openrc.sh.

source /etc/kolla/admin-openrc.sh

Buat jaringan OpenStack, gambar, kunci nova menggunakan init-runonceskrip. Script mengdownload gambar cirros dan mendaftarkannya. Kemudian ia mengonfigurasi jaringan dan kuota nova untuk memungkinkan 40 instans m1.small dibuat.

Berkenaan dengan jaringan, edit init-runonceskrip dan konfigurasikan jaringan publik Anda, yang ingin Anda sambungkan ke internet melalui.

vim kolla-openstack/share/kolla-ansible/init-runonce
... ENABLE_EXT_NET=${ENABLE_EXT_NET:-1} EXT_NET_CIDR=${EXT_NET_CIDR:-'192.168.122.0/24'} EXT_NET_RANGE=${EXT_NET_RANGE:-'start=192.168.122.15,end=192.168.122.45'} EXT_NET_GATEWAY=${EXT_NET_GATEWAY:-'192.168.122.1'} 

Selanjutnya, jalankan skrip dari lingkungan virtual.

kolla-openstack/share/kolla-ansible/init-runonce
... +----------------------------+-----------+ | Field | Value | +----------------------------+-----------+ | OS-FLV-DISABLED:disabled | False | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 160 | | id | 5 | | name | m1.xlarge | | os-flavor-access:is_public | True | | properties | | | ram | 16384 | | rxtx_factor | 1.0 | | swap | | | vcpus | 8 | +----------------------------+-----------+ Done. To deploy a demo instance, run: openstack server create  --image cirros  --flavor m1.tiny  --key-name mykey  --network demo-net  demo1

Mengonfigurasi ulang Stack

Jika Anda ingin mengonfigurasi ulang stack dengan menambahkan atau menghapus service, edit file konfigurasi globals.yml dan ulangi perubahan dari lingkungan virtual.

Misalnya, setelah membuat perubahan pada file konfigurasi global, konfigurasi ulang stack;

source /path/to/virtual-environment/bin/activate

Menyebarkan kembali perubahan;

kolla-ansible -i all-in-one  reconfigure

Mengakses Interface Web OpenStack (Horizon)

Sejauh ini bagus! OpenStack aktif dan berjalan. Saatnya kita login ke interface web.

Pertama, periksa alamat IP OpenStack (alamat VIP Kolla).

ip add show enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:3e:8c:af brd ff:ff:ff:ff:ff:ff inet 192.168.122.216/24 brd 192.168.122.255 scope global dynamic enp1s0 valid_lft 2697sec preferred_lft 2697sec  inet 192.168.122.206/32 scope global enp1s0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe3e:8caf/64 scope link valid_lft forever preferred_lft forever

Jadi, 192.168.122.206, adalah alamat IP yang kami gunakan untuk mengakses OpenStack dari browser eksternal.

Oleh karena itu, untuk mengakses OpenStack Horizon dari browser, gunakan alamat, http://192.168.122.206.

.Ini akan membawa Anda ke halaman login interface web OpenStack;

Login menggunakan adminsebagai nama user.

Anda dapat memperoleh kredensial admin dari file password Kolla, /etc/kolla/passwords.yml. Untuk otentikasi Horizon, Anda memerlukan password admin Keystone.

grep keystone_admin_password /etc/kolla/passwords.yml
keystone_admin_password: vyntMgfyaZnHUcVGqQJ5OqVxbe4ppUJ2exAiB7po

Ketika Anda berhasil masuk, Anda mendarat di dasbor cakrawala OpenStack.

Meluncurkan Instance di OpenStack AIO

Kami sudah memiliki gambar cirros terdaftar (Admin > Compute > Images).

Contoh jaringan (Admin > Network > Networks) dibuat.

Kami juga memiliki rasa yang berbeda dari gambar cirros yang dibuat;

Untuk membuat dan meluncurkan instance, navigasikan ke Project > Compute > Instances. KlikLaunch Instance.

Atur detail instance, atur gambar sumber, rasa, jaringan, dan pengaturan lainnya.

Klik Launch Instance ketika selesai.

Instance membutuhkan waktu beberapa menit untuk dibuat. Setelah selesai, akan terlihat seperti gambar di bawah ini;

Klik pada nama instance untuk melihat detail selengkapnya termasuk log, akses ke konsol…

Anda juga dapat menggunakan instance menggunakan client OpenStack CLI;

openstack server create  --image cirros  --flavor m1.tiny  --key-name mykey  --network demo-net  inst002

Periksa status instance OpenStack;

openstack server list
+--------------------------------------+---------+--------+------------------------+--------+---------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+---------+--------+------------------------+--------+---------+ | c429be25-b8d0-482c-a68a-e11836ab9dc9 | inst002 | ACTIVE | demo-net=10.0.0.240 | cirros | m1.tiny | | b5467ca7-0224-42e0-b3ed-ffe7cf6a6885 | inst001 | ACTIVE | public1=192.168.122.28 | | m1.tiny | +--------------------------------------+---------+--------+------------------------+--------+---------+

Untuk contoh client OpenStack lainnya, lihat;

Lembar contekan interface command line OpenStack

Dan itu menandai akhir dari panduan kami tentang cara menerapkan OpenStack all-in-one dengan Kolla-Ansible di Ubuntu 18.04. Terus jelajahi OpenStack lebih jauh.

Bacaan lebih lanjut

Memulai dengan Ansible

Panduan Administrasi OpenStack

Memulai dengan Docker

Referensi

Panduan Memulai Cepat OpenStack Kolla-Ansible

Tutorial Terkait

Instal dan Jalankan MariaDB sebagai Docker Container

Instal dan Deploy Cluster Kubernetes di Ubuntu 20.04

Instal dan Gunakan Docker CE di CentOS 8

Instal Docker CE di Ubuntu 20.04