ansible/roles/rsyncd/tasks/main.yml
Kevin Fenzi 261879c688 rsyncd: use systemd service on rhel9 as well as fedora
Signed-off-by: Kevin Fenzi <kevin@scrye.com>
2023-03-15 15:34:32 -07:00

110 lines
3 KiB
YAML

---
#
# This role sets up rsyncd on a server
#
- name: install necessary packages
package:
state: present
name:
- rsync
- xinetd
- libsemanage-python
tags:
- packages
- rsyncd
when: (ansible_distribution == 'RedHat' and ansible_distribution_major_version|int < 8) or (ansible_distribution_major_version|int < 30 and ansible_distribution == 'Fedora')
- name: install necessary packages
package:
state: present
name:
- rsync
- xinetd
- python3-libsemanage
tags:
- packages
- rsyncd
when: (ansible_distribution_major_version|int >= 30 and ansible_distribution == 'Fedora' and ansible_distribution_major_version|int < 34 and ansible_distribution == 'Fedora') or (ansible_distribution == 'RedHat' and ansible_distribution_major_version|int == 8)
- name: install necessary packages for fedora >= 34
package:
state: present
name:
- rsync-daemon
- python3-libsemanage
tags:
- packages
- rsyncd
when: (ansible_distribution_major_version|int >= 34 and ansible_distribution == 'Fedora') or (ansible_distribution == 'RedHat' and ansible_distribution_major_version|int > 8)
- name: rsyncd.conf file
copy: src={{ item }} dest=/etc/rsyncd.conf mode=0644
with_first_found:
- "{{ rsyncd_conf }}"
- rsyncd.conf.{{ inventory_hostname }}
- rsyncd.conf.{{ host_group }}
- rsyncd.conf.{{ rsync_group }}
- rsyncd.conf.default
when: "'download' not in group_names"
notify:
- restart daemon
ignore_errors: true
tags:
- config
- rsyncd
- name: rsyncd.conf file
template: src=rsyncd.conf.download.j2 dest=/etc/rsyncd.conf mode=0644
notify:
- restart daemon
when: "'download' in group_names"
tags:
- config
- rsyncd
- name: xinetd rsync file
copy: src={{ item }} dest=/etc/xinetd.d/rsync mode=0644
with_first_found:
- "{{ rsync }}"
- rsync.{{ inventory_hostname }}
- rsync.{{ host_group }}
- rsync.{{ rsync_group }}
- rsync.default
notify:
- restart xinetd
when: ansible_distribution_major_version|int < 34 and ansible_distribution == 'Fedora'
tags:
- config
- rsyncd
- name: systemd rsync file
copy: src=rsyncd.service dest=/usr/lib/systemd/system/rsyncd.service mode=0644
when: (ansible_distribution_major_version|int >= 34 and ansible_distribution == 'Fedora') or (ansible_distribution == 'RedHat' and ansible_distribution_major_version|int > 8)
notify:
- restart daemon
tags:
- config
- rsyncd
- name: make sure xinetd is started
service: name=xinetd state=started
when: ansible_distribution_major_version|int < 34 and ansible_distribution == 'Fedora'
tags:
- services
- rsyncd
- name: make sure rsync daemon is started
service: name=rsyncd enabled=true state=started
when: ansible_distribution_major_version|int >= 34 and ansible_distribution == 'Fedora'
tags:
- services
- rsyncd
- name: set sebooleans so rsync can read dirs
seboolean: name=rsync_export_all_ro
state=true
persistent=true
tags:
- rsyncd