Dieser Abschnitt beschreibt, wie der Identitätsdienst auf dem Controller-Knoten zu installieren und zu konfigurieren ist, der Codename lautet Keystone. Aus Performancegründen verwendet diese Konfiguration Fernet-Token und den Apache HTTP-Server zur Verarbeitung von Anfragen.
Bevor Sie den OpenStack Identiäts Dienst installieren können, müssen Sie zunächst eine Datenbank und ein Administrations Token erstellen.
Führen Sie diese Schritte zum Erstellen der Datenbank aus:
Benutzen Sie den Datenbank-Client zur Verbindung zum Datenbank-Server als Benutzer root :
$ mysql -u root -p
Erstellen Sie die Datenbank keystone:
CREATE DATABASE keystone;
Vergeben Sie die richtigen Zugriffsberechtigungen für die Datenbank keystone:
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
Ersetzen Sie KEYSTONE_DBPASS durch ein geeignetes Passwort.
Beenden Sie den Datenbank-Client.
Lassen Sie einen Zufallswert zur Nutzung als Administrations-Token für die Erst-Konfiguration erzeugen:
$ openssl rand -hex 10
Bemerkung
Default configuration files vary by distribution. You might need to add these sections and options rather than modifying existing sections and options. Also, an ellipsis (...) in the configuration snippets indicates potential default configuration options that you should retain.
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.
Verhindern Sie das automatische Starten des Keystone-Dienstes nach der Installation:
# echo "manual" > /etc/init/keystone.override
Führen Sie folgenden Befehl zur Installation der Pakete aus:
# apt-get install keystone apache2 libapache2-mod-wsgi
Bearbeiten Sie die Datei /etc/keystone/keystone.conf und führen folgende Schritte durch:
Belegen Sie den Anfangswert des Administrations-Tokens im Abschnitt [DEFAULT]:
[DEFAULT]
...
admin_token = ADMIN_TOKEN
Ersetzen Sie ADMIN_TOKEN durch den zufällig generierten Wert aus dem vorherigen Schritt.
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.
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
Bemerkung
Ignorieren Sie alle veraltet-Nachrichten in dieser Ausgabe.
Initialisieren Sie Fernet-Schlüssel:
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
Bearbeiten Sie die Datei /etc/apache2/apache2.conf und tragen als ServerName den Controller-Knoten ein:
ServerName controller
Erstellen Sie die Datei /etc/apache2/sites-available/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>
Aktivieren Sie die virtuellen Hosts des Identitätsdienstes:
# ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled
Starten Sie den Apache HTTP-Server neu:
# service apache2 restart
Standardmäßig erstellen die Ubuntu-Pakete eine SQLite Datenbank.
Da die Konfiguration einen SQL-Datenbank-Server benutzt, kann die SQLite Datenbank-Datei gelöscht werden.
# rm -f /var/lib/keystone/keystone.db
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.