GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bereitstellen eines virtuellen TripleO-Standalone-OpenStack-Systems

TripleO steht für OpenStack on OpenStack und ist eines der offiziellen OpenStack Deployment-Projekte. Die Installation eines eigenständigen TripleO-Systems kann eine großartige Möglichkeit sein, einen Machbarkeitsnachweis, ein Heimlabor oder eine Lernumgebung für OpenStack zu erstellen. Es wird jedoch nicht für eine Produktionsumgebung empfohlen.

Wir werden die Schritte durchgehen, die zum Erstellen einer eigenständigen Bereitstellung der OpenStack Victoria-Version unter Verwendung von TripleO auf CentOS 8 erforderlich sind. Anschließend erstellen wir die Komponenten, die zum erfolgreichen Starten und Verbinden mit einer virtuellen Maschine (VM) erforderlich sind. Abschließend schreiben wir ein Skript, um die Bereitstellung zu bereinigen.

Konfiguration vor der Bereitstellung

Hostmaschine

Ich habe in diesem Szenario einen RHEL 8.2-Computer für den Host verwendet. Möglicherweise müssen Sie die Schritte für Fedora oder CentOS leicht anpassen.

Um Cockpit zur Verwaltung von Netzwerken und virtuellen Maschinen zu nutzen, starten und aktivieren Sie den Dienst und installieren Sie dann die cockpit-machines Paket:

sudo systemctl enable --now cockpit.socket
sudo yum install -y cockpit-machines

Überprüfen Sie, ob der netfilter Modul wird in den Kernel geladen:

sudo modprobe br_netfilter

Aktivieren Sie die IPv4-IP-Weiterleitung, falls sie noch nicht geladen ist:

sudo nano /etc/sysctl.conf 
net.ipv4.ip_forward = 1

Laden Sie sysctl.conf neu ohne Neustart:

sudo sysctl -p /etc/sysctl.conf

[ Den Lesern hat auch gefallen: Erste Schritte mit softwaredefinierten Netzwerken ]

Netzwerken

Bevor wir beginnen, erstellen Sie zusätzlich zu Ihrem Standardnetzwerk ein eigenständiges Netzwerk. Das neue Netzwerk wird Ihr Verwaltungsnetzwerk. Sie können Folgendes an Ihre eigenen Umgebungen anpassen:

Erstellen Sie das eigenständige Netzwerk

Verwenden Sie 192.168.24.0/24 als eigenständiges Netzwerk. Erstellen Sie zuerst eine standalone.xml Datei:

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>

Als nächstes verwenden Sie virsh um das externe Netzwerk zu definieren, zu aktivieren und zu starten:

sudo virsh net-define /tmp/standalone.xml
sudo virsh net-autostart standalone
sudo virsh net-start standalone

Eigenständige VM-Erstellung

Da diese Bereitstellung eine VM im Vergleich zu Bare Metal verwendet, müssen wir eine VM erstellen, auf der wir unsere eigenständige Umgebung bereitstellen.

Die Spezifikationen für die VM sind:

  • CentOS 8 (Variante rhel8.2)
  • 60 GB
  • 8 RAM
  • 4 CPUs
  • Eigenständiges Netzwerk

Stellen Sie bei der Installation von CentOS 8 auf Ihrer eigenständigen VM sicher, dass Sie nicht installieren libvirt-tools und verwenden Sie ein Minimal oder Server Installation. Außerdem müssen Sie einen Stapel erstellen Benutzer.

Eigenständige Konfiguration

Sobald TripleO als eigenständiges System bereitgestellt wurde, können Sie mit Ihrem Passwort keine SSH-Verbindung zur VM herstellen. Um sich darauf vorzubereiten, müssen Sie Ihren SSH-Schlüssel auf den Stack kopieren Benutzer. Hier ist der Befehl:

ssh-copy-id -i ~/.ssh/<your ssh key> stack@<standalone>

