Dieser Abschnitt beschreibt, wie der Identitätsdienst auf dem Controller-Knoten zu installieren und zu konfigurieren ist, der Codename lautet Keystone. Aus Gründen der Skalierbarkeit verwendet diese Konfiguration Fernet-Tokens und den Apache HTTP-Server zur Verarbeitung von Anfragen.
Bevor Sie den Identitätsdienst installieren und konfigurieren, müssen Sie eine Datenbank erstellen.
Bemerkung
Bevor Sie anfangen, stellen Sie sicher, dass Sie die aktuellste Version von python-pyasn1
installiert haben,.
Benutzen Sie den Datenbank-Client zur Verbindung zum Datenbank-Server als Benutzer root
:
$ mysql -u root -p
Erstellen Sie die Datenbank keystone
:
MariaDB [(none)]> CREATE DATABASE keystone;
Vergeben Sie die richtigen Zugriffsberechtigungen für die Datenbank keystone
:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
Ersetzen Sie KEYSTONE_DBPASS
durch ein geeignetes Passwort.
Beenden Sie den Datenbank-Client.
Bemerkung
Die voreingestellten Konfigurationsdateien können je nach Distribution unterschiedlich aussehen. Es kann notwendig sein, diese Abschnitte und Optionen selbst hinzuzufügen anstatt bestehende anzupassen. Außerdem deuten Auslassungszeichen (...) in den Konfigurationsabschnitten Standardeinstellungen an, die beibehalten werden sollten.
Bemerkung
Dieser Leitfaden verwendet den Apache HTTP-Server mit mod_wsgi
um die Anfragen des Identitätsdienstes auf den Ports 5000 und 35357 zu verarbeiten. Standardmäßig lauscht der Keystone-Dienst weiterhin auf diesen Ports, deshalb wird der Dienst in diesem Leitfaden deaktiviert.
Bemerkung
Seit dem Newton-Release werden SUSE OpenStack Pakete mit den Standard-Upstream Konfigurationsdateien geliefert. Als Beispiel /etc/keystone/keystone.conf
mit Anpassungen in /etc/keystone/keystone.conf.d/010-keystone.conf
. Die folgenden Anweisungen bearbeiten die Standard-Konfigurationsdateien, aber das Hinzufügen von neuen Dateien in /etc/keystone/keystone.conf.d
erfüllt den gleichen Zweck.
Führen Sie folgenden Befehl zur Installation der Pakete aus:
# zypper install openstack-keystone apache2-mod_wsgi
Bearbeiten Sie die Datei /etc/keystone/keystone.conf
und führen folgende Schritte durch:
Konfigurieren Sie den Datenbankzugriff in der Sektion [database]
:
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
Ersetzen Sie KEYSTONE_DBPASS
durch das Passwort, das Sie für die Datenbank gewählt haben.
Bemerkung
Kommentieren oder entfernen Sie alle anderen connection
Optionen in der [database]
Sektion.
Konfigurieren Sie den Fernet-Token-Anbieter im Abschnitt [token]
:
[token]
# ...
provider = fernet
Befüllen Sie die Identitätsdienst-Datenbank:
# su -s /bin/sh -c "keystone-manage db_sync" keystone
Initialisieren der Fernet key repositories:
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
Bootstrap des Identitätsdienstes:
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
Ersetzen Sie ADMIN_PASS
mit einem angemessenen Passwort für den administrativen Benutzer.
Bearbeiten Sie die Datei /etc/sysconfig/apache2
und tragen als APACHE_SERVERNAME
den Controller-Knoten ein:
APACHE_SERVERNAME="controller"
Erstellen Sie die Datei /etc/apache2/conf.d/wsgi-keystone.conf
mit folgendem Inhalt:
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
Ändern Sie die Eigentumsrechte des Verzeichnisses /etc/keystone
rekursiv:
# chown -R keystone:keystone /etc/keystone
Starten Sie den Apache HTTP-Dienst und konfigurieren ihn so, dass er beim Booten des Systems startet:
# systemctl enable apache2.service
# systemctl start apache2.service
Konfigurieren Sie das Administratorenkonto
$ export OS_USERNAME=admin
$ export OS_PASSWORD=ADMIN_PASS
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://controller:35357/v3
$ export OS_IDENTITY_API_VERSION=3
Ersetzen Sie ADMIN_PASS
mit dem im keystone-manage bootstrap
Kommando in keystone-install-configure verwendeten.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.