--- - name: install rsync package: name: rsync state: installed - name: create mirror group group: name: mirror gid: 1001 - name: create mirror user user: name: mirror comment: Service Mirror createhome: false group: mirror home: /var/empty shell: /sbin/nologin uid: 1001 - name: create data directory file: path: /export/mirrors state: directory mode: 0755 owner: root group: root - name: fix selinux contexts from data directory sefcontext: path: /export/mirrors(/.*)? setype: public_content_t - name: create data directory link file: path: /srv/mirrors state: link src: /export/mirrors owner: root group: root - name: create config directory file: path: /etc/sync-mirrors state: directory mode: 0755 owner: root group: root - name: create runtime and log directories file: path: "{{ item }}" state: directory mode: 0755 owner: mirror group: mirror with_items: - /var/run/sync-mirrors - /var/log/sync-mirrors - name: configure tmpfiles to create runtime directory on boot copy: dest: /usr/lib/tmpfiles.d/sync-mirrors.conf content: "d /run/sync-mirrors 0755 mirror mirror\n" mode: 0644 owner: root group: root - name: copy mirroring script copy: dest: /usr/local/bin/sync-mirrors src: sync-mirrors mode: 0755 owner: root group: root - name: create mirror cron job cron: name: sync-mirrors hour: "0,6,12,18" minute: "0" job: /usr/local/bin/sync-mirrors user: mirror - name: create log rotate cron job for sync-mirrors cron: name: sync-mirrors-logs hour: "5" minute: "10" job: "find /var/log/sync-mirrors/ -xdev -type f \ -mtime +30 -name '*.log' -execdir rm {} \\+" user: mirror - name: copy static web content synchronize: dest: "/srv/web/{{ inventory_hostname }}/" delete: true recursive: true src: static - name: create apache mirror config template: src: mirror.conf.j2 dest: /etc/httpd/conf.local.d/mirror.conf mode: 0644 owner: root group: "{{ ansible_wheel }}" notify: restart apache