Bagian ini menjelaskan cara menginstal dan mengkonfigurasi layanan proxy yang menangani permintaan untuk layanan akun, container, and object yang beroperasi pada storage nodes. Untuk mempermudah, panduan ini akan menginstal dan mengkonfigurasi layanan proxy pada ‘controller node’. Namun, Anda dapat menjalankan layanan proxy pada setiap node dengan konektivitas jaringan ke ‘storage node’. Selain itu, Anda dapat menginstal dan mengkonfigurasi layanan proxy pada beberapa node untuk meningkatkan kinerja dan redundansi. Untuk informasi lebih lanjut, lihat Deployment Guide.
Layanan proxy bergantung pada mekanisme otentikasi dan otorisasi seperti layanan Identity. Namun, tidak seperti layanan lain, itu juga menawarkan mekanisme internal yang memungkinkan untuk beroperasi tanpa layanan OpenStack lainnya. Namun, untuk kesederhanaan, panduan ini referensi layanan Identitas di :doc: keystone. Sebelum Anda mengkonfigurasi layanan Object Storage, Anda harus membuat kredensial layanan dan endpoint API.
Catatan
Layanan Object Storage tidak menggunakan database SQL pada ‘controller node’. Sebaliknya, menggunakan database SQLite didistribusikan pada setiap ‘storage node’.
Dapatkan sumber mandat admin untuk mendapatkan akses ke command CLI ‘admin-only’:
$ . admin-openrc
Untuk membuat kredensial layanan Identity, selesaikan langkah-langkah ini:
Buat user 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 |
+-----------+----------------------------------+
Tambah peran admin ke user swift:
$ openstack role add --project service --user swift admin
Catatan
Command ini tidak memberikan output.
Buat entitas layanan 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 |
+-------------+----------------------------------+
Buat endpoints API pada layanan Object Storage :
$ 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 |
+--------------+----------------------------------+
Catatan
File konfigurasi default bervariasi menurut distribusi. Anda mungkin perlu menambahkan bagian dan opsi ini daripada memodifikasi bagian dan opsi yang ada. Juga, elipsis (`` ... ``) dalam cuplikan konfigurasi menunjukkan opsi konfigurasi default potensial dimana Anda harus mempertahankan.
Instal paket:
# apt-get install swift swift-proxy python-swiftclient \
python-keystoneclient python-keystonemiddleware \
memcached
Catatan
Lengkapi lingkungan OpenStack sudah memasukan beberapa paket ini.
Buat direktore `/etc/swift.
Dapatkan file konfigurasi pada layanan proxy dari repositori sumber Object Storage:
# curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/mitaka
Editlah file /etc/swift/proxy-server.conf dan menyelesaikan tindakan berikut:
Dalam bagian ``[DEFAULT] ``, lakukan konfigurasi ‘bind port’, user, dan ‘configuration directory’:
[DEFAULT]
...
bind_port = 8080
user = swift
swift_dir = /etc/swift
Dalam bagian [pipeline:main], hapus modul tempurl dan tempauth dan tambahkan modul authtoken dan 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
Catatan
Jangan mengubah urutan modul.
Catatan
Untuk informasi lebih lanjut tentang modul lain yang mengaktifkan fitur tambahan, lihat Deployment Guide.
Dalam bagian ``[app: proxy server] ``, aktifkan pembuatan akun otomatis:
[app:proxy-server]
use = egg:swift#proxy
...
account_autocreate = True
Dalam bagian ``[filter: authkeystone] ``, lakukan konfigurasi peran operator:
[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,user
Dalam bagian ``[filter: authtoken] ``, lakukan konfigurasi akses layanan Identity:
[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
Ganti SWIFT_PASS dengan password yang Anda pilih untuk user swift dalam pelayanan Identity.
Catatan
Hapus komentar atau bahkan menghapus opsi lain dalam bagian [filter:authtoken].
Dalam bagian [filter: cache] ``, lakukan konfigurasi lokasi ``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.