IT Blog

Dies ist ein vollständiges Tutorial zur Installation von OpenStack (minimale Konfiguration). Ich würde sehr gerne Open-Source-Cloud-Betriebssystem versuchen, und Openstack ist eine der ernsthaften Lösungen, von vielen Institutionen und Unternehmen verwendet. Cern ist einer unter den Nutzern, und Red Hat ist ein starker Befürworter von Openstack.

Seien Sie sich bewusst: Selbst nach diesem „ausgebügelten“ Tutorial werden Sie mit Fehlern begrüßt, nachdem Sie alles eingerichtet haben, und Sie müssen mehr recherchieren, damit Ihr OpenStack einwandfrei funktioniert. Ich werde über einige der Probleme in ein paar weiteren Kurzanleitungen schreiben.

OpenStack hat auch den Ruf, kompliziert zu installieren und zu warten und nicht sehr stabil zu sein. Ich habe viel über das OpenStack-Thema gelesen, viel Dokumentation durchgesehen und dies ist das Ergebnis. Dies wird die manuelle Installation dieser Version abdecken, und diese umfangreiche Serie wird jede Komponente der minimalen OpenStack-Installation abdecken (lassen Sie sich von diesem Minimum nicht täuschen, es gibt viel zu tun).

Es gibt einige Unterschiede zwischen der offiziellen OpenStack-Dokumentation und der Bereitstellung selbst, daher sollte Ihnen dieses Tutorial auch dabei helfen, unzählige Stunden der Suche nach Fehlern und der Entschlüsselung von Fehlern zu sparen.

Das Verfahren ist mühsam, aber ich würde es sehr empfehlen, da Sie am Ende die Grundprinzipien von OpenStack gut verstehen werden.

Nächstes Mal mehr zum Thema, lasst uns an die Arbeit gehen.

Es gibt eine Lernkurve, und nach dem, was ich gelesen habe, glaube ich, dass OpenStack derzeit eine stabile Lösung für Ihre Cloud-Anforderungen ist.

Aber, wir werden auf dem Weg sehen, lasst uns eintauchen.

Voraussetzungen

Ich werde CentOS 7 für meine Installationen verwenden (v.1908). Ich werde mein LABOR in VMware Fusion / Workstation erstellen. Die Erstinstallation von CentOS ist ohne GUI oder Zusätze minimal.

Alle meine VMs haben 4CPU-Kerne und 8 GB RAM mit mindestens 120 GB Festplatte.Mindestanforderungen finden Sie hier – https://docs.openstack.org/install-guide/overview.html

Beachten Sie die zusätzlichen Anforderungen von Netzwerk- und Antriebskomponenten und fügen Sie sie entsprechend Ihrem LABOR hinzu.

Mein LABOR hat Internetzugang.

Ich werde die OpenStack–Dokumentation auf dem Weg verfolgen – https://docs.openstack.org/install-guide/common/conventions.html

Ich werde den Build installieren, der der aktuelle ist. Ich werde mit Controller Node 1 und Compute Node 1 beginnen.

Provider-Netzwerk wird wie folgt sein (Sie benötigen Internetzugang für diese Konfiguration):

10.0.0.1/24 – Gateway

10.0.0.11/24 – Controller-Knoten 1

10.0.0.31/24 – Rechenknoten 1

10.0.0.41/24 – Blockspeicherknoten 1

10.0.0.51/24 – Objektspeicherknoten 1

10.0.0.52/24 – Objektspeicherknoten 2

Ich werde später auch ein Netzwerk im Bereich 203.0.113.0/ 24 erstellen, das ein Verwaltungsnetzwerk sein wird.

Hier sind auch die Namen und IP-Adressen der Maschinen (Sie werden sie auch in der Hosts-Datei benötigen):

10.0.0.11 controller

10.0.0.31 compute1

10.0.0.41 block1

10.0.0.51 object1

10.0.0.52 object2

Ändern Sie den Hostnamen der Maschine

Ändern Sie für jede Maschine im Labor den Hostnamen. Ich werde meine Hostnamen in die Namen ändern, die ich direkt darüber angegeben habe.

Befehl ist unten, Controller ist der Name einer der Maschinen, ändern Sie es zu dem, was Sie für richtig halten.

sudo hostnamectl set-hostname controller

So sieht die Änderung nach dem Neustart aus.

Ich habe meine Maschinen benannt – controller, compute1, block1, object1, object2.

Konfigurieren Sie die Namensauflösung

Bearbeiten Sie Ihre Netzwerkschnittstelle in /etc/sysconfig/network-scripts

In meinem Fall habe ich die Schnittstelle ifcfg-ens33

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

Ich habe folgende Zeilen bearbeitet (Controller-Maschinenbeispiel):

BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no

Hier so sieht es aus

