Rootconf Pune edition

On security, network engineering and distributed systems


Web-based booking application

Submitted by Amit Nijhawan (@anijhawa) on Tuesday, 2 July 2019

Section: Workshop Category: DevOps Status: Rejected


I am going to expalin The project in DevOps - Build Real World Processes is a web-based online booking application.I will explain the THE INFRASTRUCTURE which I have used in my applicatio using dev ops , will eloborate more into CONTINUOUS INTEGRATION, CONTINUOUS DELIVERY, CONTINUOUS MASTER INTEGRATION, CONTINUOUS MASTER INTEGRATION.

It contains the following components:
Environment Number of machines Purpose

Client 1 Mimics the developer machine used to write the application code. Also used for running
Ansible against the other environments.
Testing 2 The application server hosting the web application and the database server hosting the
backend database
Production 2 The application server, the database server.
➤ Vagrant for infrastructure provisioning
➤ Ansible for configuration management
➤ Git for version control, GitHub as a central repository
➤ Jenkins as a CI/CD tool


I am going to present the use of dev ops tool in my web-based booking application. In my Workshop I will try to exaplain teh tools that are used:

➤ Vagrant for infrastructure provisioning
➤ Ansible for configuration management
➤ Git for version control, GitHub as a central repository
➤ Jenkins as a CI/CD tool

I will show all the steps like below:


The client machine is a Centos 7 Vagrant machine with the following components:
➤ Ansible
➤ Git
The application server is a Centos 7 Vagrant machine with the following components:
➤ Apache
➤ PHP 7
➤ Git
➤ Swift application (the CodeIgniter project used)
The database server is a Centos 7 Vagrant machine with the following:

The CI/CD server is an Ubuntu Vagrant machine containing the following:

Jenkins with the following plugins:
➤ SSH host
➤ GitHub
➤ PHPUnit testing tool
➤ Selenium Python web driver
A testing environment will contain a clone of the application and database machines to be used by Jenkins


Create a new job called swift-feature
➤ In Source Code Management select Git
➤ Add the repository URL: xxxxxxxxxx
➤ Choose the feature branch
➤ In the Build triggers click on Poll SCM and specify the desired schedule
➤ In the Build are select a new build step and choose shell script. Add the following:

cd application/tests/

➤ In the post build actions choose publish Unit test result and add the following application/tests/build/logs/junit.xml
➤ Save the job
➤ Test it by making changes and pushing them to GitHub and running the job.


The integration job will always run after the feature job runs.
➤ It will only take an action if the feature job succeeds (the tests pass).
➤ The job will merge the changes done to the feature branch to the integration branch and push those changes to GitHub.
➤ Add a descriptive name for the job. Let’s say feature_integration


The second job will work after the previous one is complete and will actually deploy the changes to the development
➤ Before we can do that we need to create an SSH site to define the machine where the code will be delivered for further
testing. In Manage Jenkins choose configure Jenkins and go to SSH remote sites.
➤ Add the details of the SSH machine including the credentials and the remote location.
➤ Now create a new job that is copied from feature_integration but with the following changes:
➤ Build after feature_integration
➤ Build execute shell will contain only the testing phase
➤ The second build step will be execute SSH script on remote hosts. Choose the SSH site already configured and add
the following commands:

cd /var/www/html/CodeIgniter-3.1.5/

git checkout integration

git pull


They should bring laptop to hands-on the project.

Speaker bio

I am a Senior Technical Support Engineer at Red Hat. My domain is Java and Middleware Technologies and container technology.I have a good experince dev ops and used in many products and projects.


  •   Zainab Bawa (@zainabbawa) Reviewer 8 months ago

    What will be the takeaways for participants from this workshop? Why should participants attend this workshop?

  •   Zainab Bawa (@zainabbawa) Reviewer 8 months ago

    Who should attend this workshop? Who is the target audience?

  •   Zainab Bawa (@zainabbawa) Reviewer 8 months ago

    We will await your response till 7 days, following which we will move the proposal to reject owing to lack of response from proposer.

  •   Amit Nijhawan (@anijhawa) Proposer 8 months ago

    Who should attend this workshop?
    Those who wants to know about DevOps and why it is needed in today’s fast-chanfing world. I will cover: vagrant for instant provisioning, Docker for containerization, Ansible for configuration management, git for version tracking, and Jenkins for continious integration, continuous delivery, and continuous developement.

    Who is the target audience

    Audience would be who already have some basic experience of docker, ansible , git and Jenkins.

    Please let me know if you want more details.

    •   Zainab Bawa (@zainabbawa) Reviewer 8 months ago

      One of the challenges with the workshop proposal is that if participants are already expected to know “docker, ansible, git and Jenkins”, then why should someone attend the workshop?

      •   Zainab Bawa (@zainabbawa) Reviewer 8 months ago

        A workshop works if it is teaching something to a participant either from basics or at an advanced level. Here, the example is being positioned as a case for the workshop rather than a topic on which a participant may want training.

        •   Zainab Bawa (@zainabbawa) Reviewer 8 months ago

          Thanks for submitting the proposal. We are moving it to reject status, because this proposal has to be re-thought (and re-submitted) as a skill training workshop proposal.

Login with Twitter or Google to leave a comment