Giter VIP home page Giter VIP logo

click-count-devops's Introduction

click-count-devops

This project creates a set of Vagrant boxes containing a build server, a staging server and a production server. The servers are configured using Ansible.

Staging and production servers

The staging and production server are provisionned with docker and a redis container running as a docker container. The redis container is in a private network.

Build Server

The build server is provisonned with Docker and a Jenkins CI server. The Jenkins jobs are created with the Ansible playbook. The created job build a java application using a mvn docker container, push it to a registry and deploy it to staging and production.

Architecture

The following schema describe the complete infrastructure:

alt text

Pipeline

The build pipeline uses Jenkins pipeline to :

  • checkout the project source
  • build the war using a maven docker image
  • build the production docker image (tomcat) and push it
  • deploy the project to the staging server
  • after validation from users, deploy the project to the production server

The pipeline is quite straighforward and can be found here.

Requirements

This project requires :

  • Vagrant 2.2
  • Ansible 2.7.10
  • The following Ansible modules : geerlingguy.jenkins and geerlingguy.git

The project also requires the presence of an ssh key pair in ~/.ssh/id_rsa to start and allow the build server to access the other server. A better implementation would need to create a ssh key pair and not rely on an external one.

License

GPLv3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.