Use Thoughtworks' go to manage continuous delivery pipelines via Vagrant.
You need to have the following installed to try out vagrant-go:
- Ruby with bundler
- Vagrant
- VirtualBox, or other virtualization software that Vagrant supports
Install librarian-chef first. This dependency is specified in the Gemfile
,
so run the following command:
bundle install
Next, install recipes with librarian-chef:
librarian-chef install
Lastly, install vagrant-cachier plugin:
vagrant plugin install vagrant-cachier
If you want to have additional development tools installed (properly set up
Vim, Ruby & RVM, etc.) on all the machines, set the INSTALL_DEV_TOOLS
to
true
in the Vagrantfile
. This will significantly increase cluster setup
time, but it will happen only once. This feature is currently still
experimental.
If the CONFIGURE_GO_EXAMPLES
flag is set (default), Go will be configured
with some initial example settings.
Example pipelines and more will be configured. The pipelines can be triggered
with git push or manually. To do so, push something to test-repo
, the
local bare git repository created in provisioning process.
All the interaction between host and VMs is happening through /vagrant
directory on VMs that is shared folder for this repository on host (directory
containing Vagrantfile
).
To push current repository's master, run:
git push test-repo master
The pipelines demonstrate some of the capabilities of Go:
- triggering pipelines
- chaining pipelines
- managing artifacts
- etc.
For more details, take a look at the pipelines themselves.
To start the go cluster start the vagrant with:
vagrant up
When you run this command for the first time, it will probably take more time as it needs to download the CentOS box. This will only happen once.
After the previous command finishes, you log into the desired machine, e.g.:
vagrant ssh server
The go server is accessible at 127.0.0.1:8153
.
Before you do anything else, do not forget to enable the agents under agents
tab in go web interface.
That's it, now you can play with your band new go cluster.
When the vagrant machines are running, access the go server at
127.0.0.1:8153
.
When you want to temporary stop the cluster, execute vagrant halt
to stop it
and vagrant up
to start it up again (just booting up the instances, no
provisioning).
To learn more on how to use the Vagrant, check the vagrant-intro blog post.