TripleO adalah singkatan dari OpenStack on OpenStack dan merupakan salah satu proyek resmi OpenStack Deployment. Menginstal sistem mandiri TripleO bisa menjadi cara yang bagus untuk membuat bukti konsep, lab rumah, atau lingkungan untuk belajar OpenStack. Namun, ini tidak direkomendasikan untuk lingkungan produksi.
Kami akan membahas langkah-langkah yang diperlukan untuk membuat penerapan mandiri rilis OpenStack Victoria menggunakan TripleO pada CentOS 8. Kami kemudian akan membuat komponen yang diperlukan untuk meluncurkan dan terhubung ke mesin virtual (VM) dengan sukses. Terakhir, kami akan menulis skrip untuk membersihkan penerapan.
Konfigurasi pra-penerapan
Mesin induk
Saya menggunakan mesin RHEL 8.2 untuk Host dalam skenario ini. Anda mungkin perlu sedikit menyesuaikan langkah-langkah untuk Fedora atau CentOS.
Untuk memanfaatkan Cockpit guna mengelola jaringan dan mesin virtual, mulai dan aktifkan layanan, lalu instal cockpit-machines
paket:
sudo systemctl enable --now cockpit.socket
sudo yum install -y cockpit-machines
Periksa apakah netfilter
modul dimuat di kernel:
sudo modprobe br_netfilter
Aktifkan penerusan IP IPv4 jika belum dimuat:
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
Muat ulang sysctl.conf
tanpa me-reboot:
sudo sysctl -p /etc/sysctl.conf
[ Pembaca juga menikmati: Memulai jaringan yang ditentukan perangkat lunak ]
Jaringan
Sebelum kita mulai, buat jaringan mandiri selain jaringan default Anda. Jaringan baru akan menjadi jaringan manajemen Anda. Anda dapat menyesuaikan yang berikut ini dengan lingkungan Anda sendiri:

