2021-02-13 05:45:21 -06:00

79 lines
2.3 KiB
YAML

---
# Mount shares that all systems should have.
# Test if this machine can use SSHFS
- name: General | Account Management | Mounts | Create Test Folder
file:
path: "/mnt/test"
state: directory
mode: '0755'
when: not leet_drive_details.stat.exists
- name: General | Account Management | Mounts | Test SSHFS
shell: "sshfs {{ leet_ssh }}: /mnt/test -o allow_other"
register: sshfs_test
ignore_errors: yes
when: not leet_drive_details.stat.exists
- name: General | Account Management | Mounts | SSHFS Already Working
shell: "echo SUCCESS"
register: sshfs_test
when: leet_drive_details.stat.exists
# Make super sure that the failed key exists.
- name: General | Account Management | Mounts | Check/Set sshfs_test.failed Key
set_fact:
sshfs_test: "{{ sshfs_test | combine({item.key : item.value}) }}"
with_items:
- { 'key': 'failed', 'value': false }
when: sshfs_test.failed is not defined
- debug:
var: sshfs_test
# Begin setting up 1337
- name: General | Account Management | Mounts | Create 1337 Folder
file:
path: "{{ leet_drive }}"
state: directory
mode: '0755'
# Linux uses fstab
- name: General | Account Management | Mounts | Create 1337 fstab Entry
blockinfile:
path: /etc/fstab
block: |
{{ leet_ssh }}: /mnt/leet fuse.sshfs defaults,_netdev,allow_other 0 0
marker: '# {mark} MANAGED BY ANSIBLE | 1337 Share'
state: present
backup: yes
when: ansible_system == "Linux" and not sshfs_test.failed
- name: General | Account Management | Mounts | Mount All (Linux)
shell: mount -a
args:
warn: false
when: ansible_system == "Linux" and not sshfs_test.failed)
# FreeBSD has to do this via root cron job, fstab is unhappy
- name: General | Account Management | Mounts | Unmount 1337 (FreeBSD)
shell: umount -f /mnt/leet
args:
warn: false
when: ansible_system == "FreeBSD" and not sshfs_test.failed
ignore_errors: yes
- name: General | Account Management | Mounts | Remount 1337 (FreeBSD)
shell: "{{ sshfs_leet_cmd }}"
when: ansible_system == "FreeBSD" and not sshfs_test.failed
# Ensure correct cron jobs and other downstream dependencies are done properly.
- name: General | Account Management | Mounts | Refresh Variable leet_drive_details
stat:
path: "{{ leet_drive }}/Temp/ansible"
register: leet_drive_details