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

109 lines
2.1 KiB
YAML

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