GNU/Linux >> Znalost Linux >  >> Linux

Nasazení virtuálního samostatného systému OpenStack TripleO

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.


Linux
  1. OpenStack Liberty na Ubuntu 14.04 – Vytvářejte virtuální sítě

  2. Jak vytvořit druhý primární nebo další oddíl ve virtuálním počítači OpenStack

  3. Jak zkontrolovat, zda systém Linux běží na fyzickém systému nebo virtuálním počítači?

  1. Jak zkontrolovat, zda je systém Linux fyzický nebo virtuální stroj

  2. Úvod do virtualizace:Komplexní průvodce pro začátečníky

  3. Nastavte virtuální hostitele Apache v operačním systému Ubuntu

  1. Linuxový příkaz, který určí, zda je stroj fyzický nebo virtuální

  2. Skrytí stavu virtuálního počítače před hostujícím operačním systémem

  3. Jak zakázat přepínání Alt-Arrow virtuálních konzolí?