DEV Community

Cover image for 5.Create Files on App Servers using Ansible
Thu Kha Kyawe
Thu Kha Kyawe

Posted on

5.Create Files on App Servers using Ansible

Lab Information

The Nautilus DevOps team is testing various Ansible modules on servers in Stratos DC. They're currently focusing on file creation on remote hosts using Ansible. Here are the details:

a. Create an inventory file ~/playbook/inventory on jump host and include all app servers.

b. Create a playbook ~/playbook/playbook.yml to create a blank file /home/opt.txt on all app servers.

c. Set the permissions of the /home/opt.txt file to 0744.

d. Ensure the user/group owner of the /home/opt.txt file is tony on app server 1, steve on app server 2 and banner on app server 3.

Note: Validation will execute the playbook using the command ansible-playbook -i inventory playbook.yml, so ensure the playbook functions correctly without any additional arguments.

Lab Instructions

Step-by-Step Ansible Lab Instructions

🟩 Step 1 β€” Create the playbook directory

mkdir -p ~/playbook
Enter fullscreen mode Exit fullscreen mode

🟩 Step 2 β€” Create the inventory file

vi ~/playbook/inventory
Enter fullscreen mode Exit fullscreen mode

Add the following content:

[app_servers]
stapp01 ansible_user=tony ansible_password=Ir0nM@n owner_name=tony
stapp02 ansible_user=steve ansible_password=Am3ric@ owner_name=steve
stapp03 ansible_user=banner ansible_password=BigGr33n owner_name=banner
Enter fullscreen mode Exit fullscreen mode

βœ” This defines all app servers
βœ” It also maps each host to the correct owner

🟩 Step 3 β€” Create the playbook file

vi ~/playbook/playbook.yml
Enter fullscreen mode Exit fullscreen mode

Add the following:

---
- name: Create /home/opt.txt on all app servers
  hosts: app_servers
  become: yes

  tasks:
    - name: Ensure /home/opt.txt exists with correct permissions and ownership
      file:
        path: /home/opt.txt
        state: touch
        mode: "0744"
        owner: "{{ owner_name }}"
        group: "{{ owner_name }}"
Enter fullscreen mode Exit fullscreen mode

🟩 Step 4 β€” Verify your files
Inventory:
cat ~/playbook/inventory

Playbook:
cat ~/playbook/playbook.yml

🟩 Step 5 β€” Run the playbook (Validation will do this automatically)

ansible-playbook -i inventory playbook.yml
Enter fullscreen mode Exit fullscreen mode

This will:

βœ” Create /home/opt.txt on all app servers
βœ” Set file permissions to 0744
βœ” Assign correct owner/group per server:

stapp01 β†’ tony

stapp02 β†’ steve

stapp03 β†’ banner


Resources & Next Steps
πŸ“¦ Full Code Repository: KodeKloud Learning Labs
πŸ“– More Deep Dives: Whispering Cloud Insights - Read other technical articles
πŸ’¬ Join Discussion: DEV Community - Share your thoughts and questions
πŸ’Ό Let's Connect: LinkedIn - I'd love to connect with you

Credits
β€’ All labs are from: KodeKloud
β€’ I sincerely appreciate your provision of these valuable resources.

Top comments (0)