Top 15 Ansible Interview Questions & Answers for 2020

by StarAgile

September 04, 2020
Category DevOps


It is important to get ready for any interview. Preparation is the first step to give the best performance. When you want to land in the right DevOps job, you must be thorough with Ansible. Yes, several questions based on this tool will be asked to check your skills. Continue reading to find those questions which are going to offer you the best job. We have also given you answers to help you get ready to attend the interview. 

You can also read about what it is, its uses, and architecture here. 

1. What makes ansible different from other tools?

For automation from the start and scratch, Ansible works better than other tools.

For Configuration Management - the life cycle, code, and changes can be done by playbooks, roles, and inventory in Ansible.

2. Is Ansible written in Python, explain?

Yes, Ansible is written in Python and the learning curve is very simple and easy. Ansible follows a simple deployment process such as there is no requirement of daemons, servers, and clients. It manages the nodes through the SSH and operates parallel in use. 

3. Compare Ansible, Puppet, and Chef?

Chef Vs Ansible Vs Puppet

Serial#
Criteria
Chef
Ansible
Puppet
1Availability
Back up Server
Secondary Instance
Another Master
2Configuration Language
Ruby DSL
Yet another Markup Language (YAML), Python
Puppet DSL, Embedded Ruby 
3Ease of access
Chef clients can only configure the clients and server
SSH allows configuring only specific nodes
Puppet clients can configure the clients and master
4Ease of setup and installation
Time-consuming and complicated due to chef workstation
Easy
Time-consuming due to certificate signing
5Interoperability
Support pull configuration only
Ansible server supports only Unix/Linux machine and client machines support windows
Puppet server supports only Unix/Linux machine and client machines support windows
6Management 
Support for pull configuration only
Support both the pull and push
Only pull configuration
7Pricing

The standard hosted chef plan starts at $72 annually for every node

Chef automation version is charged at $137 per node annually

Self-support package starts at $5000 annually

Premium version costs $14,000 annually for each 100 nodes

Puppet enterprise pricing starts at $120 for every node annually

The premium plan is $199 for each node annually

8Product capabilities

Automated workflow for continuous delivery,

Infrastructure automation,

Compliance and security management,

Automation for DevOps workflow.

Automated workflow for continuous delivery,

Streamlined provisioning,

Security and compliance management,

Simple orchestration,

App development.

Configuration automation,

Role-based access control,

Automated provisioning,

Orchestration,

Node management,

Code Management,

Visualizations and reporting.

9Scalability
Massive Ruby DSL code creates difficulties for scalable deployments
Efficient scalability with the installation of python interpreter and root access SSH
Problems with Large Puppet DSL code for scalability 

4. Does Ansible have a GUI? How to manage it?

Yes Ansible AWX has a GUI. It provides the Rest API, GUI, and Ansible task engine. You can manage it by scheduling and run by using the Ansible Playbooks.

Steps are as follows,

  • Log in to the AWX server with the user name that is admin and password as a password, which is using the default credentials.
  • Then a new organization is added
  • Then the new user is added
  • Now the new inventory is added
  • Then the hosts are added
  • Then the credentials are added
  • Now the new template is to be added
  • Finally, run the job

5. Differentiate Ansible and Ansible Galaxy?

Ansible Galaxy is the repository for the ansible roles. And the ansible-galaxy command is used that retrieves roles from Ansible Galaxy and installs them. Ansible is the tool that is used for configuration management using inventory and playbooks.

6. Which are the OS Ansible can work upon?

The Ansible server supports the Unix/Linux machines and the client machines support the windows Operating Systems.

7. Explain the steps in connecting Ansible to windows?

Step1 - Installing Ansible on the control node (CentOS 8)

  • Install Python 3 on the Ansible control node
  • Set up a virtual environment for running Ansible
  • Then Install Ansible
  • Install Pywinrm

Step2 - Configuring the windows host

  • The WinRM script is downloaded on the windows host
  • Then the WinRM is run on the Windows host

Step3 - Connect the Windows host to the Ansible control node

  • Use the command "ansible  winhost -m win_ping"
  • Now once you get the reply you are connected to the windows host

Step4 - Finally create and run a playbook for windows host

  • Hosts: winhost

gather_facts: no

tasks:

  • name: Install chocolatey on windows10
  • win_chocolatey: name=procexp state=present

8. How to get connected to an Ansible server?

Follow the steps given in the question number 7.

9. Run Ansible command on targets?

  • The 'command' module is used for taking the command name and list of space-delimited arguments.
  • The provided command will get executed on all the modules.
  • To create the command tasks without the space-delimited arguments use the 'args' or 'cmd' parameters
  • For windows targets use the ‘win_command’ module instead.

10. How are Ansible and Jenkin associated?

Ansible and Jenkin can be integrated using the following steps,

  • Create a Jenkins Job and configure the SCM repository using the code in GitHub
  • Then configure the build
  • Roles directory is created in the Jenkins workspace

Create the tomcat role in the Jenkins workspace location with the following command

  • sudo ansible-galaxy init tomcat - offline
  • Ansible playbook is called after the configuring the Jenkins post-build. Then, call the site.yml file and save the job.
  • Next, call the build job and launch the Tomcat URL to check if the application is installed properly.

11. Where are the Ansible playbooks stored? What language is the playbook written in?

The inventory file is the hosts and group of hosts on which the modules, tasks, commands in a playbook operates. The default location for the inventory file is /etc/ansible/hosts. Playbooks are the file where the Ansible code is written. The Playbooks are written in YAML.

12. What is YAML and how is used in Ansible?

YAML stands for Yet Another Markup Language, Ansible uses YAML syntax for coding the Ansible Playbooks. It is English like language and is easy to write, read, and understand than other language formats such as JSON and XML.

13. Is there an alternative to Ansible? If yes why and what are they?

Yes, there are alternatives to Ansible such as Chef and Puppet. They have some additional features such as Node management, orchestration, code management, and visualization. However, each has its pros and cons. Please read the question#3 for the comparison. 

14. What protocol is used in Ansible?

SSH is the default protocol used in Ansible to communicate between the servers and nodes.

15. If you are asked to practice Ansible, then how will you do it? Is it available for free?

Yes, Ansible is an open source and free software available for the general public and commercial uses.

Lab testing is the best way to practice Ansible.

The following are the steps to setup Ansible for the Lab test.

  • The Oracle VirtualBox and OEL7 with Docker readymade OVA file is downloaded.
  • The Oracle VirtualBox is installed and the VM started from the OVA file.
  • Run the containers
  • Establish connectivity between the Ansible server and clients via the SSH passwordless connectivity.

Find general DevOps interview questions here. 

Conclusion – Suggestion to handle difficult Ansible interview questions

We are glad to provide you with Ansible interview questions and answers in this blog. However, you need to get trained in DevOps to answer even difficult questions. Don’t worry, you can join our DevOps training to learn DevOps in depth. 

Join today and shape your career sharp. 

All the best!