Using Ansible Modules to Manage File Content in Your Environment

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

When your web devs come up with an update to an application and you need to deploy it to 100 servers (sometimes more) doing so manually is a difficult task. While there are many ways to automate this process Ansible can handle it in addition to everything else it does. This lab will walk through a method of doing so.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Deploy `index.html`

Your playbook should look something like:

---
- name: copy webapp
  hosts: webservers
  become: yes

  tasks:
   - name: install webapp
     copy:
      src: /root/index.html
      dest: /var/www/html/index.html
      owner: apache
      group: apache
      mode: 0644
Copy and Execute the `db deploy` (deploy.sh) Script

There are two different methods of doing this in a playbook.

The first is to use script, but it is commented out. Both can be seen in this code snippet.

- name: copy db script
  hosts: dbservers
  become: yes

  tasks: 
   - name: copy deploy script
#    script: /root/deploy.sh
     copy:
      src: /root/deploy.sh
      dest: /opt/deploy.sh
      owner: root
      group: root
      mode: 0755

   - name: Execute the script
     command: sh /opt/deploy.sh

Run the playbook with this:

ansible-playbook filedeploy.yml
Redeploy `index.html`

You should not include the db deploy in this playbook.

 ---

- name: copy webapp
  hosts: webservers
  become: yes

  tasks:
   - name: install webapp
     copy:
      src: /root/index2.html
      dest: /var/www/html/index.html
      owner: apache
      group: apache
      mode: 0644

Run the playbook again:

ansible-playbook filedeploy.yml

Additional Resources

Notice: Ansible is installed as the root user, so please work on all tasks after elevating to the root user.

You received a ticket to upgrade the application and database for servers in your environment. There is an index.html and deploy.sh script in the /root directory on your Ansible Host. Write a playbook that deploys the index.html file to the webserver (in /var/www/html/), then deploys deploy.sh script to the dbserver in /opt, and finally executes that deploy.sh script. Use curl to test your deployment.

Once that deployment has finished, your developers let you know they found and fixed a major bug, and this fix needs to be deployed immediately. Deploy the /root/index2.html file to address this issue.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?