0% found this document useful (0 votes)
1K views1 page

Ansible-Cheat Sheet Edureka PDF

Ansible is a tool that allows for continuous deployment and configuration of systems. It uses SSH to communicate between nodes and modules to perform tasks like managing packages, services, and file transfers. Playbooks allow users to write YAML files to define multi-step automation tasks across multiple servers.

Uploaded by

AB
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views1 page

Ansible-Cheat Sheet Edureka PDF

Ansible is a tool that allows for continuous deployment and configuration of systems. It uses SSH to communicate between nodes and modules to perform tasks like managing packages, services, and file transfers. Playbooks allow users to write YAML files to define multi-step automation tasks across multiple servers.

Uploaded by

AB
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

ANSIBLE CHEAT SHEET Learn DevOps from experts at edureka.

co

What is Ansible? Ad-Hoc Commands


Ansible is a continuous deployment and Ad-Hoc commands are quick commands which are used to perform the actions, that won’t be saved for later.
configuration tool which provides large productivity
gains to a wide variety of automation challenges. Parallelism & Shell Commands

#To set up SSH agent


Ansible Architecture $ ssh-agent bash $ ssh-add ~/.ssh/id_rsa
#To use SSH with a password instead of keys, you can use --ask-pass (-K)
$ ansible europe -a "/sbin/reboot" -f 20
#To run /usr/bin/ansible from a user account, not the root
$ ansible europe -a "/usr/bin/foo" -u username
#To run commands through privilege escalation and not through user account
$ ansible europe -a "/usr/bin/foo" -u username --become [--ask-become-pass]
HOST
#If you are using password less method then use --ask-become-pass (-K) to interactively get the password to be use
INVENTORY API #You can become a user, other than root by using --become-user
Network
$ ansible europe -a "/usr/bin/foo" -u username --become --become-user otheruser [--ask-become-pass]
MODULES PLUGINS

File Transfer
#Transfer a file directly to many servers
SSH Key Generation & Install Ansible $ ansible europe -m copy -a "src=/etc/hosts dest=/tmp/hosts"
#To change the ownership and permissions on files
SSH Key Generation $ ansible webservers -m file -a "dest=/srv/foo/a.txt mode=600" $ ansible webservers -m file -a "dest=/srv/foo/b.txt
Ansible uses SSH to communicate between the nodes. mode=600 owner=example group=example"
#To create directories
#Setting Up SSH Command $ ansible webservers -m file -a "dest=/path/to/c mode=755 owner=example group=example state=directory“
$ sudo apt-get install openssh-server #To delete directories (recursively) and delete files
#Generating SSH Key $ ansible webservers -m file -a "dest=/path/to/c state=absent
$ ssh-keygen
#Copy the SSH Key on the Hosts Manage Packages Manage Services
$ ssh-copy-id hostname
#Check the SSH Connection #To ensure a service is started on all web servers
#To ensure that a package is installed, but doesn’t get updated
$ ssh <nodeName> $ ansible webservers -m service -a "name=httpd
$ ansible webservers -m apt -a "name=acme state=present"
state=started"
#To ensure that a package is installed to a specific version
Install Ansible $ ansible webservers -m apt -a "name=acme-1.5 state=present"
#To restart a service on all web servers
$ ansible webservers -m service -a "name=httpd
To install Ansible in Debian Linux, follow the following steps: #To ensure that a package at the latest version
state=restarted"
$ ansible webservers -m apt -a "name=acme state=latest"
#Add Ansible repository #To ensure a service is stopped
#To ensure that a package is not installed
$ sudo apt-add-repository ppa:ansible/ansible $ ansible webservers -m service -a "name=httpd
$ ansible webservers -m apt -a "name=acme state=absent
#Run the update command state=stopped
$ sudo apt-get update
#Install Ansible package Deploying From Source Control
$ sudo apt-get install ansible
#Check Ansible Version #GitRep:https://foo.example.org/repo.git #Destination:/src/myapp
$ ansible –version $ ansible webservers -m git -a "repo=https://foo.example.org/repo.git dest=/src/myapp version=HEAD"

Inventory Files & Hosts Patterns Playbooks


Ansible’s inventory lists all the platforms you want to automate across. Ansible can at a single instance work on multiple hosts in the Sample Playbooks
infrastructure.
#Every YAML file starts with ---
Setup & Hosts Connection Ansible Hosts Patterns ---
- hosts: webservers
Follow the below steps to set hosts and then check their connection. vars: http_port: 80
Ansible Hosts Patterns
#Set up hosts by editing the hosts' file in the Ansible directory max_clients: 200
all All hosts in inventory
$ sudo nano /etc/ansible/hosts remote_user: root
* All hosts in inventory tasks:
#To check the connection to hosts
#First change the directory to /etc/Ansible ungrouped All hosts in inventory not appearing within a group
-name: ensure apache is at the latest version
$ cd /etc/ansible apt: name=httpd state=latest
#To check whether Ansible is connecting to hosts, use ping command 10.0.0.* All hosts with an IP starting 10.0.0.* -name: write the apache config file
$ ansible –m ping <hosts> webservers The group webservers template: src=/https/www.scribd.com/srv/httpd.j2 dest=/etc/httpd.conf
#To check on servers individually notify: -
Only hosts in webservers, not also in group
$ ansible -m ping server name webservers:!moscow
moscow -restart apache
#To check a particular server group -name: ensure apache is running (and enable it at boot)
$ ansible -m ping servergroupname webservers:&moscow Only hosts in the group’s webservers and moscow service: name=httpd state=started enabled=yes
handlers:
-name: restart apache
Example Inventory File service: name=httpd state=restarted
The below is an example inventory file, which you can refer to understand the various parameters.
ungrouped.example.com #An ungrouped host
[webservers] #A group called webservers Writing Playbooks
beta.example.com ansible_host = 10.0.0.5 #ssh to 10.0.0.5
github.example.com ansible_ssh_user = abc #ssh as user abc
[clouds] #Generate the SSH Key and connect hosts to control
cloud.example.com fileuser = alice #fileuser is a host variable machine before writing and running playbooks.
[moscow]
beta.example.com #Host (DNS will resolve)
DEVOPS #Create a Playbook
$ vi <name of your file>.yml
telecom.example.com
[dev1:children]
#Host(DNS will resolve)
#dev1 is a group containing
CERTIFICATION #To write the playbook refer to the snapshot here.
#Run the playbook
webservers
clouds
#All hosts in group webservers
#All hosts in group clouds
TRAINING $ ansible-playbook <name of your file>.yml

You might also like