Starten Sie den Computer neu, nachdem Sie die IP-Konfiguration festgelegt haben. Wiederholen Sie diese Schritte für alle Maschinen im Labor (natürlich unterschiedliche IP-Adresse für jeden).

CentOS-Installation aktualisieren

Bevor wir fortfahren, werden wir unsere CentOS-Installationen aktualisieren. Auf diese Weise bestätigen wir auch unsere Internetverbindung.

sudo yum update -y

Hosts-Datei bearbeiten

Auch das müssen wir auf jedem Rechner machen. Wir werden Hosts-Datei bearbeiten, so dass Maschinen können sie durch den Namen sehen.

sudo vi /etc/hosts/

Das müssen wir eingeben

10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2

So sieht meine Datei aus

Wenn wir alles in Ordnung gemacht haben, sollten wir jetzt in der Lage sein, von Controller zu compute1 und umgekehrt mit dem Namen zu pingen. (Stellen Sie sicher, dass Ihr Ping über die Firewall verfügbar ist)

Funktioniert.Geben Sie diese Werte in jede Hosts-Datei auf jedem Computer ein und stellen Sie sicher, dass Sie jeden Computer anpingen und von jedem Computer aus testen können.

NTP-Dienst einrichten

Eine genaue Zeitmessung ist wichtig, damit wir den Zeitserver einstellen und Clients daran anschließen können. Zeitserver wird unser Controller-Server und Client alle anderen Maschinen sein.

NTP-Server-Setup

Wir werden dies auf unserem Controller-Server tun.

sudo yum install chrony -y

Aktivieren und starten Sie den Dienst, indem Sie

sudo systemctl start chronydsudo systemctl enable chronyd

Sie können den Status des Dienstes auch überprüfen, indem Sie

systemctl status chronyd

Als nächstes bearbeiten wir /etc/chrony.conf-Datei

sudo vi /etc/chrony.conf

Für dieses Tutorial werde ich die Standard-Centos-NTP-Server belassen. Andernfalls, wenn Sie NTP-Server bearbeiten möchten, können Sie durch Hinzufügen des folgenden Befehls (NTP_SERVER durch NTP-Servernamen ersetzen)

server NTP_SERVER iburst

Außerdem müssen wir den Zugriff für unsere NTP-Clients vom lokalen Netzwerk aus aktivieren, indem Sie die folgende Zeile auskommentieren und bearbeiten

allow 10.0.0.0/24

Hier ist meine Konfiguration. Im grünen Teil geben Sie Ihre NTP-Server ein, und im roten Teil wird der Zugriff von unserem lokalen Netzwerk zur Zeitsynchronisierung aktiviert.

Starten Sie den Server oder den Chrony-Dienst neu, indem Sie Folgendes eingeben

sudo systemctl restart chronyd

Wir werden überprüfen, ob unser Server die Zeit synchronisiert, indem Sie folgendes eingeben

chronyc sources

Service funktioniert für mich.

Wir werden es auch über die Firewall aktivieren

sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload

NTP-Clients einrichten

Diese Schritte müssen auf den übrigen Computern ausgeführt werden.

Wieder müssen wir chrony installieren

sudo yum install chrony

Aktivieren und starten Sie den NTP-Dienst

sudo systemctl start chronydsudo systemctl enable chronyd

Danach müssen wir erneut /etc/chrony bearbeiten.conf

sudo vi /etc/chrony.conf

Sie müssen alle coment aus allen NTP-Servern löschen und Folgendes eingeben

server controller iburst

Lassen Sie alles wie es ist und schließen Sie die Datei. So sieht meins aus.

Starten Sie den NTP-Dienst erneut

sudo systemctl restart chronyd
chronyc sources

Es funktioniert, der Client kommuniziert mit dem NTP-Server.

Und auf dem NTP-Server, wenn wir Befehl eingeben

chronyc clients

Wir werden sehen, dass compute1 NTP-Client ist

Wiederholen Sie den schritt auf den Rest der Maschinen.

OpenStack-Pakete

Diese Schritte müssen auf allen Knoten ausgeführt werden. Wenn Sie Ihre CentOS-Installation nicht aktualisiert haben, deaktivieren Sie auch EPEL Repo.

!!!///NUR FÜR RED HAT-INSTALLATIONEN ÜBERSPRINGEN CENTOS DIES

subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms

Führen Sie den folgenden Befehl aus (wir installieren diese Version)

sudo yum install centos-release-openstack-train

Der nächste Befehl, den wir ausführen werden, ist

sudo yum upgrade

Starten Sie danach neu und wählen Sie new kernel , um ihn zu aktivieren.

Der nächste Befehl lautet

sudo yum install python-openstackclient

Und schließlich müssen wir unsere OpenStack-Installation in SELinux integrieren

sudo yum install openstack-selinux

SQL-Datenbank

Datenbank wird auf dem Controller-Knoten installiert.Wir werden MariaDB installieren.

sudo yum install mariadb mariadb-server python2-PyMySQL

