What is Ansible - Configuration Management Tools - Alternatives to- Chef and Puppet
It is used in Devops.
Business Users: System Admin - infrastructure
Configuration of : N servers x Type of servers(Webserver, Apache, MySQL)
Is is an automation tool? Yes
Yes it helps in IT Automation
Business Scenario : Configuration - 100 apache servers and database servers
Mechanism:
1) Pull Configuration - 2) Push Configuration ( no client installed on nodes, Server pushes)
Core Elements of Ansible:
1st part Core - Playbook
Playbook - instructions to confiugure the node
Written in YAML to describe the data
YAML - YAML ain't a mark up language
...
name: play1
hosts: webserver
tasks:
-name:install apache
yum:
name:apache
state:present
-name: start apache
service:
name: apache
state: start
-name: play 2
hosts: databaseserver
tasks:
-name:install MySQL
2nd Part : inventory
[webserver]
web1.machine
web2.machine
[databaseserver]
db1.machine
How it works?
Ansible is installed on the local machine
Connects to different nodes - agentless
Playbook - How to setup remote nodes
Uses SSH to connect to nodes
and Push the Playbook to the node
Create environment that is consistent
Ansible is a command line tool
Ansible Tower - RedHat - Framework
Usecase: Hootsuite
Business: Social media platform
Problem Statement:
Rebuild their servers
Now they write Playbooks to deploy servers providing a standardization
Take away:
IT Automation consistent configuration