GNU/Linux >> Belajar Linux >  >> Linux

Menyebarkan sistem OpenStack mandiri TripleO virtual

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.


Linux
  1. Cara Membuat Partisi Utama atau Tambahan Kedua di Mesin Virtual OpenStack

  2. Bagaimana Cara Memeriksa Apakah Sistem Linux Berjalan di Sistem Fisik atau Mesin Virtual?

  3. Perintah Linux untuk mengetahui apakah mesin itu fisik atau virtual

  1. Menyembunyikan status mesin Virtual dari sistem operasi tamu

  2. Bagaimana cara menonaktifkan pengalihan Alt-Arrow dari Konsol Virtual?

  3. Apakah mengembangkan/menguji modul linux aman menggunakan mesin virtual?

  1. OpenStack Liberty di Ubuntu 14.04 – Buat jaringan virtual

  2. Cara Memeriksa Apakah Sistem Linux Adalah Mesin Fisik Atau Virtual

  3. Siapkan host virtual Apache di sistem operasi Ubuntu