Here we have compiled the most probable DevOps interview questions asked in the industry. You will learn about software version control, Git repository, reverting a commit in Git, Vagrant, continuous testing elements, and the importance of continuous integration, testing, and deployment. These questions are curated after discussing with many interviewers and DevOps Training experts.
Instead of writing playbooks you can just execute an ad-hoc command. For example, if we want to copy a file to all hosts in a particular group (stageservers). In simple terms, if you have only one task to do, then why to write playbooks. As in mentiond example. For repeated tasks list of actions can be stored in playbooks and can run whenever needed.
Ansible documentation is shared over GitHub, there is an option "Edit on GitHub" on the right top corner of docs.ansible.com website. So through GitHub we can submit a change in Ansible Documentation.
Jenkins is an open source automation tool written in Java with plugins built for continuous Integration Process. Jenkins is used to build, test and deploy your software projects continuously and it integrates changes to the project continuously. So it is also known as CI/CD tool. There are other similar tools in the market but Jenkins stands out with its vast plugin collection, easily configurable and of course it is free of cost.
Continuous Integration is one of the best practices followed in Devops. Monitors the new changes coming into VCS like GIT, checkouts the source code, triggers the Build and generates a new artifact (with the new code) without any human intervention. In short, Jenkins continuously integrates the code(new code) to the Build files/artifact. Here Jenkins does Code Testing prior to build.
Deployment means copying build files (artifacts) to any specific server/environment. It may be a physical machine or cloud.
Continuous Delivery is a practice followed in Devops. Build, Test, and Release of projects is automated without human intervention, which is not recommended for crucial/Big projects as there might be chances of having bugs with automated testings. It depends on the project whether to implement a continuous delivery or continuous deployment. In short, continuous delivery is releasing products/updates to the end-user/client automatically (automating deployment to production).
Continuous Deployment is one of the best practices followed in Devops. Build, Test, and Deployment of projects is automated without human intervention. Which means qualified changes in code are deployed to the Test, UAT, QA, etc., environments but not to the production as soon as the code is pushed to VCS(Version Control System) without any human intervention. Then here the code is thoroughly tested. In short, continuous deployment is deploying the updates/product to the specific environment (automating deployment to Testing environment).
Install Jenkins in new machines and copy the .jenkins directory into the new machine, and then start Jenkins.
Here are the commands to start, stop and to restart the jenkins:
The two important components that I integrated with Jenkins are Version control tool and Build tool, in general GIT and Maven.