trove/install-guide/source/common_configure.txt
Jeremy Stanley 42de1e7f7e Switch from MySQL-python to PyMySQL
As discussed in the Liberty Design Summit "Moving apps to Python 3"
cross-project workshop, the way forward in the near future is to
switch to the pure-python PyMySQL library as a default.

https://etherpad.openstack.org/p/liberty-cross-project-python3

BaseMySqlRootAccess.enable_root(): catch also InternalError because
the PyMySQL error is not wrapped into a SQLAlchemy OperationalError,
but a generic SQLAlchemy InternalError. Similar change is made in
026_datastore_versions_unique_fix.py.

This change requires a trove integration change to add the PyMySQL to
the guest image: Id4d013d174ba40a453819f900aaa316a93e59b48.

Partially implements: blueprint trove-python3
Co-Authored-By: Victor Stinner <vstinner@redhat.com>
Depends-On: Id4d013d174ba40a453819f900aaa316a93e59b48
Change-Id: I65e8a8d5dc251a8b00529cdfb1a6ada3d5720f68
2016-06-30 08:47:01 +02:00

107 lines
3.3 KiB
Plaintext

2. In the ``/etc/trove`` directory, edit the ``trove.conf``,
``trove-taskmanager.conf`` and ``trove-conductor.conf`` files and
complete the following steps:
* Provide appropriate values for the following settings:
.. code-block:: ini
[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+pymysql://trove:TROVE_DBPASS@controller/trove
* Configure the Database service to use the ``RabbitMQ`` message broker
by setting the following options in each file:
.. code-block:: ini
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
3. Verify that the ``api-paste.ini`` file is present in ``/etc/trove``.
If the file is not present, you can get it from this
`location <http://git.openstack.org/cgit/openstack/trove/plain/etc/trove/api-paste.ini?h=stable/mitaka>`__.
4. Edit the ``trove.conf`` file so it includes appropriate values for the
settings shown below:
.. code-block:: 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
5. Edit the ``trove-taskmanager.conf`` file so it includes the required
settings to connect to the OpenStack Compute service as shown below:
.. code-block:: 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
6. Edit the ``/etc/trove/trove-guestagent.conf`` file
so that future trove guests can connect to your OpenStack environment:
.. code-block:: ini
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
7. Populate the trove database you created earlier in this procedure:
.. code-block:: console
# 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+pymysql://trove:dbaasdb@controller/trove to version latest
.. note::
Ignore any deprecation messages in this output.