Installer et configurer le nœud contrôleur

Installer et configurer le nœud contrôleur

Cette section décrit comment installer et configurer le service de Systèmes de Fichiers Partagés, nom de code manila, sur le contrôleur. Ce service nécessite au minimum un nœud de partages supplémentaire pour gérer les drivers de stockage de fichiers.

Pré-requis

Avant d’installer et configurer le service de Systèmes de Fichiers Partagés, vous devez créer une base de données, des crédentiels et des endpoints API.

  1. Pour créer la base de données, réalisez les étapes suivantes :

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

      $ mysql -u root -p
      
    • Créer la base de données manila :

      CREATE DATABASE manila;
      
    • Octroyer les droits d’accès nécessaires à la base de données ``manila` :

      GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'localhost' \
        IDENTIFIED BY 'MANILA_DBPASS';
      GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'%' \
        IDENTIFIED BY 'MANILA_DBPASS';
      

      Remplacer MANILA_PASS par un mot de passe approprié.

    • Quitter le client d’accès à la base de données.

  2. Sourcer les crédentiels admin pour accéder aux commandes en ligne réservées à l’administrateur :

    $ . admin-openrc
    
  3. Pour créer les crédentiels du service, réalisez les étapes suivantes :

    • Créer un utilisateur manila :

      $ openstack user create --domain default --password-prompt manila
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | e0353a670a9e496da891347c589539e9 |
      | enabled   | True                             |
      | id        | 83a3990fc2144100ba0e2e23886d8acc |
      | name      | manila                           |
      +-----------+----------------------------------+
      
    • Ajouter le rôle admin à l’utilisateur manila :

      $ openstack role add --project service --user manila admin
      

      Note

      Cette commande ne produit aucune sortie.

    • Créer les entités de service manila et manilav2 :

      $ openstack service create --name manila \
        --description "OpenStack Shared File Systems" share
        +-------------+----------------------------------+
        | Field       | Value                            |
        +-------------+----------------------------------+
        | description | OpenStack Shared File Systems    |
        | enabled     | True                             |
        | id          | 82378b5a16b340aa9cc790cdd46a03ba |
        | name        | manila                           |
        | type        | share                            |
        +-------------+----------------------------------+
      
      $ openstack service create --name manilav2 \
        --description "OpenStack Shared File Systems" sharev2
        +-------------+----------------------------------+
        | Field       | Value                            |
        +-------------+----------------------------------+
        | description | OpenStack Shared File Systems    |
        | enabled     | True                             |
        | id          | 30d92a97a81a4e5d8fd97a32bafd7b88 |
        | name        | manilav2                         |
        | type        | sharev2                          |
        +-------------+----------------------------------+
      

      Note

      Les services de Systèmes de Fichiers Partagés nécessitent deux entités de service.

  4. Créer les endpoints API pour le service de Systèmes de Fichiers Partagés :

    $ openstack endpoint create --region RegionOne \
      share public http://controller:8786/v1/%\(tenant_id\)s
      +--------------+-----------------------------------------+
      | Field        | Value                                   |
      +--------------+-----------------------------------------+
      | enabled      | True                                    |
      | id           | 0bd2bbf8d28b433aaea56a254c69f69d        |
      | interface    | public                                  |
      | region       | RegionOne                               |
      | region_id    | RegionOne                               |
      | service_id   | 82378b5a16b340aa9cc790cdd46a03ba        |
      | service_name | manila                                  |
      | service_type | share                                   |
      | url          | http://controller:8786/v1/%(tenant_id)s |
      +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      share internal http://controller:8786/v1/%\(tenant_id\)s
      +--------------+-----------------------------------------+
      | Field        | Value                                   |
      +--------------+-----------------------------------------+
      | enabled      | True                                    |
      | id           | a2859b5732cc48b5b083dd36dafb6fd9        |
      | interface    | internal                                |
      | region       | RegionOne                               |
      | region_id    | RegionOne                               |
      | service_id   | 82378b5a16b340aa9cc790cdd46a03ba        |
      | service_name | manila                                  |
      | service_type | share                                   |
      | url          | http://controller:8786/v1/%(tenant_id)s |
      +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      share admin http://controller:8786/v1/%\(tenant_id\)s
      +--------------+-----------------------------------------+
      | Field        | Value                                   |
      +--------------+-----------------------------------------+
      | enabled      | True                                    |
      | id           | f7f46df93a374cc49c0121bef41da03c        |
      | interface    | admin                                   |
      | region       | RegionOne                               |
      | region_id    | RegionOne                               |
      | service_id   | 82378b5a16b340aa9cc790cdd46a03ba        |
      | service_name | manila                                  |
      | service_type | share                                   |
      | url          | http://controller:8786/v1/%(tenant_id)s |
      +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      sharev2 public http://controller:8786/v2/%\(tenant_id\)s
      +--------------+-----------------------------------------+
      | Field        | Value                                   |
      +--------------+-----------------------------------------+
      | enabled      | True                                    |
      | id           | d63cc0d358da4ea680178657291eddc1        |
      | interface    | public                                  |
      | region       | RegionOne                               |
      | region_id    | RegionOne                               |
      | service_id   | 30d92a97a81a4e5d8fd97a32bafd7b88        |
      | service_name | manilav2                                |
      | service_type | sharev2                                 |
      | url          | http://controller:8786/v2/%(tenant_id)s |
      +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      sharev2 internal http://controller:8786/v2/%\(tenant_id\)s
      +--------------+-----------------------------------------+
      | Field        | Value                                   |
      +--------------+-----------------------------------------+
      | enabled      | True                                    |
      | id           | afc86e5f50804008add349dba605da54        |
      | interface    | internal                                |
      | region       | RegionOne                               |
      | region_id    | RegionOne                               |
      | service_id   | 30d92a97a81a4e5d8fd97a32bafd7b88        |
      | service_name | manilav2                                |
      | service_type | sharev2                                 |
      | url          | http://controller:8786/v2/%(tenant_id)s |
      +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      sharev2 admin http://controller:8786/v2/%\(tenant_id\)s
      +--------------+-----------------------------------------+
      | Field        | Value                                   |
      +--------------+-----------------------------------------+
      | enabled      | True                                    |
      | id           | e814a0cec40546e98cf0c25a82498483        |
      | interface    | admin                                   |
      | region       | RegionOne                               |
      | region_id    | RegionOne                               |
      | service_id   | 30d92a97a81a4e5d8fd97a32bafd7b88        |
      | service_name | manilav2                                |
      | service_type | sharev2                                 |
      | url          | http://controller:8786/v2/%(tenant_id)s |
      +--------------+-----------------------------------------+
    

    Note

    Les services de Systèmes de Fichiers Partagés nécessitent un endpoint pour chaque entité de service.

Installer et configurer les composants

  1. Installer les packages :

    # yum install openstack-manila python-manilaclient
    
  1. Editer le fichier /etc/manila/manila.conf et effectuer les actions suivantes :

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

      [database]
      ...
      connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila
      

      Remplacer MANILA_DBPASS par le mot de passe choisi pour la base de données du Système de Fichiers Partagés.

    • Dans les sections [DEFAULT] et [oslo_messaging_rabbit], configurer l’accès au service de files de messages RabbitMQ:

      [DEFAULT]
      ...
      rpc_backend = rabbit
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      

      Remplacez RABBIT_PASS par le mot de passe que vous avez attribué au compte openstack dans RabbitMQ.

    • Dans la section [DEFAULT], définir les valeurs de configuration suivantes :

      [DEFAULT]
      ...
      default_share_type = default_share_type
      rootwrap_config = /etc/manila/rootwrap.conf
      
    • Dans les sections [DEFAULT] et [keystone_authtoken], configurer l’accès au service d’Identité :

      [DEFAULT]
      ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      ...
      memcached_servers = controller:11211
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = manila
      password = MANILA_PASS
      

      Remplacer MANILA_PASS par le mot de passe choisi pour l’utilisateur manila dans le service d’Identité.

    • Dans la section [DEFAULT], configurer l’option my_ip pour utiliser l’adresse IP de l’interface d’administration du contrôleur:

      [DEFAULT]
      ...
      my_ip = 10.0.0.11
      
    • Dans la section [oslo_concurrency], configurer le chemin du verrou :

      [oslo_concurrency]
      ...
      lock_path = /var/lib/manila/tmp
      
  1. Peupler la base de données du Système de Fichiers Partagés :

    # su -s /bin/sh -c "manila-manage db sync" manila
    

    Note

    Ignorer les éventuels messages obsolètes.

Finaliser l’installation

  • Démarrer les services de Systèmes de Fichiers Partagés et les configurer pour être lancés au démarrage du système :

    # systemctl enable openstack-manila-api.service openstack-manila-scheduler.service
    # systemctl start openstack-manila-api.service openstack-manila-scheduler.service
    
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.