albohlabs / vagrant-alm

An excerpt of an ALM environemnt built on top of Vagrant, Libvirt and Ansible

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vagrant ALM - Application Lifecicle Management for labs and tests

This project aims to build a ALM infrastructure within a virtual environment using Vagrant and provisioning with Ansible.

The picture bellow illustrates the infrastructure defined in the Vagrant file:

Vagrant ALM infrastructure

The process could be summarized as follows:

  1. The main point of interest in this scenario is Jenkins doing his job which is orchestrating a CI/CD process.

  2. Next we send the code to be analised by Sonar Source for find some buggy code and to check how good our tests are.

  3. For artifact archiving we use Nexus v.3 so our binaries could reside there for later deploy.

  4. And finally, a simple CentOS 7 machine waiting to receive the binaries and be provisioned by Jenkins using the Ansible Plugin.

I've managed to build a simple lab using this sample workflow that could be found in here. Also, if you are interested, there's a presentation that I did on Ansible Meetup in São Paulo describing this scenario. Enjoy!

How to use

Just install Vagrant on your unix machine and you are ready to go. I've tried to keep the Vagrantfile as much agnostic as possible to be simple to reproduce on any Vagrant environment. Even if you couldn't manage to work, I hope this file could help you at least as a reference.

Remember that the Ansible playbooks on this repo are the real project rock star. It's responsible to give the environment everything you need to build your ALM.

Don't forget to install the Ansible Roles from the repository by executing the following command from the project's root dir:

ansible-galaxy install -r ansible/requirements.yml

Notes

The original ansible role geerlingguy.sonar doesn't work with Postgres. I've already sent a pull request to the original author but until now, he haven't have the time to merge. In the future I have plans to aniquilate the zanini.sonar role from the local dir and rely only on the Geerling Guy's role.

There's an issue on Vagrant 1.9.1 that is very annoying: the eth01 needs a restart after bring the machine up. Do the following after sshing at the machine:

sudo /etc/init.d/network restart

Credits

About

An excerpt of an ALM environemnt built on top of Vagrant, Libvirt and Ansible

License:Apache License 2.0