Skip to content

Latest commit

 

History

History
52 lines (42 loc) · 2.48 KB

Using_Ansible_Conditionals.md

File metadata and controls

52 lines (42 loc) · 2.48 KB

The Nautilus DevOps team had a discussion about, how they can train different team members to use Ansible for different automation tasks. There are numerous ways to perform a particular task using Ansible, but we want to utilize each aspect that Ansible offers. The team wants to utilise Ansible's conditionals to perform the following task:

An inventory file is already placed under /home/thor/ansible directory on jump host, with all the Stratos DC app servers included.

Create a playbook /home/thor/ansible/playbook.yml and make sure to use Ansible's when conditionals statements to perform the below given tasks.

Copy blog.txt file present under /usr/src/security directory on jump host to App Server 1 under /opt/security directory. Its user and group owner must be user tony and its permissions must be 0777 .

Copy story.txt file present under /usr/src/security directory on jump host to App Server 2 under /opt/security directory. Its user and group owner must be user steve and its permissions must be 0777 .

Copy media.txt file present under /usr/src/security directory on jump host to App Server 3 under /opt/security directory. Its user and group owner must be user banner and its permissions must be 0777 .

NOTE: You can use ansible_nodename variable from gathered facts with when condition. Additionally, please make sure you are running the play for all hosts i.e use - hosts: all.

Note: Validation will try to run the playbook using command ansible-playbook -i inventory playbook.yml, so please make sure the playbook works this way without passing any extra arguments.

Solution:
Create playbook.yaml:

---
- hosts: all
  become: yes
  gather_facts: yes
  tasks:
    - name: Copy blog.txt file with owner and permissions
      copy:
        src: /usr/src/security/blog.txt
        dest: /opt/security/blog.txt
        owner: tony
        group: tony
        mode: "0777"
      when: inventory_hostname == "stapp01"

    - name: Copy story.txt file with owner and permissions
      copy:
        src: /usr/src/security/story.txt
        dest: /opt/security/story.txt
        owner: steve
        group: steve
        mode: "0777"
      when: inventory_hostname == "stapp02"

    - name: Copy media.txt file with owner and permissions
      copy:
        src: /usr/src/security/media.txt
        dest: /opt/security/media.txt
        owner: banner
        group: banner
        mode: "0777"
      when: inventory_hostname == "stapp03"

back