RETIRED, Fuel DevOps tools for managing virtual environments
Go to file
Dennis Dmitriev 6e970b1c05 Bump fuel-devops master branch version up to 3.0.1
First 'stable' release of fuel-devops 3.0.x

Change-Id: If06ffc6aed3cd616220182b2e1c5f41d1362779b
2016-07-22 13:18:12 +03:00
bin Checking/configuring scripts for fuel-devops 2016-07-18 17:53:33 +03:00
devops Bump fuel-devops master branch version up to 3.0.1 2016-07-22 13:18:12 +03:00
doc Bump fuel-devops master branch version up to 3.0.1 2016-07-22 13:18:12 +03:00
samples Move SSHClient to separate file 2016-04-12 11:54:30 +03:00
.coveragerc SSHClient rework for SSH Manager integration 2016-06-06 15:55:55 +03:00
.gitignore .gitignore: ignore Vim swp files 2016-06-14 14:30:43 +00:00
.gitreview Update .gitreview for new namespace 2015-10-17 22:13:18 +00:00
.pylintrc Prepare for non voting pylint target 2016-05-12 13:20:18 +03:00
.pylintrc_gerrit Prepare for non voting pylint target 2016-05-12 13:20:18 +03:00
LICENSE LICENCE added 2014-06-05 00:40:36 +04:00
MAINTAINERS Add new maintainer to fuel-devops 2016-04-18 10:30:43 +00:00
README.md Documentation update for Django 2016-05-25 17:45:08 +03:00
run_tests.sh Cleanup in running pep8 tests 2015-06-08 07:57:13 +00:00
setup.cfg Fix docs build 2016-05-23 17:16:11 +03:00
setup.py Bump fuel-devops master branch version up to 3.0.1 2016-07-22 13:18:12 +03:00
test-requirements.txt Split requirements for test and main for setup 2016-05-04 14:25:16 +03:00
tox.ini SSHClient rework for SSH Manager integration: memorize 2016-06-07 09:42:08 +03:00

README.md

fuel-devops

Fuel-Devops is a sublayer between application and target environment(all of supported by libvirt currently).

This application is used for testing purposes like grouping virtual machines to environments, booting KVM VM's locally from the ISO image and over the network via PXE, creating, snapshotting and resuming back the whole environment in single action, create virtual machines with multiple NICs, multiple hard drives and many other customizations with a few lines of code in system tests.

Installation

The installation procedure can be implemented via PyPI in Python virtual environment (suppose you are using Ubuntu 12.04, Ubuntu 14.04 or Ubuntu 16.04):

Before using it, please install the following required dependencies:

sudo apt-get install git \
postgresql \
postgresql-server-dev-all \
libyaml-dev \
libffi-dev \
python-dev \
python-libvirt \
python-pip \
qemu-kvm \
qemu-utils \
libvirt-bin \
libvirt-dev \
ubuntu-vm-builder \
bridge-utils

sudo apt-get update && sudo apt-get upgrade -y

Install packages needed for building python eggs

sudo apt-get install python-virtualenv libpq-dev libgmp-dev

In case you are using Ubuntu 12.04 lets update pip and virtualenv, otherwise you can skip this step

sudo pip install pip virtualenv --upgrade
hash -r

Create virtualenv for the devops project

virtualenv --system-site-packages <path>/fuel-devops-venv

Note

Activate virtualenv and install devops package using PyPI.

source  <path>/fuel-devops-venv/bin/activate
pip install git+https://github.com/openstack/fuel-devops.git@<version> --upgrade

Configuration

Basically fuel-devops requires that the following system-wide settings are configured:

  • Default libvirt storage pool is active (called default)
  • Current user must have permission to run KVM VMs with libvirt
  • PostgreSQL server running with appropriate grants and schema for devops
  • [Optional] Nested Paging is enabled
  • [Optional] Network filter for host bridges should be disabled: http://wiki.libvirt.org/page/Net.bridge-nf-call_and_sysctl.conf.

Usage

Run dos.py -h to see full list of supported actions

Operation commands:
list                Show virtual environments
show                Show VMs in environment
erase               Delete environment
start               Start VMs
destroy             Destroy(stop) VMs
suspend             Suspend VMs
resume              Resume VMs
revert              Apply snapshot to environment
snapshot            Make environment snapshot
sync                Synchronization environment and devops
snapshot-list       Show snapshots in environment
snapshot-delete     Delete snapshot from environment
net-list            Show networks in environment
time-sync           Sync time on all env nodes
revert-resume       Revert, resume, sync time on VMs
version             Show devops version
create              Create a new environment
slave-add           Add a node
slave-change        Change node VCPU and memory config
slave-remove        Remove node from environment
admin-setup         Setup admin node
admin-change        Change admin node VCPU and memory config
node-start          Start node in environment
node-destroy        Destroy (power off) node in environment
node-reset          Reset (restart) node in environment

Use dos.py -h to see help for specific command

positional arguments:
ENV_NAME              environment name

optional arguments:
-h, --help            show this help message and exit
--vcpu VCPU_COUNT     Set node VCPU count
--node-count NODE_COUNT, -C NODE_COUNT
                    How many nodes will be created
--ram RAM_SIZE        Set node RAM size
--net-pool NET_POOL, -P NET_POOL
                    Set ip network pool (cidr)
--iso-path ISO_PATH, -I ISO_PATH
                    Set Fuel ISO path
...

Testing

There are next test targets that can be run to validate the code.

tox -e pep8   - style guidelines enforcement
tox -e pylint - static analisys of code quality
tox -e py27   - unit and integration testing on Python 2.7 (if available)
tox -e py34   - unit and integration testing on Python 3.4 (if available)
tox -e py35   - unit and integration testing on Python 3.5 (if available)
tox -e cover  - tests coverage check
tox -e docs   - documentation consistency check