--- - name: Install rsync ansible.builtin.package: name: rsync state: installed - name: Create mirror group ansible.builtin.group: name: mirror gid: 309 - name: Create mirror user ansible.builtin.user: name: mirror comment: Service Mirror createhome: false group: mirror home: /var/empty shell: /sbin/nologin uid: 309 - name: Create data directory ansible.builtin.file: path: /export/mirrors state: directory mode: "0755" owner: root group: root - name: Fix selinux contexts from data directory community.general.sefcontext: path: /export/mirrors(/.*)? setype: public_content_t - name: Create data directory link ansible.builtin.file: path: /srv/mirrors state: link src: /export/mirrors owner: root group: root - name: Create config directory ansible.builtin.file: path: /etc/sync-mirrors state: directory mode: "0755" owner: root group: root - name: Create runtime and log directories ansible.builtin.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 ansible.builtin.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 ansible.builtin.copy: dest: /usr/local/bin/sync-mirrors src: sync-mirrors.sh mode: "0755" owner: root group: root - name: Send cron mails to root ansible.builtin.cron: name: MAILTO job: root env: true user: mirror - name: Create mirror cron job ansible.builtin.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 ansible.builtin.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 ansible.posix.synchronize: dest: "/srv/web/{{ inventory_hostname }}/" delete: true recursive: true src: static - name: Create apache mirror config ansible.builtin.template: src: mirror.conf.j2 dest: /etc/httpd/conf.local.d/mirror.conf mode: "0644" owner: root group: "{{ ansible_wheel }}" notify: Restart apache