Ansible roles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

104 lines
2.7 KiB

---
- name: Build config for shares
set_fact: nas_shares_conf={{ nas_shares_conf | default([]) + [nas_default_share | combine(item,recursive=True)] }}
with_items: "{{ nas_shares }}"
tags: nas
- set_fact: nas_shares={{ nas_shares_conf | default([]) }}
tags: nas
- name: Install needed packages
yum:
name:
- rssh
tags: nas
- name: Allow every user to use rssh
file: path=/bin/rssh mode=755
tags: nas
- name: Create directories
file: path={{ nas_root_dir }}/{{ item[1] }}/{{ item[0].name }} state=directory
with_nested:
- "{{ nas_shares }}"
- [data,meta]
tags: nas
- name: Create rsync system user
user:
name: rsync
system: True
shell: /sbin/nologin
tags: nas
- name: Deploy samba shares config
template: src=smb.conf.j2 dest=/etc/samba/smb.conf.d/shares.conf
notify: reload samba
tags: nas
- name: Deploy NFS exports
template: src=exports.j2 dest=/etc/exports.d/shares.exports
notify: reload nfs
tags: nas
- name: Deploy rsyncd shares config
template: src=rsyncd.conf.j2 dest=/etc/rsyncd.conf.d/shares.conf
tags: nas
- name: Deploy rsync auth files
template: src=rsync.secrets.j2 dest={{ nas_root_dir }}/meta/{{ item.name }}/rsync.secrets owner=root group=root mode=600
with_items: "{{ nas_shares }}"
tags: nas
- name: Deploy httpd conf
template: src={{ item.src }} dest={{ item.dest }} mode={{ item.mode | default(omit) }}
loop:
- src: httpd.conf.j2
dest: /etc/httpd/ansible_conf.d/50-shares.conf
mode: 640
- src: mod_dav.conf.j2
dest: /etc/httpd/ansible_conf.modules.d/30-mod_dav.conf
- src: mod_authnz_external.conf.j2
dest: /etc/httpd/ansible_conf.modules.d/30-mod_authnz_external.conf
notify:
- reload httpd
tags: nas
- name: Allow http to use PAM auth
seboolean: name=httpd_mod_auth_pam state=True persistent=True
when: ansible_selinux.status == 'enabled'
tags: nas
- name: Deploy setfacl script
template: src=setfacl.sh.j2 dest={{ nas_root_dir }}/meta/{{ item.name }}/setfacl.sh mode=755
with_items: "{{ nas_shares }}"
register: nas_acl
tags: nas
- name: Reset acls
command: "{{ nas_root_dir }}/meta/{{ item.item.name }}/setfacl.sh"
when: item.changed
with_items: "{{ nas_acl.results }}"
tags: nas
- name: Set SELinux content
sefcontext:
target: "{{ nas_root_dir }}/data(/.*)?"
setype: public_content_rw_t
state: present
when: ansible_selinux.status == 'enabled'
tags: nas
- name: Set SEbool
seboolean: name={{ item }} state=True persistent=True
with_items:
- samba_enable_home_dirs
- samba_create_home_dirs
- samba_export_all_rw
tags: nas
- name: Deploy scripts
copy: src={{ item }} dest=/var/lib/samba/scripts/{{ item }}
with_items:
- mkhomedir
tags: nas