Le service OpenStack Identity fournit un point d'intégration unique pour la gestion des services d'authentification, d'autorisation et de catalogue de services.
Il ne vous fournit en fait 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é.
Lors de l'installation du service OpenStack Identity, vous devez enregistrer chaque service dans votre installation OpenStack. Le service d'identité peut ensuite suivre les services OpenStack installés et leur emplacement sur le réseau.
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 (keystone) 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';
Quittez le client d'accès à la base de données.
* Remplacer MOT DE PASSE avec 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 et Liberty, 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 le package Keystone.
# apt-get install keystone 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] ... ## Replace PASSWD with your KeyStone DB password and Controller with your controller node IP or Hostname ## If you found any other MySQL connection entry comment it out. connection = mysql+pymysql://keystone:PASSWD@controller/keystone [memcache] ... servers = localhost:11211 [token] ... provider = uuid driver = memcache [revoke] ... driver = sql
Exécutez la commande suivante pour remplir la base de données du service d'identité.
# su -s /bin/sh -c "keystone-manage db_sync" keystone
Configurer le serveur HTTP Apache :
Modifiez /etc/apache2/apache2.conf et configurez ServerName pour référencer le nœud du contrôleur, ajoutez-le dans la section Configuration globale.
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 group=keystone display-name=%{GROUP} WSGIProcessGroup keystone-public WSGIScriptAlias / /usr/bin/keystone-wsgi-public WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> ErrorLog /var/log/apache2/keystone.log CustomLog /var/log/apache2/keystone_access.log combined <Directory /usr/bin> <IfVersion >= 2.4> Require all granted </IfVersion> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> </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 <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> ErrorLog /var/log/apache2/keystone.log CustomLog /var/log/apache2/keystone_access.log combined <Directory /usr/bin> <IfVersion >= 2.4> Require all granted </IfVersion> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> </Directory> </VirtualHost>
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.