Buat jaringan mandiri
Gunakan 192.168.24.0/24 sebagai jaringan mandiri. Pertama, buat standalone.xml
berkas:
sudo nano /tmp/standalone.xml
<network>
<name>standalone</name>
<forward mode='nat'>
<nat> <port start='1024' end='65535'/>
</nat>
</forward>
<ip address='192.168.24.0' netmask='255.255.255.0'>
</ip>
</network>
Selanjutnya, gunakan virsh
untuk menentukan, mengaktifkan, dan memulai jaringan eksternal:
sudo virsh net-define /tmp/standalone.xml
sudo virsh net-autostart standalone
sudo virsh net-start standalone
Pembuatan VM mandiri
Karena penerapan ini menggunakan VM versus bare metal, kami perlu membuat VM untuk menerapkan lingkungan mandiri kami.
Spesifikasi VMnya adalah:
- CentOS 8 (varian rhel8.2)
- 60 GB
- 8 RAM
- 4 CPU
- Jaringan mandiri
Saat menginstal CentOS 8 pada VM mandiri Anda, pastikan Anda tidak menginstal libvirt-tools
dan gunakan minimal atau server instalasi. Anda juga perlu membuat tumpukan pengguna.
Konfigurasi mandiri
Setelah TripleO diterapkan sebagai sistem mandiri, Anda tidak akan dapat melakukan SSH ke VM dengan kata sandi Anda. Untuk mempersiapkannya, Anda perlu menyalin kunci SSH Anda ke tumpukan pengguna. Berikut perintahnya:
ssh-copy-id -i ~/.ssh/<your ssh key> stack@<standalone>
Anda perlu mengonfigurasi tumpukan pengguna untuk NOPASSWD di sudo
:
sudo echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack
Mesin mandiri memerlukan nama domain yang sepenuhnya memenuhi syarat (FQDN), yang dapat disetel sebagai berikut:
sudo hostnamectl set-hostname standalone.example.com
sudo hostnamectl set-hostname standalone.example.com --transient
Perbarui sistem Anda dan reboot jika ada perubahan kernel:
sudo yum update -y
sudo reboot
Unduh dan instal python-tripleo-repos
RPM dari https://trunk.rdoproject.org/centos8/component/tripleo/current/
sudo yum install -y https://trunk.rdoproject.org/centos8/component/tripleo/current/python3-tripleo-repos-<version>.el8.noarch.rpm
sudo -E tripleo-repos -b victoria current
sudo yum install -y python3-tripleoclient
Konfigurasikan dan terapkan
Konfigurasi mandiri
Anda perlu membuat beberapa file konfigurasi sebelum dapat menerapkan lingkungan mandiri.
File pertama adalah containers-prepare-parameters.yaml
file, yang akan digunakan untuk menarik wadah Anda. Gunakan klien TripleO untuk membuat file dasar:
OpenStack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameters.yaml
Selanjutnya, perbarui push_destination untuk salah dan namespace untuk tarik dari quay.io:
nano containers-prepare-parameters.yaml
push_destination: false
namespace: quay.io/tripleovictoria
Selanjutnya, konfigurasikan pengaturan jaringan menggunakan konfigurasi NIC tunggal. Sebelum melanjutkan, Anda perlu menentukan antarmuka jaringan mandiri aktif. Perhatikan bahwa antarmuka mungkin belum dikonfigurasi, jadi ini akan menjadi antarmuka tanpa IP.
ip addr
Untuk menggunakan kembali parameter selama konfigurasi standalone_parameters.yaml
dan kemudian instalasi, ekspor parameter ke buffer sebagai berikut:
export IP=192.168.24.2
export VIP=192.168.25.2
export NETMASK=24
export GATEWAY=192.168.24.1
export INTERFACE=<interface>
Sekarang, buat standalone_parameters.yaml
file dengan menggunakan cat:
cat <<EOF > $HOME/standalone_parameters.yaml
parameter_defaults:
CloudName: $IP
# default gateway
ControlPlaneStaticRoutes:
- ip_netmask: 0.0.0.0/0
next_hop: $GATEWAY
default: true
Debug: true
DeploymentUser: $USER
DnsServers:
- 1.1.1.1
- 8.8.8.8
# needed for vip & pacemaker
KernelIpNonLocalBind: 1
DockerInsecureRegistryAddress:
- $IP:8787
NeutronPublicInterface: $INTERFACE
# domain name used by the host
CloudDomain: localdomain
NeutronDnsDomain: localdomain
# re-use ctlplane bridge for public net, defined in the standalone
# net config (do not change unless you know what you're doing)
NeutronBridgeMappings: datacentre:br-ctlplane
NeutronPhysicalBridge: br-ctlplane
# enable to force metadata for public net
#NeutronEnableForceMetadata: true
StandaloneEnableRoutedNetworks: false
StandaloneHomeDir: $HOME
InterfaceLocalMtu: 1500
# Needed if running in a VM, not needed if on baremetal
NovaComputeLibvirtType: qemu
EOF
Sekarang Anda siap untuk menerapkan lingkungan mandiri TripleO menggunakan perintah berikut:
sudo openstack tripleo deploy \
--templates \
--local-ip=$IP/$NETMASK \
--control-virtual-ip $VIP \
-e /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml \
-r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml \
-e $HOME/containers-prepare-parameters.yaml \
-e $HOME/standalone_parameters.yaml \
--output-dir $HOME \
--standalone
Verifikasi penginstalan
Anda sekarang dapat memverifikasi OpenStack CLI:
export OS_CLOUD=standalone
openstack endpoint list
Membuat rasa, gambar, pasangan kunci, grup keamanan, jaringan, dan server
Sekarang setelah Anda menginstal dan memverifikasi lingkungan mandiri Anda, itu siap digunakan. Buat instance kecil bernama server saya , yang menjalankan Cirros dan komponen yang diperlukan untuk melakukannya. Sebelum kita mulai, konfigurasikan baris perintah untuk mengakses penerapan:
export OS_CLOUD=standalone
Rasa
Anda sekarang siap untuk mengonfigurasi tiny rasa yang Anda gunakan dan kemudian verifikasi pembuatannya:
openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
openstack flavor list
Gambar
Sekarang setelah Anda memiliki rasa, unduh gambar Cirros lalu konfigurasikan Glance untuk menggunakannya. Verifikasi bahwa itu dibuat:
wget https://download.cirros-cloud.net/0.5.0/cirros-0.5.0-x86_64-disk.img
openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.5.0-x86_64-disk.img
openstack image list
Pasangan kunci
Untuk terhubung ke VM kami tanpa perlu mengetikkan kata sandi, buat kunci SSH baru di sistem mandiri, unggah sebagai pasangan kunci bernama default, dan verifikasi sudah dibuat:
ssh-keygen
openstack keypair create --public-key ~/.ssh/id_rsa.pub default
openstack keypair list
Grup keamanan
Tugas selanjutnya adalah membuat grup keamanan bernama dasar dengan aturan yang memungkinkan kita untuk SSH dan ping
contoh kami:
openstack security group create basic
openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
openstack security group rule create --protocol icmp basic
openstack security group rule create --protocol udp --dst-port 53:53 basic
openstack security group list
openstack security group show default
Jaringan
Sebelum kita membuat jaringan, ekspor parameter berikut untuk mesin mandiri, serta publik jaringan, pribadi jaringan, dan subnet yang akan kita buat:
export GATEWAY=192.168.24.1
export STANDALONE_HOST=192.168.24.2
export PUBLIC_NETWORK_CIDR=192.168.24.0/24
export PRIVATE_NETWORK_CIDR=192.168.100.0/24
export PUBLIC_NET_START=192.168.24.4
export PUBLIC_NET_END=192.168.24.5
export DNS_SERVER=1.1.1.1
Jaringan publik yang akan kita buat adalah eksternal jaringan yang memanfaatkan pusat data jaringan fisik:
openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
openstack network list
Sekarang kita akan membuat internal jaringan bernama pribadi dan buat subnet bernama private-net :
openstack network create --internal private
openstack network list
openstack subnet create public-net --subnet-range $PUBLIC_NETWORK_CIDR --no-dhcp --gateway $GATEWAY --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END --network public
openstack subnet create private-net --subnet-range $PRIVATE_NETWORK_CIDR --network private
openstack subnet list
Langkah terakhir adalah membuat router bernama vrouter dan hubungkan ke publik jaringan serta menambahkannya ke jaringan pribadi subnet:
openstack router create vrouter
openstack router list
openstack router set vrouter --external-gateway public
openstack router add subnet vrouter private-net
openstack router show vrouter
Server
Kami sekarang siap untuk membuat server bernama server saya memanfaatkan rasa, gambar, pasangan kunci, dan jaringan pribadi yang kami buat:
openstack server create --flavor tiny --image cirros --key-name default --security-group basic --network private myserver
Manfaatkan server show
perintah yang berfokus pada status kolom untuk menentukan kapan server kami AKTIF atau di ERROR :
openstack server show -c status myserver
Sebelum kita dapat terhubung ke server, kita perlu membuat IP mengambang dan menambahkannya ke server kita:
openstack floating ip create public
openstack server add floating ip myserver <IP>
Karena kami telah memasang pasangan kunci ke instance kami dan membuka port SSH di grup keamanan server, kami dapat dengan mudah SSH ke server sebagai sirros pengguna untuk diuji:
ssh cirros@<IP>
Bersihkan penerapan
Jika Anda perlu membersihkan lingkungan Anda, hapus layanan dan file yang diinstal untuk penerapan mandiri. Untuk melakukannya, buat skrip bernama standalone-cleanup.sh
:
cat <<EOF > $HOME/standalone-cleanup.sh
#!/bin/bash
echo "Tearing down TripleO environment"
if type pcs &> /dev/null; then
sudo pcs cluster destroy
fi
if type podman &> /dev/null; then
echo "Removing podman containers and images (takes times...)"
sudo podman rm -af
sudo podman rmi -af
fi
sudo rm -rf \
/var/lib/tripleo-config \
/var/lib/config-data /var/lib/container-config-scripts \
/var/lib/container-puppet \
/var/lib/heat-config \
/var/lib/image-serve \
/var/lib/containers \
/etc/systemd/system/tripleo* \
/var/lib/mysql/*
sudo systemctl daemon-reload
EOF
Jadikan skrip dapat dieksekusi:
chmod u+x standalone-cleanup.sh
Gunakan perintah berikut untuk menjalankan pembersihan:
./standalone-cleanup.sh
[ Pelajari dasar-dasar penggunaan Kubernetes di lembar contekan gratis ini. ]
Menutup
TripleO dapat berguna untuk membuat lab atau lingkungan demonstrasi. Ada beberapa perangkap Anda harus berhati-hati untuk membuatnya bekerja. Artikel ini membahas langkah-langkah yang diperlukan untuk menerapkan, mengonfigurasi, dan membersihkan TripleO menggunakan lingkungan berbasis RHEL.