Ansible Playbook examples

  1. Write a Ansible Playbook to create a group called “deploy”
- name: Create a group
  hosts: group
  tasks:
   - name: Add group "deploy"
     group:
       name: deploy
       state: present

2.Write a Ansible Playbook to create a user called “deploy-user” which is part of group called “deploy” and with /bin/bash shell.

- name: Create a user
  hosts: user
  tasks:
    - name: Add user "deploy-user"
      user: 
        name=deploy-user groups=deploy password="" shell=/bin/bash 
        append=yes 
        state=present

3. Write a Ansible Playbook to install package named “httpd” in RHEL/centos.

- name: To install  an httpd webserver
  hosts: web
  tasks:
  - name: Install httpd packages 
    yum:
      name: httpd
      state: present

4. Write a Ansible Playbook to start and enable the service named “httpd”

- name: To start and enable an httpd webserver
  hosts: web
  tasks
    - name: start httpd
    service:
      name: httpd 
      state: started


  - name: enable httpd
    service:
      name: httpd 
      enabled: yes

5. Write a Ansible Playbook to create a file called “index.html” in /var/www/html with some dummy html contents.

- name: creating a file
  hosts: all
    tasks:
    - name: create a file index.html
      file:
        path: "/var/www/htmlindex.html"
        state: touch

    - name: adding contents to indexfile
    blockinfile:
      dest: /var/www/html/index.html
      block: |
        <html>
        <h1> Welcome to HP Ansible class </h1>
        </html>

6. Write a Ansible Playbook to reboot a self machine.

- name: rebooting self machine
  hosts: web
    task:
    - name: Reboot a Linux machine 
        reboot:
        reboot_timeout: 1800

7. Write a Ansible Playbook to install a package called “git”, “wget”.

- name: To install a package "git" and "wget"
  hosts: web
  tasks:
  - name: Install git packages 
    yum:
      name: git
      state: present
 
  - name: Install wget packages 
    yum:
      name: wget
      state: present

8. Write a Ansible Playbook to clone git repo. thttps://github.com/scmgalaxy/ansible-role-template

- name: Cloning git repo
  hosts: web
  environment:
      http_proxy: 'http://web-proxy:8080'
      https_proxy: 'http://web-proxy:8080'
  tasks:
  - name: cloning....
    git: 
      repo=https://github.com/scmgalaxy/ansible-role-template
      clone=yes 
      dest=./ansible-role-template