Вы находитесь на странице: 1из 6

OpenStack Pike

2017/09/03

Travaux de synthèse : Taylor VOLI

Volet 11
2

OpenStack Pike : How to use Swift


2017/09/07

This section shows how to use Swift Storage from Clients.


This example is based on the emvironment like follows.
-+---------------+----------------------------+-------------------------
---+------------
| | |
|
| eth0|10.0.0.30 eth0|10.0.0.50
eth0|10.0.0.61
| +-----------+-----------+ +-----------+-----------+ +--------
---+-----------+
| | [ Control Node ] | | [ Proxy Node ] | | [
Client ] |
| | | | | |
|
| | MariaDB RabbitMQ | | Swift Proxy | |
Swift Client |
| | 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 |
+-----------------------+ +-----------------------+ +--------
---------------+

Add a user for using Swift on Keystone Control Node.


[1] By the way, if you'd like to use Swift Quickly, it's unnecessarry to add a new user, it's
posibble to use with existing admin or swift user on Keystone.
# add swiftservice project

2
3

[root@dlp ~(keystone)]#
openstack project create --domain default --description "Swift Service Project" swiftservice

+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Swift Service Project |
| domain_id | default |
| enabled | True |
| id | 75f5fb876f8a47c983477872cbd8530c |
| is_domain | False |
| name | swiftservice |
| parent_id | default |
+-------------+----------------------------------+

# add SwiftOperator role

[root@dlp ~(keystone)]#
openstack role create SwiftOperator

+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | None |
| id | e45f9c345d5547a192ce22e5a7f983eb |
| name | SwiftOperator |
+-----------+----------------------------------+

# add a user

[root@dlp ~(keystone)]#
openstack user create --domain default --project swiftservice --password userpassword
swiftuser01

+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| default_project_id | 75f5fb876f8a47c983477872cbd8530c |
| domain_id | default |
| enabled | True |
| id | bc43635e1d074a81b4184806e7e0c6e7 |
| name | swiftuser01 |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+

# add the user in SwiftOperator role

[root@dlp ~(keystone)]#
openstack role add --project swiftservice --user swiftuser01 SwiftOperator

3
4

Work on a Client from here and later.


[2]
Install Keystoneclient, Swiftclient on a Client first.
# install from Pike, EPEL

[root@client ~]#
yum --enablerepo=centos-openstack-pike,epel -y install python-openstackclient python-
keystoneclient python-swiftclient
[3] Load environment variables first. ( it's just the value for a user added in [1] )
[root@client ~]#
vi ~/keystonerc_swift
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=swiftservice
export OS_USERNAME=swiftuser01
export OS_PASSWORD=userpassword
export OS_AUTH_URL=http://10.0.0.30:35357/v3
export OS_IDENTITY_API_VERSION=3
export PS1='[\u@\h \W(swift)]\$ '
[root@client ~]#
chmod 600 ~/keystonerc_swift

[root@client ~]#
source ~/keystonerc_swift

[root@client ~(swift)]#
echo "source ~/keystonerc_swift " >> ~/.bash_profile
# show status

[root@client ~(swift)]#
swift stat

Account: AUTH_75f5fb876f8a47c983477872cbd8530c
Containers: 0
Objects: 0
Bytes: 0
X-Put-Timestamp: 1504835074.04765
X-Timestamp: 1504835074.04765
X-Trans-Id: tx40971e615efe4e05b4239-0059b1f601
Content-Type: text/plain; charset=utf-8
X-Openstack-Request-Id: tx40971e615efe4e05b4239-0059b1f601
[4] Create a Container for saving files.
[root@client ~(swift)]#
openstack container create test_container

+---------------------------------------+----------------+--------------------------
----------+

4
5

| account | container | x-trans-id


|
+---------------------------------------+----------------+--------------------------
----------+
| AUTH_75f5fb876f8a47c983477872cbd8530c | test_container | txaf725e44f0b346ffbaa4a-
0059b1f614 |
+---------------------------------------+----------------+--------------------------
----------+

[root@client ~(swift)]#
openstack container list

+----------------+
| Name |
+----------------+
| test_container |
+----------------+
[5] Upload a file on local to the Container.
# upload test.txt

[root@client ~(swift)]#
openstack object create test_container test.txt

+----------+----------------+----------------------------------+
| object | container | etag |
+----------+----------------+----------------------------------+
| test.txt | test_container | 7b6dd74076b42304affd73518caeda9a |
+----------+----------------+----------------------------------+

[root@client ~(swift)]#
openstack object list test_container

+----------+
| Name |
+----------+
| test.txt |
+----------+
[6] Download a file from Swift Storage to local.
# remove local file

[root@client ~(swift)]#
rm test.txt
[root@client ~(swift)]#
openstack object save test_container test.txt

[root@client ~(swift)]#
ll

total 36

5
6

-rw-------. 1 root root 1145 Oct 31 2016 anaconda-ks.cfg


-rw-------. 1 root root 284 Sep 8 10:44 keystonerc_swift
-rw-r--r--. 1 root root 29 Sep 8 10:46 test.txt
[7] Delete a file on Swift Storage.
[root@client ~(swift)]#
openstack object delete test_container test.txt

[root@client ~(swift)]#
openstack object list test_container

# test.txt is deleted

[8] Delete a Container on Swift Storage.


[root@client ~(swift)]#
openstack container delete test_container

[root@client ~(swift)]#
openstack container list

# test_container is deleted

Вам также может понравиться