devops test



----------------------------------------------------------------------------------------------------------------------
DEVOPS TEST 1
----------------------------------------------------------------------------------------------------------------------

The assignment expects you to set up one click deploy and provisioning of an environment with all neccesary elements of a DevOps Toolchain. Use Puppet / Chef / Ansible for the following setup 1. Apache tomcat server 2. Mysql Database, with configuration controlled through the tool 3. Apache Http Webserver 4. Web loadbalancer on Apache Server for Tomcat. 5. Jenkins for CI
With the setup in place 1. Make a continuous delivery (CD) pipeline in AWS using Jenkins, it should include CI Builds and other jobs neccesary for the software delivery lifecycle 2. Create a DevOps Toolchain to completely automate the pipeline, the tool chain should be able to auto provision and remove on-demand environments, along with devops toolchain hooked into every environment that gets provisioned 3. Push a built WAR using Jenkins build pipeline into the VM 4. Also make sure that the location of tomcat and apache HTTPD should be flexible and controlled by Puppet/Chef/Ansible, in case no specific value is provided it should fall back to defaults NOTES: 1. You can make any assumptions and be as innovative and creative as possible in your usage of tools for DevOps tool-chain 2. You are expected to implement a CD pipeline with no use of shell scripts 3. Check-in the complete project (cookbooks, manifests, Jenkins build definitions etc.) into a GitHub account and send us the repository location 4. Use the spring application https://github.com/spring-projects/spring- petclinic/ as source for the CI And CD implementations. 5. Feel free to use AWS and share the working installation URL also, any charges incurred will be repaid irrespective of the interview result. 6. Recommended tool for AWS : Vagrant

------------------------------------------------------------------------------------------------------------------------
DEVOPS TEST 2
------------------------------------------------------------------------------------------------------------------------
Imagine you're part of a team that is starting a blogging application that would eventually run on the cloud (let's assume it's AWS). The team has decided to use Wordpress to get a simple blog running as a start. Your team of developers are going to be adding features to the blog. To help them speed their releases to Production, you want to template and automate building EC2 servers and a suitable AWS infrastructure.
First, you create Amazon AWS resources in a repeatable manner, using input parameters that will take default value and non-default values based on configuration file. You need to use Terraform in conjunction with Ansible to achieve this.
While the developers are writing code, you want to allow them to deploy code themselves. They should be able to deploy the blog app remotely using a simple command.

Here are the specs you want:
- OS: Ubuntu Server 14.04 64-bit
- App Server: Gunicorn/Nginx
- Python: 2.7
- Ansible
- Docker 1.10
- Wordpress official Docker image https://hub.docker.com/_/wordpress/

In developing the solution, use GitHub/BitBucket and try to keep a decent history of how you approached the project.

Deliverables:
(1) A GitHub repo with the Terraform configuration, Ansible playbook, Dockerfile, shell script(s) etc.
(2) A bash script that will:
- Launch the AWS infrastructure with EC2 servers.
- Begin the configuration management / bootstrapping of the server using Ansible.
- Finally start the blogging app as a Docker process.
DO NOT CHECK THIS INTO GITHUB WITH AWS KEYS.

Remember to use security groups to restrict port access. Prefix all of your AWS resources (when possible) with your first name (example: firstname-lastname.domain.com).

We should be able to perform the following commands and then interact with a functioning app in the browser.
cloud-automation.sh <app> <environment> <num_servers> <server_size>
ex: cloud-automation.sh hello_world dev 2 t1.micro
This should return the IP address of the load-balanced Wordpress application, after which, We can open a browser to http://33.33.33.10 and see the blog app come up!

Other Articles

Enter your email address: