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 nœud contrôleur. Néanmoins, vous pouvez faire tourner le service proxy sur tout nœud ayant une connectivité avec les nœuds de stockage. De plus, vous pouvez installer et configurer le service proxy sur plusieurs nœuds pour améliorer les performances et la redondance. Pour plus d’information, 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, par simplicité, ce guide référence le service d’Identité par Ajouter le service d’Identité. Avant de configurer le service de Stockage Objet, vous devez créer des credentials de service et un endpoint API.
Note
Le service de Stockage Objet n’utilise pas de base de données SQL sur le nœud contrôleur. A la place, il utilise des bases de données SQLite réparties sur chaque nœud de stockage.
Sourcer les accréditations admin pour obtenir l’accès aux commandes en ligne spécial-admin:
$ source admin-openrc.sh
Pour créer les credentials 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 | default |
| 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 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.
Installez les paquets:
# zypper install openstack-swift-proxy python-swiftclient \
python-keystoneclient python-keystonemiddleware \
python-xml memcached
Note
Les environnements OpenStack complets incluent déjà certains de ces paquets.
Editer le fichier /etc/swift/proxy-server.conf et effectuer les modifications 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], activer les modules appropriés:
[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
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 des comptes :
[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
auth_plugin = password
project_domain_id = default
user_domain_id = 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 tout 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 = 127.0.0.1:11211
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.