Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
15.3. Configure Database-as-a-Service
- Create a keystone user and add role for the Database-as-a-Service:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Optionally, set up verbose debug information in all configuration files:
[root@rhosp-trove ~(keystone_admin)]# for conf_file in {trove,trove-conductor,trove-taskmanager,trove-guestagent}; do > openstack-config --set /etc/trove/$conf_file.conf DEFAULT verbose True; > openstack-config --set /etc/trove/$conf_file.conf DEFAULT debug True; > done
[root@rhosp-trove ~(keystone_admin)]# for conf_file in {trove,trove-conductor,trove-taskmanager,trove-guestagent}; do > openstack-config --set /etc/trove/$conf_file.conf DEFAULT verbose True; > openstack-config --set /etc/trove/$conf_file.conf DEFAULT debug True; > done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create the
api-paste.ini
file (if not present):[root@rhosp-trove ~(keystone_admin)]# cp /usr/share/trove/trove-dist-paste.ini /etc/trove/api-paste.ini
[root@rhosp-trove ~(keystone_admin)]# cp /usr/share/trove/trove-dist-paste.ini /etc/trove/api-paste.ini
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Update keystone authtoken in
api-paste.ini
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf DEFAULT api_paste_config /etc/trove/api-paste.in
[root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf DEFAULT api_paste_config /etc/trove/api-paste.in
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Update
trove.conf
with the same information asapi-paste.ini
:[root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken auth_uri http://127.0.0.1:35357/ [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken identity_uri http://127.0.0.1:35357/ [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken admin_password TROVE_PASSWORD [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken admin_user trove [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken admin_tenant_name = services
[root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken auth_uri http://127.0.0.1:35357/ [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken identity_uri http://127.0.0.1:35357/ [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken admin_password TROVE_PASSWORD [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken admin_user trove [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove.conf keystone_authtoken admin_tenant_name = services
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Set up
nova_proxy
information introve-taskmanager.conf
. This needs to be the actual admin user as the Database-as-a-Service will use this user's credentials to issue nova commands:[root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove-taskmanager.conf DEFAULT nova_proxy_admin_user admin [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove-taskmanager.conf DEFAULT nova_proxy_admin_password ADMIN_PASSWORD [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove-taskmanager.conf DEFAULT nova_proxy_admin_tenant_name services
[root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove-taskmanager.conf DEFAULT nova_proxy_admin_user admin [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove-taskmanager.conf DEFAULT nova_proxy_admin_password ADMIN_PASSWORD [root@rhosp-trove trove(keystone_admin)]# openstack-config --set trove-taskmanager.conf DEFAULT nova_proxy_admin_tenant_name services
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Update the configuration files with RabbitMQ host information:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [root@rhosp-trove trove(keystone_admin)]# for conf_file in trove.conf trove-taskmanager.conf trove-conductor.conf ; do > openstack-config --set /etc/trove/$conf_file DEFAULT rabbit_host 127.0.0.1; > openstack-config --set /etc/trove/$conf_file DEFAULT rabbit_password RABBITMQ_GUEST_PASSWORD; > done
[root@rhosp-trove trove(keystone_admin)]# for conf_file in trove.conf trove-taskmanager.conf trove-conductor.conf ; do > openstack-config --set /etc/trove/$conf_file DEFAULT rabbit_host 127.0.0.1; > openstack-config --set /etc/trove/$conf_file DEFAULT rabbit_password RABBITMQ_GUEST_PASSWORD; > done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Add service URLs to all the configuration files:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note that the commands above add a MySQL connection that does not work yet; those permissions are added next. - Update the task manager configuration with cloud-init information:
[root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT cloud-init_loaction /etc/trove/cloudinit [root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT taskmanager_manager trove.taskmanager.manager.Manager [root@rhosp-trove trove(keystone_admin)]# mkdir /etc/trove/cloudinit
[root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT cloud-init_loaction /etc/trove/cloudinit [root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove-taskmanager.conf DEFAULT taskmanager_manager trove.taskmanager.manager.Manager [root@rhosp-trove trove(keystone_admin)]# mkdir /etc/trove/cloudinit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Update
trove.conf
with the default datastore (database type), and set the name of the OpenStack Networking network to which instances will be attached. In this case, that network was namedprivate
:[root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove.conf DEFAULT default_datastore mysql [root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove.conf DEFAULT add_addresses True [root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove.conf DEFAULT network_label_regex ^private$
[root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove.conf DEFAULT default_datastore mysql [root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove.conf DEFAULT add_addresses True [root@rhosp-trove trove(keystone_admin)]# openstack-config --set /etc/trove/trove.conf DEFAULT network_label_regex ^private$
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create the Database-as-a-Service database and add permissions for the
trove
user:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Populate the new database and create the initial datastore:
[root@rhosp-trove trove(keystone_admin)]# trove-manage db_sync [root@rhosp-trove trove(keystone_admin)]# trove-manage datastore_update mysql ''
[root@rhosp-trove trove(keystone_admin)]# trove-manage db_sync [root@rhosp-trove trove(keystone_admin)]# trove-manage datastore_update mysql ''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create the cloud-init file that will be used with an image.
Note
When an instance is created by the Database-as-a-Service, it will use whateverimage_id
you have set in the database to build the instance. Additionally, based on the datastore specified, it will also now look in/etc/trove/cloudinit/
for a.cloudinit
file to attach as user data. For example, if you choosemysql
as the datastore for a new instance, nova will look for amysql.cloudinit
file in/etc/trove/cloudinit/
to attach as a user-data script. This is used to register and install MySQL at build time.Create the/etc/trove/cloudinit/mysql.cloudinit
file with the following content, replacing each occurrence of PASSWORD with a suitable password, RHN_USERNAME, RHN_PASSWORD and POOL_ID with your Red Hat credentials and subscription pool ID, and host SSH public key with the key for passwordless SSH login:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
The above is written as a bash script, which is supported bycloud-init
. This can also be done usingcloud-init
's YAML-style layout. - Upload a cloud image, specified as the parameter of the
--file
option, using glance:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Update the Database-as-a-Service database with a reference to the Red Hat Enterprise Linux 7 image; use the ID from the output of the previous command:
[root@rhosp-trove trove(keystone_admin)]# trove-manage --config-file=/etc/trove/trove.conf datastore_version_update \ > mysql mysql-5.5 mysql 9bd48cdf-52b4-4463-8ce7-ce81f44205ae mysql55 1
[root@rhosp-trove trove(keystone_admin)]# trove-manage --config-file=/etc/trove/trove.conf datastore_version_update \ > mysql mysql-5.5 mysql 9bd48cdf-52b4-4463-8ce7-ce81f44205ae mysql55 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
The syntax is:trove-manage datastore_version_update datastore version_name manager image_id packages active
- Create the Database-as-a-Service service using keystone to make OpenStack aware of its presence:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Add URL endpoints for the Database-as-a-Service API; use the ID from the output of the previous command as the parameter of the
--service-id
option:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Start the three Database-as-a-Service services and enable them to start at boot:
[root@rhosp-trove trove(keystone_admin)]# systemctl start openstack-trove-{api,taskmanager,conductor} [root@rhosp-trove trove(keystone_admin)]# systemctl enable openstack-trove-{api,taskmanager,conductor} ln -s '/usr/lib/systemd/system/openstack-trove-api.service' '/etc/systemd/system/multi-user.target.wants/openstack-trove-api.service' ln -s '/usr/lib/systemd/system/openstack-trove-taskmanager.service' '/etc/systemd/system/multi-user.target.wants/openstack-trove-taskmanager.service' ln -s '/usr/lib/systemd/system/openstack-trove-conductor.service' '/etc/systemd/system/multi-user.target.wants/openstack-trove-conductor.service'
[root@rhosp-trove trove(keystone_admin)]# systemctl start openstack-trove-{api,taskmanager,conductor} [root@rhosp-trove trove(keystone_admin)]# systemctl enable openstack-trove-{api,taskmanager,conductor} ln -s '/usr/lib/systemd/system/openstack-trove-api.service' '/etc/systemd/system/multi-user.target.wants/openstack-trove-api.service' ln -s '/usr/lib/systemd/system/openstack-trove-taskmanager.service' '/etc/systemd/system/multi-user.target.wants/openstack-trove-taskmanager.service' ln -s '/usr/lib/systemd/system/openstack-trove-conductor.service' '/etc/systemd/system/multi-user.target.wants/openstack-trove-conductor.service'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Important
Runsystemctl status openstack-trove-{api,taskmanager,conductor}
to make sure these services have started properly. If they have failed due to an error with/var/log/trove
, you can run these commands to solve the issue:[root@rhosp-trove trove(keystone_admin)]# chown -R trove:trove /var/log/trove [root@rhosp-trove trove(keystone_admin)]# systemctl restart openstack-trove-{api,taskmanager,conductor}
[root@rhosp-trove trove(keystone_admin)]# chown -R trove:trove /var/log/trove [root@rhosp-trove trove(keystone_admin)]# systemctl restart openstack-trove-{api,taskmanager,conductor}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow