trovestack
in integration/scripts
folder is a shell script that
contains lots of useful functionalities via sub-commands including install
(trove development environment installation), unit-tests
, gate-tests
(functional test), build-image
, etc. This guide introduces some of them.
Before running trovestack
command, go to the scripts folder:
git clone https://opendev.org/openstack/trove
cd trove/integration/scripts
Note
For testing purpose, the Trove guest images of some specific databases are periodically built and published in http://tarballs.openstack.org/trove/images/.
The trove guest agent image could be created by running the following command:
$ ./trovestack build-image \
${datastore_type} \
${guest_os} \
${guest_os_release} \
${dev_mode} \
${guest_username} \
${imagepath}
Currently, only guest_os=ubuntu
and guest_os_release=xenial
are fully
tested and supported.
Default input values:
datastore_type=mysql
guest_os=ubuntu
guest_os_release=xenial
dev_mode=true
guest_username=ubuntu
imagepath=$HOME/images/trove-${guest_os}-${guest_os_release}-${datastore_type}.qcow2
dev_mode=true
is mainly for testing purpose for trove developers and it’s
necessary to build the image on the trove controller host, because the host
and the guest VM need to ssh into each other without password. In this mode,
when the trove guest agent code is changed, the image doesn’t need to be
rebuilt which is convenient for debugging. Trove guest agent will ssh into
the host and download trove code during the service initialization.
if dev_mode=false
, the trove code for guest agent is injected into the
image at the building time. Now dev_mode=false
is still in experimental
and not considered production ready yet.
Some other global variables:
HOST_SCP_USERNAME
: only used in dev mode, this is the user name used by
guest agent to connect to the controller host, e.g. in devstack
environment, it should be the stack
user.GUEST_WORKING_DIR
: The place to save the guest image, default value is
$HOME/images
.For example, in order to build a MySQL image for Ubuntu Xenial operating system in development mode:
$ ./trovestack build-image mysql ubuntu xenial true
Once the image build is finished, the cloud administrator needs to register the
image in Glance and register a new datastore or version in Trove using
trove-manage
command, e.g. you’ve built an image for MySQL 5.7.1:
$ openstack image create ubuntu-mysql-5.7.1-dev \
--public \
--disk-format qcow2 \
--container-format bare \
--file ~/images/ubuntu-mysql.qcow2
$ trove-manage datastore_version_update mysql 5.7.1 mysql $image_id "" 1
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.