Skip to main content

Command Palette

Search for a command to run...

4.Copy Data to App Servers using Ansible

Updated
•2 min read
4.Copy Data to App Servers using Ansible
T

Cloud & SRE specializing in AWS and DevOps. I share my ongoing learning journey through practical tutorials and insights. Let's grow together.

Lab Information

The Nautilus DevOps team needs to copy data from the jump host to all application servers in Stratos DC using Ansible. Execute the task with the following details:

a. Create an inventory file /home/thor/ansible/inventory on jump_host and add all application servers as managed nodes.

b. Create a playbook /home/thor/ansible/playbook.yml on the jump host to copy the /usr/src/itadmin/index.html file to all application servers, placing it at /opt/itadmin.

Note: Validation will run the playbook using the command ansible-playbook -i inventory playbook.yml. Ensure the playbook functions properly without any extra arguments.

Lab Instructions

Step 1: Create the Inventory File

First, let's create the inventory file with all application servers: bash

Create the directory if it doesn't exist

mkdir -p /home/thor/ansible

Create the inventory file

cat > /home/thor/ansible/inventory << EOF
[app_servers]
stapp01 ansible_host=172.16.238.10 ansible_user=tony ansible_ssh_pass=Ir0nM@n
stapp02 ansible_host=172.16.238.11 ansible_user=steve ansible_ssh_pass=Am3ric@
stapp03 ansible_host=172.16.238.12 ansible_user=banner ansible_ssh_pass=BigGr33n
EOF

Step 2: Create the Playbook

Now, let's create the playbook that will copy the file:

cat > /home/thor/ansible/playbook.yml << 'EOF'
---
- name: Copy index.html to application servers
  hosts: app_servers
  become: yes
  become_method: sudo
  tasks:
    - name: Ensure destination directory exists
      file:
        path: /opt/itadmin
        state: directory
        owner: root
        group: root
        mode: '0755'

    - name: Copy index.html file to application servers
      copy:
        src: /usr/src/itadmin/index.html
        dest: /opt/itadmin/index.html
        owner: root
        group: root
        mode: '0644'
EOF

Step 3: Verify the Files

Check that both files were created correctly:

# Check inventory file
cat /home/thor/ansible/inventory

# Check playbook file
cat /home/thor/ansible/playbook.yml

Step 4: Test the Playbook

Run the playbook to test it:

cd /home/thor/ansible
ansible-playbook -i inventory playbook.yml

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.

More from this blog

W

Whispering Cloud Insights

88 posts

Documenting my path to cloud journey. Sharing lessons, tutorials, and insights from my continuous learning journey. Learn with me.