116 lines
2.5 KiB
YAML
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
|