In this lab we’ll have a short glimpse at how ansible-pull works.
docs.ansible.comfor information about the ansible-pull command.
- Look for a way to execute a playbook using ansible-pull
- Search for an example playbook
- Install all needed packages to use ansible-pull
- Use an
ansible-pullcommand that uses the resources in the folder
resources/ansible-pull/of our github repository located at
https://github.com/puzzle/ansible-techlab. This command should do the following:
- Apply the playbook
local.ymllocated at the
resource/ansible-pullfolder and run it on all hosts in the inventory file
- Show the content of
/etc/motdand verify, that the file was copied using ansible-pull
- Also verify, that no content of the git repository was copied to the local folder.
Note the following:
- If no playbook is specified, ansible-pull looks for a playbook
- The location of files given as parameters to the ansible-pull command are always relative to the top level of the git repository.
- All information to run the ansible-pull command is taken from the git repository (playbook, inventory, MOTD-file to be copied). No local configuration is used!
Solution Task 2
It’s a best practice to use cronjobs to trigger
ansible-pull run at a regular basis. Do the following on node1:
- Create a cronjob
/etc/cron.d/ansible-pull. This cronjob should run every minute as user ansible the ansible-pull command from Task 2.
- Now remove the existing
/etc/motdfile and use the command
watchto show the content of
/etc/motdevery second. We want to observe that our cronjob runs the
ansible-pullcommand again and restore the previously deleted MOTD-file.
Solution Task 3
This task has nothing to do with
ansible-pull, we just clean up the ansible-pull configurations. Create a playbook
revert_motd.yml that runs on node1. It should:
- uninstall ansible
- remove the cronjob
- empty the file
Run the playbook.
Solution Task 4