Installer et configurer le contrôleur.

Installer et configurer le contrôleur.

Cette section décrit comment installer et configurer le service proxy qui traite les requêtes pour les services de compte, de conteneur et d’objet fonctionnant sur les nœuds de stockage. Pour plus de simplicité, ce guide installe et configure le service proxy sur le contrôleur. Néanmoins, vous pouvez faire tourner le service proxy sur tout nœud ayant une connectivité avec les nœuds de stockage. Vous pouvez aussi installer et configurer le service proxy sur plusieurs nœuds pour améliorer les performances et la redondance. Pour plus d’informations, voir le Guide de Déploiement.

Pré-requis

Le service proxy se base sur un mécanisme d’authentification et d’autorisation comme le service d’Identité. Néanmoins, contrairement aux autres services, il offre également un mécanisme interne qui lui permet de fonctionner sans aucun autre service OpenStack. Toutefois, pour simplifier, ce guide fait référence au service d’Identité dans Service d’Identité. Avant de configurer le service de Stockage Objet, vous devez créer les crédentiels de service et un endpoint API.

Note

Le service de Stockage Objet n’utilise pas de base de données SQL sur le contrôleur. A la place, il utilise des bases de données SQLite réparties sur chaque nœud de stockage.

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

    $ . admin-openrc
    
  2. Pour créer les crédentiels du service Identity , suivre les étapes suivantes :

    • Créer l’utilisateur swift :

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

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

      Note

      Cette commande ne produit aucune sortie.

    • Créer l’entité de service swift :

      $ openstack service create --name swift \
        --description "OpenStack Object Storage" object-store
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Object Storage         |
      | enabled     | True                             |
      | id          | 75ef509da2c340499d454ae96a2c5c34 |
      | name        | swift                            |
      | type        | object-store                     |
      +-------------+----------------------------------+
      
  3. Créer les endpoints du service de Stockage Objet :

    $ openstack endpoint create --region RegionOne \
      object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s
    +--------------+----------------------------------------------+
    | Field        | Value                                        |
    +--------------+----------------------------------------------+
    | enabled      | True                                         |
    | id           | 12bfd36f26694c97813f665707114e0d             |
    | interface    | public                                       |
    | region       | RegionOne                                    |
    | region_id    | RegionOne                                    |
    | service_id   | 75ef509da2c340499d454ae96a2c5c34             |
    | service_name | swift                                        |
    | service_type | object-store                                 |
    | url          | http://controller:8080/v1/AUTH_%(tenant_id)s |
    +--------------+----------------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s
    +--------------+----------------------------------------------+
    | Field        | Value                                        |
    +--------------+----------------------------------------------+
    | enabled      | True                                         |
    | id           | 7a36bee6733a4b5590d74d3080ee6789             |
    | interface    | internal                                     |
    | region       | RegionOne                                    |
    | region_id    | RegionOne                                    |
    | service_id   | 75ef509da2c340499d454ae96a2c5c34             |
    | service_name | swift                                        |
    | service_type | object-store                                 |
    | url          | http://controller:8080/v1/AUTH_%(tenant_id)s |
    +--------------+----------------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      object-store admin http://controller:8080/v1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | ebb72cd6851d4defabc0b9d71cdca69b |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 75ef509da2c340499d454ae96a2c5c34 |
    | service_name | swift                            |
    | service_type | object-store                     |
    | url          | http://controller:8080/v1        |
    +--------------+----------------------------------+
    

Installer et configurer les composants

Note

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

  1. Installer les packages :

    # yum install openstack-swift-proxy python-swiftclient \
      python-keystoneclient python-keystonemiddleware \
      memcached
    

    Note

    Les environnements OpenStack complets incluent déjà certains de ces packages.

  1. Obtenir le fichier de configuration du service proxy à partir du dépôt source du Stockage Objet :

    # curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/mitaka
    
  1. Éditer le fichier /etc/swift/proxy-server.conf et effectuer les actions suivantes :

    • Dans la section [DEFAULT], configurer le port d’écoute, l’utilisateur et le répertoire de configuration :

      [DEFAULT]
      ...
      bind_port = 8080
      user = swift
      swift_dir = /etc/swift
      
    • Dans la section [pipeline:main], supprimer les modules tempurl et tempauth et ajouter les modules authtoken et keystoneauth :

      [pipeline:main]
      pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
      

      Note

      Ne pas modifier l’ordre des modules.

      Note

      Pour plus d’informations sur les autres modules activant des fonctionnalités additionnelles, voir le Guide de Déploiement.

    • Dans la section [app:proxy-server], activer la création automatique de compte :

      [app:proxy-server]
      use = egg:swift#proxy
      ...
      account_autocreate = True
      
    • Dans la section [filter:keystoneauth], configurer les rôles opérateur :

      [filter:keystoneauth]
      use = egg:swift#keystoneauth
      ...
      operator_roles = admin,user
      
    • Dans la section [filter:authtoken], configurer l’accès au service d’Identité :

      [filter:authtoken]
      paste.filter_factory = keystonemiddleware.auth_token:filter_factory
      ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = swift
      password = SWIFT_PASS
      delay_auth_decision = True
      

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

      Note

      Commenter ou supprimer toute autre option dans la section [filter:authtoken].

    • Dans la section [filter:cache], configurer l’emplacement de memcached :

      [filter:cache]
      use = egg:swift#memcache
      ...
      memcache_servers = controller:11211
      
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.