Nach der Installation müssen wir einen Openstack bearbeiten.conf befindet sich in /etc/my.cnf.d

sudo vi /etc/my.cnf.d/openstack.conf

Wir erstellen einen mysqld-Abschnitt mit folgenden Informationen (stellen Sie sicher, dass die Bind-Adresse die Adresse Ihres Controllers ist)

bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8

So sieht es in meinem Fall aus

MariaDB aktivieren und starten

sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service

Wir werden auch eine Firewall-Ausnahme hinzufügen

sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload

Schließlich werden wir unsere Installation sichern und das Passwort für root SQL-Benutzer festlegen

sudo mysql_secure_installation

Nachrichtenwarteschlange

OpenStack verwendet die Nachrichtenwarteschlange, um koordinieren Sie Vorgänge und Status zwischen Diensten. Es läuft in der regel auf controller, so werden wir installieren es auf controller. Wir werden RabbitMQ installieren

Installation

sudo yum install rabbitmq-server

Dienst starten und aktivieren

sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service

Openstack-Benutzer hinzufügen. Ersetzen Sie RABBIT_PASS durch Ihr Passwort.

sudo rabbitmqctl add_user openstack RABBIT_PASS

Berechtigungen festlegen

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Dies sind Firewall-Einstellungen für RabbitMQ

sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp --add-port=25672/tcp --add-port=5671-5672/tcp --add-port=15672/tcp --add-port=61613-61614/tcp --add-port=1883/tcp --add-port=8883/tcpsudo firewall-cmd --reload

Optionaler SELinux-Befehl

setsebool -P nis_enabled 1

Memcached

Der Authentifizierungsmechanismus für Identitätsdienste für Dienste verwendet Memcached zum Zwischenspeichern von Token. Der Memcached-Dienst wird normalerweise auf dem Controller-Knoten ausgeführt, daher werde ich ihn auf dem Controller-Knoten installieren.

Installation

sudo yum install memcached python-memcached

Next, we will edit /etc/sysconfig/memcached

sudo vi /etc/sysconfig/memcached

controller should be added to OPTIONS line, like this

OPTIONS="-l 127.0.0.1,::1,controller"

At last, we will enable and start service

sudo systemctl enable memcached.servicesudo systemctl start memcached.service

Optional firewall settings for memcached

sudo firewall-cmd --new-zone=memcached --permanentsudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=10.0.0.0/24 --permanentsudo firewall-cmd --reload

Etcd

Short explanation from docs.openstack.org – OpenStack-Dienste können Etcd verwenden, einen verteilten zuverlässigen Schlüsselwertspeicher für die verteilte Schlüsselverriegelung, das Speichern von Konfigurationen, das Verfolgen der Dienstlebensdauer und andere Szenarien.

Etcd sollte auf dem Controller-Knoten installiert werden.

Installation

sudo yum install etcd

Als nächstes werden wir /etc/etcd/etcd bearbeiten.conf

sudo vi /etc/etcd/etcd.conf

Sie sollten die Datei wie folgt bearbeiten und die folgenden Werte ändern, um sie an die IP oder den Namen Ihres Controllers anzupassen.

#ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"ETCD_NAME="controller"#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"ETCD_INITIAL_CLUSTER_STATE="new"

So sieht meine Datei aus

Dienst aktivieren und starten

sudo systemctl enable etcdsudo systemctl start etcd

Zusätzliche Firewall-Einstellungen

sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload

Also, wir sind mehr oder weniger „fertig“ mit initiall Teil, wir werden jetzt minimale Bereitstellung für Zug tun.

Minimale Bereitstellung für Zug

Ok, also waren wir bisher erfolgreich. Wir werden jetzt einen minimalen Serviceeinsatz für den Zug durchführen. Weitere Details finden Sie hier – https://docs.openstack.org/install-guide/openstack-services.html

Dienste müssen in der angegebenen Reihenfolge installiert werden, wie unten dargestellt

Da dieses Tutorial schon etwas lang ist, habe ich ich werde es hier beenden und jeden der oben genannten Dienste in einem separaten Tutorial behandeln.

Wichtig ist, dass Sie alle Dienste in der folgenden Reihenfolge ausführen.

Hier sind die Links

  1. Identity service – keystone installation für Zug

2. Image Service – glance Installation für Zug

3. Platzierungsdienst – Platzierungsanlage für Zug

4. Compute service – nova Installation für Zug

5. Netzwerkdienst – Neutroneninstallation für Zug

Wir empfehlen, auch die folgenden Komponenten zu installieren, nachdem Sie die minimalen Bereitstellungsdienste installiert haben:

6. Armaturenbrett – Horizont-Installation für Zug

7. Blocklagerservice – Schlackeninstallation für Zug

8. Object Storage service – swift installation for Train

Additional links for after installation for errors you may encounter:

Disclaimer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.