Sie müssen den Stack konfigurieren Benutzer für NOPASSWD in sudo :

sudo echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack

Der eigenständige Computer benötigt einen vollqualifizierten Domänennamen (FQDN), der wie folgt festgelegt werden kann:

sudo hostnamectl set-hostname standalone.example.com
sudo hostnamectl set-hostname standalone.example.com --transient

Aktualisieren Sie Ihr System und starten Sie es neu, wenn es Änderungen am Kernel gibt:

sudo yum update -y
sudo reboot

Laden Sie die python-tripleo-repos herunter und installieren Sie sie RPM von 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

Konfigurieren und bereitstellen

Eigenständige Konfiguration

Sie müssen mehrere Konfigurationsdateien erstellen, bevor Sie Ihre eigenständige Umgebung bereitstellen können.

Die erste Datei ist die containers-prepare-parameters.yaml Datei, die zum Pullen Ihrer Container verwendet wird. Verwenden Sie den TripleO-Client, um eine Basisdatei zu erstellen:

OpenStack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameters.yaml

Aktualisieren Sie als Nächstes push_destination auf falsch und den Namensraum zum Pull von quay.io:

nano containers-prepare-parameters.yaml
push_destination: false
namespace: quay.io/tripleovictoria

Konfigurieren Sie als Nächstes die Netzwerkeinstellungen mit einer einzelnen NIC-Konfiguration. Bevor Sie fortfahren, müssen Sie die Schnittstelle Ihres eigenständigen Netzwerks bestimmen ist an. Beachten Sie, dass die Schnittstelle möglicherweise noch nicht konfiguriert ist, also wird es die Schnittstelle ohne IP sein.

ip addr

Zur Wiederverwendung von Parametern während der Konfiguration der standalone_parameters.yaml und dann die Installation, exportieren Sie die Parameter wie folgt in den Puffer:

export IP=192.168.24.2
export VIP=192.168.25.2
export NETMASK=24
export GATEWAY=192.168.24.1
export INTERFACE=<interface>

Erstellen Sie nun die standalone_parameters.yaml Datei mit 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

Jetzt können Sie die eigenständige TripleO-Umgebung mit dem folgenden Befehl bereitstellen:

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

Installationsüberprüfung

Sie können jetzt die OpenStack-CLI überprüfen:

export OS_CLOUD=standalone
openstack endpoint list

Erstellen einer Variante, eines Images, eines Schlüsselpaars, einer Sicherheitsgruppe, eines Netzwerks und eines Servers

Nachdem Sie Ihre eigenständige Umgebung installiert und überprüft haben, ist sie einsatzbereit. Erstellen Sie eine kleine Instanz namens myserver , auf dem Cirros und die dazu erforderlichen Komponenten ausgeführt werden. Bevor wir beginnen, konfigurieren Sie die Befehlszeile für den Zugriff auf die Bereitstellung:

export OS_CLOUD=standalone

Geschmack

Jetzt können Sie den winzigen konfigurieren Flavor, den Sie verwenden, und überprüfen Sie dann seine Erstellung:

openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
openstack flavor list

Bild

Nachdem Sie nun einen Geschmack haben, laden Sie das Cirros-Image herunter und konfigurieren Sie dann Glance um es zu benutzen. Überprüfen Sie, ob es erstellt wurde:

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

Schlüsselpaar

Um eine Verbindung zu unseren VMs herzustellen, ohne ein Passwort eingeben zu müssen, erstellen Sie einen neuen SSH-Schlüssel auf dem eigenständigen System und laden Sie ihn als Schlüsselpaar namens default hoch und vergewissern Sie sich, dass es erstellt wurde:

ssh-keygen
openstack keypair create --public-key ~/.ssh/id_rsa.pub default
openstack keypair list

Sicherheitsgruppe

