Create a
swiftuser that the Object Storage Service can use to authenticate with the Identity Service. Choose a password and specify an email address for theswiftuser. Use theservicetenant and give the user theadminrole:$ keystone user-create --name=swift --pass=
SWIFT_PASS\ --email=[email protected]$ keystone user-role-add --user=swift --tenant=service --role=adminCreate a service entry for the Object Storage Service:
$ keystone service-create --name=swift --type=object-store \ --description="OpenStack Object Storage" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Object Storage | | id | eede9296683e4b5ebfa13f5166375ef6 | | name | swift | | type | object-store | +-------------+----------------------------------+
![[Note]](../common/images/admon/note.png)
Note The service ID is randomly generated and is different from the one shown here.
Specify an API endpoint for the Object Storage Service by using the returned service ID. When you specify an endpoint, you provide URLs for the public API, internal API, and admin API. In this guide, the
controllerhost name is used:$ keystone endpoint-create \ --service-id=$(keystone service-list | awk '/ object-store / {print $2}') \ --publicurl='http://controller:8080/v1/AUTH_%(tenant_id)s' \ --internalurl='http://controller:8080/v1/AUTH_%(tenant_id)s' \ --adminurl=http://controller:8080 +-------------+---------------------------------------------------+ | Property | Value | +-------------+---------------------------------------------------+ | adminurl | http://controller:8080/ | | id | 9e3ce428f82b40d38922f242c095982e | | internalurl | http://controller:8080/v1/AUTH_%(tenant_id)s | | publicurl | http://controller:8080/v1/AUTH_%(tenant_id)s | | region | regionOne | | service_id | eede9296683e4b5ebfa13f5166375ef6 | +-------------+---------------------------------------------------+Create the configuration directory on all nodes:
# mkdir -p /etc/swift
Create
/etc/swift/swift.confon all nodes:[swift-hash] # random unique string that can never change (DO NOT LOSE) swift_hash_path_suffix = fLIbertYgibbitZ
![]() | Note |
|---|---|
The suffix value in
|
Next, set up your storage nodes and proxy node. This example uses the Identity Service for the common authentication piece.

