Ubuntu 20.04
Sponsored Link

OpenStack Ussuri : Configure Swift (Control Node)2020/06/17

 
Configure OpenStack Object Storage (Swift).
This example is based on the environment like follows.
------------+---------------------------+-------------+---
            |                           |             |
        eth0|10.0.0.30              eth0|10.0.0.50    |
+-----------+-----------+   +-----------+-----------+ |
|    [ Control Node ]   |   |    [  Proxy Node  ]   | |
|                       |   |                       | |
|  MariaDB    RabbitMQ  |   |      Swift Proxy      | |
|  Memcached  httpd     |   |                       | |
|  Keystone             |   |                       | |
+-----------------------+   +-----------------------+ |
                                                      |
------------+---------------------------+-------------+-------------+-----------
        eth0|10.0.0.71              eth0|10.0.0.72              eth0|10.0.0.73
+-----------+-----------+   +-----------+-----------+   +-----------+-----------+
|   [ Storage Node#1 ]  |   |   [ Storage Node#2 ]  |   |   [ Storage Node#3 ]  |
|                       |   |                       |   |                       |
|     Swift-Account     |   |     Swift-Account     |   |     Swift-Account     |
|    Swift-Container    |   |    Swift-Container    |   |    Swift-Container    |
|     Swift-Object      |   |     Swift-Object      |   |     Swift-Object      |
+-----------------------+   +-----------------------+   +-----------------------+

[1] Add Swift user or service on Keystone Server (Control Node) first.
# create [swift] user in [service] project

root@dlp ~(keystone)#
openstack user create --domain default --project service --password servicepassword swift

+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | c0e098a54a4640caa9004fb8f500f554 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 245bd9e429654febbc6dcb4ff0a00d56 |
| name                | swift                            |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

# add [swift] user in [admin] role

root@dlp ~(keystone)#
openstack role add --project service --user swift admin
# create service entry for [swift]

root@dlp ~(keystone)#
openstack service create --name swift --description "OpenStack Object Storage" object-store

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Object Storage         |
| enabled     | True                             |
| id          | 2f29bf8914024c768162a3a58a190d7f |
| name        | swift                            |
| type        | object-store                     |
+-------------+----------------------------------+

# define Swift Proxy Host

root@dlp ~(keystone)#
export swift_proxy=10.0.0.50
# create endpoint for [swift] (public)

root@dlp ~(keystone)#
openstack endpoint create --region RegionOne object-store public http://$swift_proxy:8080/v1/AUTH_%\(tenant_id\)s

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | a5d8d7dc14aa46b89e67889bb87cb724            |
| interface    | public                                      |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | 2f29bf8914024c768162a3a58a190d7f            |
| service_name | swift                                       |
| service_type | object-store                                |
| url          | http://10.0.0.50:8080/v1/AUTH_%(tenant_id)s |
+--------------+---------------------------------------------+

# create endpoint for [swift] (internal)

root@dlp ~(keystone)#
openstack endpoint create --region RegionOne object-store internal http://$swift_proxy:8080/v1/AUTH_%\(tenant_id\)s

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | 08a5530bb430490c83a641a624ccd6d1            |
| interface    | internal                                    |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | 2f29bf8914024c768162a3a58a190d7f            |
| service_name | swift                                       |
| service_type | object-store                                |
| url          | http://10.0.0.50:8080/v1/AUTH_%(tenant_id)s |
+--------------+---------------------------------------------+

# create endpoint for [swift] (admin)

root@dlp ~(keystone)#
openstack endpoint create --region RegionOne object-store admin http://$swift_proxy:8080/v1

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 30fe0256c8c849ecae1d27c0eac86ef3 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 2f29bf8914024c768162a3a58a190d7f |
| service_name | swift                            |
| service_type | object-store                     |
| url          | http://10.0.0.50:8080/v1         |
+--------------+----------------------------------+
Matched Content