- name: Ensure filesystem
ansible.builtin.apt:
name: cifs-utils
state: present
update_cache: true
- name: Set mount as list
set_fact:
mount_list: "{{ mount.split(',') | reject('equalto', '') | select('match', '^[A-Za-z0-9_]+$') | list }}"
when: mount is defined
- name: Create credentials file
ansible.builtin.copy:
dest: /root/.share
content: |
username={{ login }}
password={{ password }}
owner: root
group: root
mode: '0600'
- name: Ensure mount directories exist
ansible.builtin.file:
path: "{{ '/share' if item == 'share' else '/share/' ~ item }}"
state: directory
owner: root
group: root
mode: '0777'
loop: "{{ mount_list }}"
loop_control:
label: "{{ item }}"
- name: Create mount service
ansible.builtin.template:
src: share.service.j2
dest: "/etc/systemd/system/{{ ('share' if item == 'share' else 'share-' ~ item) }}.service"
owner: root
group: root
mode: '0644'
loop: "{{ mount_list }}"
loop_control:
label: "{{ item }}"
- name: Create mount timer
ansible.builtin.template:
src: share.timer.j2
dest: "/etc/systemd/system/{{ ('share' if item == 'share' else 'share-' ~ item) }}.timer"
owner: root
group: root
mode: '0644'
loop: "{{ mount_list }}"
loop_control:
label: "{{ item }}"
- name: Reload systemd
ansible.builtin.systemd_service:
daemon_reload: true
- name: Enable mount service
ansible.builtin.systemd:
name: "{{ ('share' if item == 'share' else 'share-' ~ item) }}.timer"
enabled: yes
state: started
loop: "{{ mount_list }}"
loop_control:
label: "{{ item }}"