Bagian ini menjelaskan cara menginstal dan mengkonfigurasi layanan Database, ‘code-named trove’, pada ‘controller node’.
Bagian ini mengasumsikan bahwa Anda sudah memiliki lingkungan OpenStack bekerja, dengan setidaknya komponen berikut diinstal: Compute, Image Service, Identity.
Jika Anda ingin melakukan backup dan restore, Anda juga perlu Object Storage.
Jika Anda ingin provision datastore pada volume blok-storage, Anda juga perlu Block Storage.
Sebelum Anda menginstal dan mengkonfigurasi layanan Database, Anda harus membuat database, kredensial layanan, dan endpoints API.
Untuk membuat database, lakukan langkah-langkah berikut:
Gunakan klien akses database untuk berhubung ke server database sebagai root user:
$ mysql -u root -p
Buat database trove:
CREATE DATABASE trove;
Beri akses yang tepat untuk database trove:
GRANT ALL PRIVILEGES ON trove.* TO 'trove'@'localhost' \
IDENTIFIED BY 'TROVE_DBPASS';
GRANT ALL PRIVILEGES ON trove.* TO 'trove'@'%' \
IDENTIFIED BY 'TROVE_DBPASS';
Ganti TROVE_DBPASS dengan password yang sesuai.
Keluarlah dari client untuk mengakses database.
Dapatkan sumber mandat admin untuk mendapatkan akses ke command CLI ‘admin-only’:
$ source admin-openrc.sh
Untuk membuat kredensial layanan, selesaikanlah langkah-langkah ini:
Buat user trove:
$ openstack user create --domain default --password-prompt trove
User Password:
Repeat User Password:
+-----------+-----------------------------------+
| Field | Value |
+-----------+-----------------------------------+
| domain_id | default |
| enabled | True |
| id | ca2e175b851943349be29a328cc5e360 |
| name | trove |
+-----------+-----------------------------------+
Tambah peran admin ke user trove:
$ openstack role add --project service --user trove admin
Catatan
Command ini tidak memberikan output.
Buat entitas layanan trove:
$ openstack service create --name trove \
--description "Database" database
+-------------+-----------------------------------+
| Field | Value |
+-------------+-----------------------------------+
| description | Database |
| enabled | True |
| id | 727841c6f5df4773baa4e8a5ae7d72eb |
| name | trove |
| type | database |
+-------------+-----------------------------------+
Buat endpoints API di layanan Database:
$ openstack endpoint create --region RegionOne \
database public http://controller:8779/v1.0/%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 3f4dab34624e4be7b000265f25049609 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 727841c6f5df4773baa4e8a5ae7d72eb |
| service_name | trove |
| service_type | database |
| url | http://controller:8779/v1.0/%\(tenant_id\)s |
+--------------+----------------------------------------------+
$ openstack endpoint create --region RegionOne \
database internal http://controller:8779/v1.0/%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 9489f78e958e45cc85570fec7e836d98 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 727841c6f5df4773baa4e8a5ae7d72eb |
| service_name | trove |
| service_type | database |
| url | http://controller:8779/v1.0/%\(tenant_id\)s |
+--------------+----------------------------------------------+
$ openstack endpoint create --region RegionOne \
database admin http://controller:8779/v1.0/%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 76091559514b40c6b7b38dde790efe99 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 727841c6f5df4773baa4e8a5ae7d72eb |
| service_name | trove |
| service_type | database |
| url | http://controller:8779/v1.0/%\(tenant_id\)s |
+--------------+----------------------------------------------+
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 update
# apt-get install python-trove python-troveclient \
python-glanceclient trove-common trove-api trove-taskmanager \
trove-conductor
Dalam direktori /etc/trove`, edit file ``trove.conf, trove-taskmanager.conf dan trove-conductor.conf dan lakukan langkah-langkah berikut:
Beri nilai yang sesuai untuk pengaturan berikut:
[DEFAULT]
log_dir = /var/log/trove
trove_auth_url = http://controller:5000/v2.0
nova_compute_url = http://controller:8774/v2
cinder_url = http://controller:8776/v1
swift_url = http://controller:8080/v1/AUTH_
notifier_queue_hostname = controller
...
[database]
connection = mysql://trove:TROVE_DBPASS@controller/trove
Lakukan konfigurasi layanan Database untuk menggunakan perantar pesan (message broker) RabbitMQ dengan menetapkan opsi berikut di setiap file:
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
Pastikan bahwa file api-paste.ini hadir dalam /etc/trove.
Jika file tidak hadir, Anda bisa mendapatkannya dari sini `location <http://git.openstack.org/cgit/openstack/trove/plain/etc/trove/api-paste.ini?h=stable/mitaka> `__.
Edit file trove.conf sehingga mencakup nilai-nilai yang sesuai untuk pengaturan di bawah ini:
[DEFAULT]
auth_strategy = keystone
...
# Config option for showing the IP address that nova doles out
add_addresses = True
network_label_regex = ^NETWORK_LABEL$
...
api_paste_config = /etc/trove/api-paste.ini
...
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = trove
password = TROVE_PASS
Edit file trove-taskmanager.conf sehingga mencakup pengaturan yang diperlukan untuk terhubung ke layanan OpenStack Compute seperti yang ditunjukkan di bawah ini:
[DEFAULT]
...
# Configuration options for talking to nova via the novaclient.
# These options are for an admin user in your keystone config.
# It proxy's the token received from the user to send to nova
# via this admin users creds,
# basically acting like the client via that proxy token.
nova_proxy_admin_user = admin
nova_proxy_admin_pass = ADMIN_PASS
nova_proxy_admin_tenant_name = service
taskmanager_manager = trove.taskmanager.manager.Manager
Edit file /etc/trove/trove-guestagent.conf sehingga tamu ‘future trove’ dapat terhubung ke lingkungan OpenStack Anda:
rabbit_host = controller
rabbit_password = RABBIT_PASS
nova_proxy_admin_user = admin
nova_proxy_admin_pass = ADMIN_PASS
nova_proxy_admin_tenant_name = service
trove_auth_url = http://controller:35357/v2.0
Lakukan pengisian trove database yang Anda buat sebelumnya dalam prosedur ini:
# su -s /bin/sh -c "trove-manage db_sync" trove
...
2016-04-06 22:00:17.771 10706 INFO trove.db.sqlalchemy.migration [-]
Upgrading mysql://trove:dbaasdb@controller/trove to version latest
Catatan
Mengabaikan semua pesan bantahan dalam output ini.
Karena ada bug dalam paket Ubuntu, edit file definisi layanan untuk menggunakan pengaturan konfigurasi yang benar.
Untuk melakukan hal ini, arahkan ke /etc/init dan edit file-file berikut seperti yang dijelaskan di bawah ini:
trove-taskmanager.conf
trove-conductor.conf
(Perhatikan bahwa, meskipun mereka memiliki nama yang sama, file-file ini berada di lokasi yang berbeda dan memiliki konten yang berbeda dari file bernama sama Anda diedit sebelumnya dalam prosedur ini.)
Dalam setiap file, cari baris ini:
exec start-stop-daemon --start --chdir /var/lib/trove \
--chuid trove:trove --make-pidfile \
--pidfile /var/run/trove/trove-conductor.pid \
--exec /usr/bin/trove-conductor -- \
--config-file=/etc/trove/trove.conf ${DAEMON_ARGS}
Perhatikan bahwa --config-file secara salah menunjuk ke trove.conf.
Dalam trove-taskmanager.conf, edit config-file untuk menunjuk ke /etc/trove/trove-taskmanager.conf.
Dalam trove-conductor.conf, edit config-file untuk menunjuk ke /etc/trove/trove-conductor.conf.
Restart layanan Database:
# service trove-api restart
# service trove-taskmanager restart
# service trove-conductor restart
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.