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.
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.
Sourcer les crédentiels admin pour accéder aux commandes en ligne réservées à l’administrateur :
$ . admin-openrc
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 |
+-------------+----------------------------------+
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 |
+--------------+----------------------------------+
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.
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.
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
É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
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.