ansible/roles/mirror/base/tasks/main.yml

116 lines
2.5 KiB
YAML

---
- 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