TripleO je zkratka pro OpenStack na OpenStack a je jedním z oficiálních projektů OpenStack Deployment. Instalace samostatného systému TripleO může být skvělým způsobem, jak vytvořit proof of concept, domácí laboratoř nebo prostředí, ve kterém se můžete učit pro OpenStack. Není to však doporučeno pro produkční prostředí.
Projdeme si kroky potřebné k vytvoření samostatného nasazení vydání OpenStack Victoria využívající TripleO na CentOS 8. Poté vytvoříme komponenty potřebné pro úspěšné spuštění a připojení k virtuálnímu počítači (VM). Nakonec napíšeme skript pro vyčištění nasazení.
Konfigurace před nasazením
Hostitelský počítač
V tomto scénáři jsem pro hostitele použil stroj RHEL 8.2. Možná budete muset mírně upravit kroky pro Fedoru nebo CentOS.
Chcete-li využít výhody Cockpitu ke správě sítí a virtuálních počítačů, spusťte a povolte službu a poté nainstalujte cockpit-machines
balíček:
sudo systemctl enable --now cockpit.socket
sudo yum install -y cockpit-machines
Zkontrolujte, zda netfilter
modul je načten v jádře:
sudo modprobe br_netfilter
Povolit předávání IPv4 IP, pokud ještě není načteno:
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
Znovu načtěte sysctl.conf
bez restartu:
sudo sysctl -p /etc/sysctl.conf
[ Čtenáři si také užili: Začínáme se softwarově definovanou sítí ]
Vytváření sítí
Než začneme, vytvořte kromě výchozí sítě samostatnou síť. Nová síť bude vaší sítí pro správu. Následující můžete upravit pro své vlastní prostředí:
Vytvořte samostatnou síť
Využijte 192.168.24.0/24 jako samostatná síť. Nejprve vytvořte standalone.xml
soubor:
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>
Dále použijte virsh
pro definování, povolení a spuštění externí sítě:
sudo virsh net-define /tmp/standalone.xml
sudo virsh net-autostart standalone
sudo virsh net-start standalone
Vytvoření samostatného virtuálního počítače
Protože toto nasazení využívá virtuální počítač oproti holému kovu, musíme vytvořit virtuální počítač, na kterém nasadíme naše samostatné prostředí.
Specifikace pro virtuální počítač jsou:
- CentOS 8 (varianta rhel8.2)
- 60 GB
- 8 RAM
- 4 procesory
- Samostatná síť
Při instalaci CentOS 8 na váš samostatný virtuální počítač se ujistěte, že neinstalujete libvirt-tools
a použijte minimální nebo server instalace. Budete také muset vytvořit zásobník uživatel.
Samostatná konfigurace
Jakmile bude TripleO nasazeno jako samostatný systém, nebudete moci pomocí hesla SSH k virtuálnímu počítači. Chcete-li se na to připravit, musíte zkopírovat klíč SSH do zásobníku uživatel. Zde je příkaz:
ssh-copy-id -i ~/.ssh/<your ssh key> stack@<standalone>
Musíte nakonfigurovat zásobník uživatel pro NOPASSWD v sudo
:
sudo echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack
Samostatný počítač potřebuje plně kvalifikovaný název domény (FQDN), který lze nastavit následovně:
sudo hostnamectl set-hostname standalone.example.com
sudo hostnamectl set-hostname standalone.example.com --transient
Aktualizujte svůj systém a restartujte jej, pokud dojde k nějakým změnám jádra:
sudo yum update -y
sudo reboot
Stáhněte a nainstalujte python-tripleo-repos
RPM z 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
Konfigurace a nasazení
Samostatná konfigurace
Než budete moci nasadit své samostatné prostředí, musíte vytvořit několik konfiguračních souborů.
První soubor je containers-prepare-parameters.yaml
soubor, který bude použit k vytažení vašich nádob. Pomocí klienta TripleO vytvořte základní soubor:
OpenStack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameters.yaml
Dále aktualizujte push_destination na false a jmenný prostor, který se má vytáhnout z quay.io:
nano containers-prepare-parameters.yaml
push_destination: false
namespace: quay.io/tripleovictoria
Dále nakonfigurujte nastavení sítě pomocí jediné konfigurace NIC. Než budete pokračovat, musíte určit rozhraní vaší samostatné sítě je zapnuto. Upozorňujeme, že rozhraní ještě nemusí být nakonfigurováno, takže to bude rozhraní bez adresy IP.
ip addr
Chcete-li znovu použít parametry během konfigurace souboru standalone_parameters.yaml
a poté instalaci exportujte parametry do vyrovnávací paměti následovně:
export IP=192.168.24.2
export VIP=192.168.25.2
export NETMASK=24
export GATEWAY=192.168.24.1
export INTERFACE=<interface>
Nyní vytvořte standalone_parameters.yaml
soubor pomocí 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
Nyní jste připraveni nasadit samostatné prostředí TripleO pomocí následujícího příkazu:
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
Ověření instalace
Nyní můžete ověřit OpenStack CLI:
export OS_CLOUD=standalone
openstack endpoint list
Vytvoření varianty, obrazu, páru klíčů, skupiny zabezpečení, sítě a serveru
Nyní, když jste nainstalovali a ověřili své samostatné prostředí, je připraveno k použití. Vytvořte malou instanci s názvem myserver , na kterém běží Cirros a komponenty potřebné k tomu. Než začneme, nakonfigurujte příkazový řádek pro přístup k nasazení:
export OS_CLOUD=standalone
Příchuť
Nyní jste připraveni nakonfigurovat tiny příchuť, kterou používáte, a poté ověřte její vytvoření:
openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
openstack flavor list
Obrázek
Nyní, když máte chuť, stáhněte si obrázek Cirros a poté nakonfigurujte Glance používat to. Ověřte, že byl vytvořen:
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
Pár klíčů
Chcete-li se připojit k našim virtuálním počítačům, aniž byste museli zadávat heslo, vytvořte nový klíč SSH v samostatném systému a nahrajte jej jako pár klíčů s názvem výchozí, a ověřte, že je vytvořen:
ssh-keygen
openstack keypair create --public-key ~/.ssh/id_rsa.pub default
openstack keypair list
Skupina zabezpečení
Dalším úkolem je vytvořit bezpečnostní skupinu s názvem základní s pravidly, která nám umožňují SSH a ping
náš příklad:
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
Síť
Než vytvoříme síť, exportujte následující parametry pro samostatný počítač i pro veřejné síť, soukromá síť a podsíť, kterou vytvoříme:
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
Veřejná síť, kterou vytvoříme, je externí sítě využívající datové centrum fyzická síť:
openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
openstack network list
Nyní vytvoříme interní síť s názvem soukromá a vytvořte podsíť s názvem 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
Posledním krokem je vytvoření routeru s názvem vrouter a připojte jej k veřejnosti síti a také jej přidejte do private-net podsíť:
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
Nyní jsme připraveni vytvořit server s názvem myserver s využitím varianty, obrázku, páru klíčů a privátní sítě, kterou jsme vytvořili:
openstack server create --flavor tiny --image cirros --key-name default --security-group basic --network private myserver
Využijte server show
příkaz se zaměřením na stav k určení, kdy je náš server AKTIVNÍ nebo v ERROR :
openstack server show -c status myserver
Než se budeme moci připojit k serveru, musíme vytvořit plovoucí IP a přidat ji na náš server:
openstack floating ip create public
openstack server add floating ip myserver <IP>
Protože jsme k naší instanci připojili pár klíčů a otevřeli port SSH v bezpečnostní skupině serveru, můžeme jednoduše SSH na server jako cirros uživatel k testování:
ssh cirros@<IP>
Vyčistit nasazení
Pokud potřebujete vyčistit své prostředí, odeberte služby a soubory nainstalované pro samostatné nasazení. Chcete-li to provést, vytvořte skript s názvem 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
Udělejte skript spustitelným:
chmod u+x standalone-cleanup.sh
Ke spuštění čištění použijte následující příkaz:
./standalone-cleanup.sh
[ Naučte se základy používání Kubernetes v tomto bezplatném cheatu. ]
Sbalit
TripleO může být užitečné pro vytvoření laboratorního nebo demonstračního prostředí. Existuje několik úskalí, na která si musíte dát pozor, aby to fungovalo. Tento článek popisuje kroky nezbytné k nasazení, konfiguraci a vyčištění TripleO pomocí prostředí založeného na RHEL.