Skip to content
This repository has been archived by the owner on Jan 13, 2018. It is now read-only.



Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

Continuous Integration Box

CIBox - is Ansible based system for deployment environment for web application development. With this tool you able to deploy local web-server based on Vagrant and/or remote one.

The power of the system - simplicity. All provisioning is the same for local and remote machines, except logic for installing additional software on remote (Jenkins, for example), but it quite simple too (just when: not vagrant as condition for Ansible tasks).

Currently based on Ubuntu 14.04 LTS (64bit).

  ██████╗ ██╗     ██████╗   ██████╗  ██╗  ██╗
 ██╔════╝ ██║     ██╔══██╗ ██╔═══██╗ ╚██╗██╔╝
 ██║      ██║     ██████╔╝ ██║   ██║  ╚███╔╝
 ██║      ██║     ██╔══██╗ ██║   ██║  ██╔██╗
 ╚██████╗ ██║     ██████╔╝ ╚██████╔╝ ██╔╝ ██╗
  ╚═════╝ ╚═╝     ╚═════╝   ╚═════╝  ╚═╝  ╚═╝

Main possibilities

  • Create matrix of virtual servers (droplets).
  • Automated builds for every commit in a pull request on GitHub (private repositories supported).
  • Multi CMS/CMF support. To add support of a new one, you just need to put pre-configurations to cmf/<NAME>/<MAJOR_VERSION> and ensure that core files can be downloaded as an archive.
  • Opportunity to keep multiple projects on the same CI server.
  • Triggering builds via comments in pull requests.
  • Midnight server cleaning :)

Quick Start

  • Add your host credentials to the inventory file.
  • ./cibox repository --project=<NAME> [--cmf=drupal] [--version=7.51] [--without-sources]
  • ./cibox provision --project=<NAME> [--limit=<HOST>]

The --without-sources option for repository task affected on downloading CMF sources. If you want to create an empty project - use it.


Drupal 7

./cibox repository --project=test

Drupal 8

./cibox repository --project=test --version=8.3.x-dev

WordPress 4

./cibox repository --project=test --cmf=wordpress --version=4.6.1

Add Jenkins project to existing CI server

./cibox jenkins-job --project=test [--limit=<HOST>]

Note: these commands should be executed on your host, not inside of virtual machine!


Currently provision.yml playbook powered with tags, so you can run only part of it.

./cibox provision --tags=TAGNAME
  • php
  • misc
  • sass
  • security
  • nginx
  • selenium
  • memcache
  • php-stack
  • solr
  • nodejs
  • jenkins
  • composer
  • sniffers
  • apache
  • mysql
  • swap
  • ssl

For provisioning Vagrant you also able to specify tags:

ANSIBLE_ARGS="--tags=TAGNAME" vagrant provision

As you see, any set of arguments can be passed for ansible-playbook command.

The power of cibox utility

Run with custom inventory file:

ANSIBLE_INVENTORY="/path/to/inventory" ./cibox

Run with custom set of arguments:

ANSIBLE_ARGS="-vvvv" ./cibox

By default, cibox - is a global utility which looks for a project in /var/www/. But, if you specify a playbook outside of this directory, then working folder will be the path of this playbook.


On your host machine you should have the following software:

Name Version
Vagrant 1.7+
Ansible 2.0+
VirtualBox 4.0+


No packages published


  • Ruby 67.4%
  • Shell 28.8%
  • PHP 3.1%
  • Other 0.7%