15.3. Database-as-a-Service の設定
- keystone ユーザーを作成して、Database-as-a-Service 用のロールを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプションで、全設定ファイルの詳細なデバッグ情報を設定します。
[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; > doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow api-paste.iniファイルを作成します (存在していない場合)。[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.iniCopy to Clipboard Copied! Toggle word wrap Toggle overflow api-paste.iniの keystone 認証トークンを更新します。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.inCopy to Clipboard Copied! Toggle word wrap Toggle overflow api-paste.iniと同じ情報で、trove.confを更新します。[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 = servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow trove-taskmanager.confのnova_proxy情報を更新します。Database-as-a-Service は、admin ユーザーの認証情報で nova コマンドを発行するので、この設定は実際の admin ユーザーにする必要があります。[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 servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - RabbitMQ ホストの情報で設定ファイルを更新します。
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; > doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 設定ファイルにサービスの URL を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、MySQL の接続を追加しますが、これはまだ機能しません。これらのパーミッションは次のステップで付与します。 - cloud-init の情報を使用してタスクマネージャーの設定を更新します。
[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/cloudinitCopy to Clipboard Copied! Toggle word wrap Toggle overflow - デフォルトのデータストア (database type) で
trove.confを更新し、インスタンスをアタッチする OpenStack Networking ネットワークの名前を設定します。この場合は、ネットワークは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$
[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 - Database-as-a-Service のデータベースを作成し、
troveユーザーにパーミッションを付与します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新規だーたベースにデータを読み込み、初期データストアを作成します。
[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 - イメージとともに使用する cloud-init ファイルを作成します。
注記
Database-as-a-Service によりインスタンスが作成される時には、そのインスタンスをビルドするためにデータベースに設定したimage_idが使用されます。また、指定したデータストアに基づいて、ユーザーデータにアタッチする.cloudinitファイルを/etc/trove/cloudinit/内で検索します。たとえば、新規インスタンスのデータストアにmysqlを選択した場合には、nova が/etc/trove/cloudinit/内でmysql.cloudinitファイルを検索して、ユーザーデータスクリプトとしてアタッチします。これは、ビルド時に MySQL を登録/インストールするのに使用されます。以下の内容で/etc/trove/cloudinit/mysql.cloudinitファイルを作成します。各 PASSWORD は適切なパスワードに、RHN_USERNAME、RHN_PASSWORD、POOL_ID はお使いの Red Hat 認証情報とサブスクリプションプール ID に、host SSH public key はパスワードなしの SSH ログイン用のキーに置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
上記は bash スクリプトとして記述されており、cloud-initに対応しています。これは、could-initの YAML 形式のレイアウトを使用して記述することもできます。 - glance を使用して、
--fileオプションで指定したクラウドイメージをアップロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Enterprise Linux 7 イメージへの参照で Database-as-a-Service データベースを更新します。前のコマンドの出力に表示された ID を使用してください。
[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 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
構文は「trove-manage datastore_version_update datastore version_name manager image_id packages active」です。 - keystone を使用して Database-as-a-Service サービスを作成し、OpenStack がこのサービスの存在を認識するようにします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Database-as-a-Service API 用の URL エンドポイントを追加します。前のコマンドの出力に表示された ID を
--service-idオプションのパラメーターとして使用してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 3 つの Database-as-a-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'[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 重要
systemctl status openstack-trove-{api,taskmanager,conductor}のコマンドを実行して、サービスが起動しているかどうかを確認します。操作が失敗して、/var/log/troveにエラーが出力されが場合には、以下のコマンドを実行して問題を解決します。[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