From d369f84902b93c14a0902836ed6ac6979e5e049a Mon Sep 17 00:00:00 2001 From: James Tombleson Date: Fri, 3 May 2019 14:29:01 -0700 Subject: [PATCH] Create pull.yml This is a test file pulled from Ansible docs. --- playbook/pull.yml | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 playbook/pull.yml diff --git a/playbook/pull.yml b/playbook/pull.yml new file mode 100644 index 0000000..1d95205 --- /dev/null +++ b/playbook/pull.yml @@ -0,0 +1,77 @@ +# ansible-pull setup +# +# on remote hosts, set up ansible to run periodically using the latest code +# from a particular checkout, in pull based fashion, inverting Ansible's +# usual push-based operating mode. +# +# This particular pull based mode is ideal for: +# +# (A) massive scale out +# (B) continual system remediation +# +# DO NOT RUN THIS AGAINST YOUR HOSTS WITHOUT CHANGING THE repo_url +# TO SOMETHING YOU HAVE PERSONALLY VERIFIED +# +# +--- + +- hosts: pull_mode_hosts + remote_user: root + + vars: + + # schedule is fed directly to cron + schedule: '*/15 * * * *' + + # User to run ansible-pull as from cron + cron_user: root + + # File that ansible will use for logs + logfile: /var/log/ansible-pull.log + + # Directory to where repository will be cloned + workdir: /var/lib/ansible/local + + # Repository to check out -- YOU MUST CHANGE THIS + # repo must contain a local.yml file at top level + #repo_url: git://github.com/sfromm/ansible-playbooks.git + repo_url: SUPPLY_YOUR_OWN_GIT_URL_HERE + + tasks: + + - name: Install ansible + apk: + name: ansible + state: installed + + - name: Create local directory to work from + file: + path: {{workdir}} + state: directory + owner: root + group: root + mode: 0751 + + - name: Copy ansible inventory file to client + copy: + src: /etc/ansible/hosts + dest: /etc/ansible/hosts + owner: root + group: root + mode: 0644 + + - name: Create crontab entry to clone/pull git repository + template: + src: templates/etc_cron.d_ansible-pull.j2 + dest: /etc/cron.d/ansible-pull + owner: root + group: root + mode: 0644 + + - name: Create logrotate entry for ansible-pull.log + template: + src: templates/etc_logrotate.d_ansible-pull.j2 + dest: /etc/logrotate.d/ansible-pull + owner: root + group: root + mode: 0644