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

118 lines
2.3 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: install nginx xslt config
copy:
dest: /etc/nginx/mirror.xslt
src: mirror.xslt
mode: 0644
owner: root
group: root
notify: restart nginx
- name: create nginx mirror config
template:
dest: "/etc/nginx/conf.d/{{ inventory_hostname }}/mirror.conf"
src: mirror.conf.j2
mode: 0644
owner: root
group: root
notify: restart nginx