Keystone est le service d'identité d'OpenStack, il fournit la fonctionnalité de suivi des utilisateurs et de leurs autorisations ; fonctions de catalogue via des points de terminaison d'API. En fait, il ne vous fournit aucune fonction de gestion des utilisateurs, mais plutôt des interfaces de plug-in pour choisir entre le service d'authentification actuel ou les services d'identité tiers disponibles sur le marché.
Avant de continuer, jetez un œil à notre conception d'infrastructure dans l'article précédent.
Ce guide vous montre comment installer et configurer le service OpenStack Identity, nommé clé de voûte, sur le nœud du contrôleur.
Prérequis :
Avant d'installer le service d'identité OpenStack, vous devez créer une base de données et un jeton d'administration.
# mysql -u root -p
créer la base de données clé de voûte.
CREATE DATABASE keystone;
Définissez un accès approprié à la base de données Keystone.
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'PASSWD'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'PASSWD';
Remplacez PASSWD par un mot de passe approprié.
Générez une valeur aléatoire et qui peut être utilisée comme jeton d'administration pour la configuration initiale.
# openssl rand -hex 10
Installer et configurer KeyStone :
Désactivez le démarrage automatique du service Keystone après l'installation.
# echo "manual" > /etc/init/keystone.override
* Dans Kilo, le serveur HTTP Apache est utilisé pour servir les requêtes keystone sur les ports 5000 et 35357 à l'aide de mod_wsgi au lieu d'Eventlet qui est déprécié dans cette version OpenStack.
Installez la clé de voûte.
# apt-get install keystone python-openstackclient apache2 libapache2-mod-wsgi memcached python-memcache
Modifier le fichier de configuration Keystone.
# nano /etc/keystone/keystone.conf
Placez les entrées suivantes dans la section appropriée du fichier ci-dessus.
[DEFAULT] ... admin_token = 43405b090eda983ddde2 ## Replace 43405b090eda983ddde2 with a random that you generated earlier verbose = True [database] ... connection = mysql://keystone:PASSWD@controller/keystone ## Replace PASSWD with your KeyStone DB password [memcache] ... servers = localhost:11211 [token] ... provider = keystone.token.providers.uuid.Provider driver = keystone.token.persistence.backends.memcache.Token [revoke] ... driver = keystone.contrib.revoke.backends.sql.Revoke
Exécutez la commande suivante pour remplir la base de données du service d'identité.
# keystone-manage db_sync
Configurer le serveur HTTP Apache :
Modifiez /etc/apache2/apache2.conf et configurez l'option ServerName pour référencer le nœud du contrôleur.
ServerName controller
Créez le fichier ci-dessous.
# nano /etc/apache2/sites-enabled/wsgi-keystone.conf
Collez le contenu suivant dans le fichier ci-dessus.
Listen 5000 Listen 35357 <VirtualHost *:5000> WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP} WSGIProcessGroup keystone-public WSGIScriptAlias / /var/www/cgi-bin/keystone/main WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> LogLevel info ErrorLog /var/log/apache2/keystone-error.log CustomLog /var/log/apache2/keystone-access.log combined </VirtualHost> <VirtualHost *:35357> WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP} WSGIProcessGroup keystone-admin WSGIScriptAlias / /var/www/cgi-bin/keystone/admin WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> LogLevel info ErrorLog /var/log/apache2/keystone-error.log CustomLog /var/log/apache2/keystone-access.log combined </VirtualHost>
Créez le répertoire pour les composants WSGI.
# mkdir -p /var/www/cgi-bin/keystone
Exécutez la commande suivante pour télécharger les composants WSGI à partir du référentiel en amont.
# curl http://git.openstack.org/cgit/openstack/keystone/plain/httpd/keystone.py?h=stable/kilo | tee /var/www/cgi-bin/keystone/main /var/www/cgi-bin/keystone/admin
Modifier la propriété et les autorisations.
# chown -R keystone:keystone /var/www/cgi-bin/keystone # chmod 755 /var/www/cgi-bin/keystone/*
Redémarrez le service Apache.
# service apache2 restart
Supprimez la base de données SQLite car nous utilisons la base de données MySQL.
# rm -f /var/lib/keystone/keystone.db
Ensuite, créez l'entité de service et les points de terminaison de l'API.