Die nächste Aufgabe besteht darin, eine Sicherheitsgruppe mit dem Namen basic zu erstellen mit Regeln, die uns SSH und ping erlauben unsere Instanz:

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

Netzwerk

Bevor wir das Netzwerk erstellen, exportieren Sie die folgenden Parameter für die eigenständige Maschine sowie die öffentliche Netzwerk, ein privates Netzwerk und ein Subnetz, das wir erstellen werden:

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

Das öffentliche Netzwerk, das wir erstellen werden, ist ein externes Netzwerk, das das Rechenzentrum verwendet physisches Netzwerk:

openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
openstack network list

Wir werden jetzt eine interne erstellen Netzwerk namens privat und bauen Sie ein Subnetz namens private-net auf :

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

Die letzten Schritte bestehen darin, einen Router mit dem Namen vrouter zu erstellen und verbinden Sie es mit der Öffentlichkeit Netzwerk und fügen Sie es dem Private-Net hinzu Subnetz:

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

Wir können jetzt einen Server namens myserver erstellen unter Verwendung der von uns erstellten Variante, des Bildes, des Schlüsselpaars und des privaten Netzwerks:

openstack server create --flavor tiny --image cirros --key-name default --security-group basic --network private myserver

Verwenden Sie die server show Befehl, der sich auf den Status konzentriert Spalte, um festzustellen, wann unser Server AKTIV ist oder in FEHLER :

openstack server show -c status myserver

Bevor wir uns mit dem Server verbinden können, müssen wir eine Floating-IP erstellen und zu unserem Server hinzufügen:

openstack floating ip create public
openstack server add floating ip myserver <IP>

Da wir ein Schlüsselpaar an unsere Instanz angehängt und den SSH-Port in der Sicherheitsgruppe des Servers geöffnet haben, können wir einfach als Cirros eine SSH-Verbindung zum Server herstellen zu testender Benutzer:

ssh cirros@<IP>

Bereitstellung bereinigen

Wenn Sie Ihre Umgebung bereinigen müssen, entfernen Sie die für die eigenständige Bereitstellung installierten Dienste und Dateien. Erstellen Sie dazu ein Skript namens 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

Machen Sie das Skript ausführbar:

chmod u+x standalone-cleanup.sh

Verwenden Sie den folgenden Befehl, um die Bereinigung auszuführen:

./standalone-cleanup.sh

[ Lernen Sie die Grundlagen der Verwendung von Kubernetes in diesem kostenlosen Spickzettel. ] 

Abschluss

TripleO kann nützlich sein, um eine Labor- oder Demonstrationsumgebung zu erstellen. Es gibt ein paar Fallstricke, auf die Sie achten müssen, damit es funktioniert. Dieser Artikel behandelt die Schritte, die zum Bereitstellen, Konfigurieren und Bereinigen von TripleO in einer RHEL-basierten Umgebung erforderlich sind.


Linux
  1. OpenStack Liberty auf Ubuntu 14.04 – Erstellen Sie virtuelle Netzwerke

  2. So überprüfen Sie, ob ein Linux-System eine physische oder virtuelle Maschine ist

  3. So erstellen Sie eine zweite primäre oder zusätzliche Partition in einer virtuellen OpenStack-Maschine

  4. Einführung in die Virtualisierung:Ein umfassender Leitfaden für Anfänger

  5. Wie deaktiviere ich die Alt-Pfeil-Umschaltung von virtuellen Konsolen?

So mounten Sie Google Drive lokal als virtuelles Dateisystem in Linux

So installieren Sie Xfce Desktop auf AlmaLinux 8

Bereitstellen des Isso-Kommentarsystems unter Nginx mit Docker

Konfiguration von Suricata als Intrusion Prevention System (IPS)

So fügen Sie einen sudo-Benutzer im Linux-System hinzu oder erstellen ihn [Schnellstart]

Alle Methoden zum Ausführen einer virtuellen Maschine auf einem Linux-System