Skip to main content

Ansible PlayBooks

Ansible playbooks are a way to send commands to remote computers in a scripted way. Instead of using Ansible commands individually to remotely configure computers from the command line, you can configure entire complex environments by passing a script to one or more systems.

Ansible playbooks are written in the YAML data serialization format. If you don't know what a data serialization format is, think of it as a way to translate a programmatic data structure (lists, arrays, dictionaries, etc) into a format that can be easily stored to disk. The file can then be used to recreate the structure at a later point. JSON is another popular data serialization format, but YAML is much easier to read.

Each playbook contains one or more plays, which map hosts to a certain function. Ansible does this through something called tasks, which are basically module calls.


https://docs.ansible.com/ansible/devel/user_guide/playbooks.html

Playbook example :

You should write the code in file and save it as .yaml

==========================================

This playbook start the Apache daemon if it failed


---


- hosts: webserver
  user: root

  tasks:
  - name: Ensure the Apache daemon has started
    service: name=httpd state=started


 ==========================================


This playbook use copy module to copy the variable to destination path


---

- hosts:  webserver
  user: root
  vars:
   motd_warning: 'Welcome to Ansible\n'
  tasks:
  - name: sample motd
    copy:
     dest: /etc/motd
     content: "{{motd_warning }}"

==========================================

How to run ansible playbook.

ansible-playbook  ansibleyamlfile.yaml

Comments

Popular posts from this blog

Shell script with functions

Shell Script with Function: You can define a function and the commands/code in it. Then you can call that function at last line which will execute all commands mention in that block for you. f1() { var="Welcome to the geekstuff" echo ${#var} } f1 Output : ./test.sh 24

Ansible Ad-hoc commands

Ad-hoc commands in Ansible allow you to execute simple tasks at the command line against one or all of your hosts. Syntax:- ansible <hosts> [-m <module_name>] -a <"arguments"> -u <username> [--become] The list of all modules here: https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html The ping module: Try to connect to host, verify a usable python and return pong on success root@:/etc/ansible# ansible all -m ping ip address | SUCCESS => {     "changed": false,     "ping": "pong" }   root@:/etc/ansible# ansible all -i ./hosts -m ping root@:/etc/ansible# ansible webservers -m ping