All Projects → ricardozanini → vagrant-alm

ricardozanini / vagrant-alm

Licence: Apache-2.0 License
An excerpt of an ALM environment built on top of Vagrant, Libvirt and Ansible

Projects that are alternatives of or similar to vagrant-alm

Jenkins Bootstrap Shared
Jenkins as immutable infrastructure made easy. A repository of shared scripts meant to be used as a git submodule. Packing Jenkins, plugins, and scripts into immutable packages and images.
Stars: ✭ 270 (+513.64%)
Mutual labels:  jenkins, vagrant
windows-lab
Windows Automated Lab with Vagrant
Stars: ✭ 78 (+77.27%)
Mutual labels:  vagrant, lab
Ansible Playbooks
Ansible playbook collection that have been written for Ubuntu. Some of the playbooks are Elasticsearch, Mesos, AWS, MySql, Sensu, Nginx etc..
Stars: ✭ 429 (+875%)
Mutual labels:  jenkins, vagrant
ansible-roles
Library of Ansible plugins and roles for deploying various services.
Stars: ✭ 14 (-68.18%)
Mutual labels:  jenkins, vagrant
generator-mitosis
A micro-service infrastructure generator based on Yeoman/Chatbot, Kubernetes/Docker Swarm, Traefik, Ansible, Jenkins, Spark, Hadoop, Kafka, etc.
Stars: ✭ 78 (+77.27%)
Mutual labels:  jenkins, vagrant
Jenkins Vagrant
Vagrant Environment for a Jenkins Continuous Integration server
Stars: ✭ 34 (-22.73%)
Mutual labels:  jenkins, vagrant
drupalci-sonar-jenkins
DEPRECATED - Drupal CI environment with SonarQube and Jenkins for Drupal Core code analysis.
Stars: ✭ 40 (-9.09%)
Mutual labels:  jenkins, vagrant
django-angular2-fullstack-devops
All-in-one django/angular2 seed with cli interface for multi-environment devops on aws using ansible/packer/terraform
Stars: ✭ 54 (+22.73%)
Mutual labels:  jenkins, vagrant
cikit
Continuous Integration Kit (CIKit)
Stars: ✭ 21 (-52.27%)
Mutual labels:  jenkins, vagrant
vagrant-jenkins
Vagrant box running Ubuntu with an installed Jenkins instance
Stars: ✭ 39 (-11.36%)
Mutual labels:  jenkins, vagrant
Book k8sInfra
< 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 >
Stars: ✭ 176 (+300%)
Mutual labels:  jenkins, vagrant
learn-ansible-and-jenkins-in-30-days
Ansible + Jenkins in 30 days tutorial.
Stars: ✭ 35 (-20.45%)
Mutual labels:  jenkins, vagrant
ants
Awesome Networking Tools Sandbox
Stars: ✭ 21 (-52.27%)
Mutual labels:  vagrant, lab
DavesMapper
The juicy bits behind Dave's Mapper
Stars: ✭ 16 (-63.64%)
Mutual labels:  vagrant
k8s-lab-plz
Modular Kubernetes lab which provides an easy and streamlined way to deploy a test cluster with support for different components.
Stars: ✭ 38 (-13.64%)
Mutual labels:  lab
CIAnalyzer
A tool collecting multi CI services build data and export it for creating self-hosting build dashboard.
Stars: ✭ 52 (+18.18%)
Mutual labels:  jenkins
solutions-terraform-jenkins-gitops
Demonstrates the use of Jenkins and Terraform to manage Infrastructure as Code using GitOps practices
Stars: ✭ 49 (+11.36%)
Mutual labels:  jenkins
cnp-jenkins-library
Shared jenkins library
Stars: ✭ 21 (-52.27%)
Mutual labels:  jenkins
broom
A disk cleaning utility for developers.
Stars: ✭ 38 (-13.64%)
Mutual labels:  vagrant
New-Machine
Utilizing Vagrant, Packer, Chocolatey, and Boxstarter to Configure my Dev Machines
Stars: ✭ 26 (-40.91%)
Mutual labels:  vagrant

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. Also install the Vagrant Networkmanager plugin to have your hosts file configured accordingly: vagrant plugin install vagrant-hostmanager.

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 requirements.yml

Jenkins configuration post install

After your Jenkins server got provisioned, you will need to set:

  1. Ansible Tower Global Credentials: a. Username: your username b. Password: your pass c. ID: tower

  2. Ansible Tower Installation: a. Name: tower b. URL: https://tower.local c. Credenctials: the same that was set in the last step d. Force Trust Cert: true

  3. Maven in Global Tool Configuration: a. Name: M3 b. MAVEN_HOME: /opt/apache-maven-3.5.4

Ansible Tower

To provision Ansible Tower you have to first install VirtualBox and then execute: vagrat up tower --provider virtualbox. A brand new machine with Ansible Tower will be provisioned for you. After installation, go to http://tower.local and set your trial license and you're a set!

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].