kayobe/doc/source/development/automated.rst

201 lines
5.5 KiB
ReStructuredText

.. _development-automated:
===============
Automated Setup
===============
This section provides information on the development tools provided by kayobe
to automate the deployment of various development environments.
For a manual procedure, see :ref:`development-manual`.
Overview
========
The kayobe development environment automation tooling is built using simple
shell scripts. Some minimal configuration can be applied by setting the
environment variables in `dev/config.sh`. Control plane configuration is
typically provided via the `kayobe-config-dev
<https://git.openstack.org/cgit/openstack/kayobe-config-dev>`_ repository,
although it is also possible to use your own kayobe configuration. This allows
us to build a development environment that is as close to production as
possible.
Environments
============
The following development environments are supported:
* Overcloud (single OpenStack controller)
* Seed hypervisor
* Seed VM
The seed VM environment may be used in an environment already deployed as a
seed hypervisor.
Overcloud
=========
Preparation
-----------
Clone the kayobe repository::
git clone https://git.openstack.org/openstack/kayobe.git
Change the current directory to the kayobe repository::
cd kayobe
Clone the ``kayobe-config-dev`` repository to ``config/src/kayobe-config``::
mkdir -p config/src
git clone https://git.openstack.org/openstack/kayobe-config-dev.git config/src/kayobe-config
Inspect the kayobe configuration and make any changes necessary for your
environment.
If using Vagrant, follow the steps in :ref:`development-vagrant` to prepare
your environment for use with Vagrant and bring up a Vagrant VM.
If not using Vagrant, the default development configuration expects the
presence of a bridge interface on the OpenStack controller host to carry
control plane traffic. The bridge should be named ``breth1`` with a single
port ``eth1``, and an IP address of ``192.168.33.3/24``. This can be modified
by editing
``config/src/kayobe-config/etc/kayobe/inventory/group_vars/controllers/network-interfaces``.
Alternatively, this can be added using the following commands::
sudo ip l add breth1 type bridge
sudo ip l set breth1 up
sudo ip a add 192.168.33.3/24 dev breth1
sudo ip l add eth1 type dummy
sudo ip l set eth1 up
sudo ip l set eth1 master breth1
Usage
-----
If using Vagrant, SSH into the Vagrant VM and change to the shared directory::
vagrant ssh
cd /vagrant
If not using Vagrant, run the ``dev/install.sh`` script to install kayobe and
its dependencies in a virtual environment::
./dev/install.sh
Run the ``dev/overcloud-deploy.sh`` script to deploy the OpenStack control
plane::
./dev/overcloud-deploy.sh
Upon successful completion of this script, the control plane will be active.
The control plane can be tested by running the ``dev/overcloud-test.sh``
script. This will run the ``init-runonce`` setup script provided by Kolla
Ansible that registers images, networks, flavors etc. It will then deploy a
virtual server instance, and delete it once it becomes active::
./dev/overcloud-test.sh
It is possible to test an upgrade by running the ``dev/overcloud-upgrade.sh``
script::
./dev/overcloud-upgrade.sh
Seed Hypervisor
===============
The seed hypervisor development environment is supported for CentOS 7. The
system must be either bare metal, or a VM on a system with nested
virtualisation enabled.
Preparation
-----------
The following commands should be executed on the seed hypervisor.
Clone the kayobe repository::
git clone https://git.openstack.org/openstack/kayobe.git
Change the current directory to the kayobe repository::
cd kayobe
Clone the ``add-seed-and-hv`` branch of the ``kayobe-config-dev`` repository to
``config/src/kayobe-config``::
mkdir -p config/src
git clone https://github.com/markgoddard/dev-kayobe-config -b add-seed-and-hv config/src/kayobe-config
Inspect the kayobe configuration and make any changes necessary for your
environment.
Usage
-----
Run the ``dev/install.sh`` script to install kayobe and its dependencies in a
virtual environment::
./dev/install.sh
Run the ``dev/seed-hypervisor-deploy.sh`` script to deploy the seed
hypervisor::
./dev/seed-hypervisor-deploy.sh
Upon successful completion of this script, the seed hypervisor will be active.
Seed VM
=======
The seed VM should be deployed on a system configured as a libvirt/KVM
hypervisor, using the kayobe seed hypervisor support or otherwise.
Preparation
-----------
The following commands should be executed on the seed hypervisor.
Change the current directory to the kayobe repository::
git clone https://git.openstack.org/openstack/kayobe.git
Change to the ``kayobe`` directory::
cd kayobe
Clone the ``add-seed-and-hv`` branch of the ``kayobe-config-dev`` repository to
``config/src/kayobe-config``::
mkdir -p config/src
git clone https://github.com/markgoddard/dev-kayobe-config -b add-seed-and-hv config/src/kayobe-config
Inspect the kayobe configuration and make any changes necessary for your
environment.
Usage
=====
Run the ``dev/install.sh`` script to install kayobe and its dependencies in a
virtual environment::
./dev/install.sh
Run the ``dev/seed-deploy.sh`` script to deploy the seed VM::
./dev/seed-deploy.sh
Upon successful completion of this script, the seed VM will be active. The
seed VM may be accessed via SSH as the ``stack`` user::
ssh stack@192.168.33.5
It is possible to test an upgrade by running the ``dev/seed-upgrade.sh``
script::
./dev/seed-upgrade.sh