Installer et configurer

Installer et configurer

Cette section décrit l’installation et la configuration du Service d’Identité OpenStack, nom de code keystone, sur le nœud contrôleur. Pour une question de performance, cette configuration déploie le serveur HTTP Apache pour traiter les requêtes et Memcached pour stocker les tokens à la place d’une base de données SQL.

Pré-requis

Avant de configurer le service d’identité d’OpenStack, vous devez créer une base de donnée et un jeton d’administration.

  1. Pour créer la base de données, effectuer les opérations suivantes:

    • Utiliser le client d’accès à la base de données pour se connecter au serveur de base en tant qu’utilisateur root:

      $ mysql -u root -p
      
    • Créer la base de donnée keystone:

      CREATE DATABASE keystone;
      
    • Attribuer les bons droits d’accès à la base de données keystone:

      GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
        IDENTIFIED BY 'KEYSTONE_DBPASS';
      GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
        IDENTIFIED BY 'KEYSTONE_DBPASS';
      

      Remplacer KEYSTONE_DBPASS par un mot de passe approprié.

    • Quitter l’accès client de la base de données.

  2. Générer une valeur aléatoire à utiliser comme jeton d’administration pendant la configuration initiale :

    $ openssl rand -hex 10
    

Installer et configurer les composants

Note

Les fichiers de configuration par défaut diffèrent par distribution. Vous pouvez être amenés à ajouter ces sections et options plutôt que de modifier des sections et options existantes. De plus, une ellipse (...) dans l’extrait de configuration indique d’éventuelles options de configuration par défaut que vous devriez conserver.

Note

Dans les versions Kilo et Liberty, le projet keystone a rendu obsolète les eventlet à la faveur d’un serveur web séparé avec extensions WSGI. Ce guide utilise le serveur HTTP Apache avec l’option mod_wsgi pour répondre aux requêtes de service d’Identité sur les ports 5000 et 35357. Par défaut, le service keystone écoute toujours sur les ports 5000 et 35357. Par conséquent, ce guide désactive le service keystone. Le projet keystone prévoie de supprimer le support des eventlet dans la version Mitaka.

  1. Désactiver le service keystone pour qu’il ne démarre pas automatiquement après l’installation:

    # echo "manual" > /etc/init/keystone.override
    
  2. Lancer la commande suivante pour installer les paquets :

    # apt-get install keystone apache2 libapache2-mod-wsgi \
      memcached python-memcache
    
  1. Editer le fichier /etc/keystone/keystone.conf et effectuer les modifications suivantes:

    • Dans la section [DEFAULT], définir la valeur de jeton d’administration initial:

      [DEFAULT]
      ...
      admin_token = ADMIN_TOKEN
      

      Remplacer ADMIN_TOKEN par la valeur aléatoire générée dans l’étape précédente.

    • Dans la section [database], configurez l’accès à la base de données:

      [database]
      ...
      connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
      

      Remplacer KEYSTONE_DBPASS par le mot de passe choisi pour la base de données.

    • Dans la section [memcache], configurer le service Memcached:

      [memcache]
      ...
      servers = localhost:11211
      
    • Dans la section [token], configurer le fournisseur de token UUID et le driver Memcached:

      [token]
      ...
      provider = uuid
      driver = memcache
      
    • Dans la section [revoke], configurer le driver de revocation SQL:

      [revoke]
      ...
      driver = sql
      
    • (Optionnel) Pour faciliter la résolution des problèmes, activer la verbosité des logs dans la section [DEFAULT] :

      [DEFAULT]
      ...
      verbose = True
      
  1. Peupler la base de données du service d’identité.

    # su -s /bin/sh -c "keystone-manage db_sync" keystone
    

Configurer le serveur HTTP Apache

  1. Editer le fichier /etc/apache2/apache2.conf et configurer l’option ServerName pour pointer vers le nœud contrôleur:

    ServerName controller
    
  2. Créer le fichier /etc/apache2/sites-available/wsgi-keystone.conf avec le contenu suivant:

    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>
    
  3. Activer les hosts virtuel du service d’Identité:

    # ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled
    

Finaliser l’installation

  1. Redémarrer le serveur HTTP Apache

    # service apache2 restart
    
  2. Par défaut, les packages Ubuntu créent une base de données SQLite.

    Comme cette configuration utilise un serveur de base de données SQL, le fichier de base de données SQLite peut être supprimé:

    # rm -f /var/lib/keystone/keystone.db
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

Search