diff options
author | Romain Gonçalves <me@rgoncalves.se> | 2021-12-11 11:55:55 +0000 |
---|---|---|
committer | Romain Gonçalves <me@rgoncalves.se> | 2021-12-11 11:55:55 +0000 |
commit | 13ef8e5744442b6a6d61a96888f87a1c96c44ba6 (patch) | |
tree | 02d217738020807cbb79bd9cf6b382d8e0f1348d | |
parent | 4c65e7d4cbc3e0bfee426c05e88690ea2a486673 (diff) | |
download | rules-13ef8e5744442b6a6d61a96888f87a1c96c44ba6.tar.gz |
roles: Add nfsclient
-rw-r--r-- | group_vars/all.yml | 1 | ||||
-rw-r--r-- | playbooks/site.yml | 15 | ||||
-rw-r--r-- | roles/nfsclient/defaults/main.yml | 5 | ||||
-rw-r--r-- | roles/nfsclient/tasks/main.yml | 32 | ||||
-rw-r--r-- | roles/nfsclient/tasks/os_alpine.yml | 10 | ||||
-rw-r--r-- | roles/nfsclient/tasks/os_openbsd.yml | 0 |
6 files changed, 61 insertions, 2 deletions
diff --git a/group_vars/all.yml b/group_vars/all.yml index 694927c..72bf8d6 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -2,6 +2,7 @@ ansible_hostname: "{{ ansible_host }}" ansible_become_method: su wireguard_domain_controller: "{{ __global_domain_controller }}" +nfsclient_server: "stack0" __is_vm: false diff --git a/playbooks/site.yml b/playbooks/site.yml index 96dffb5..d354cb7 100644 --- a/playbooks/site.yml +++ b/playbooks/site.yml @@ -7,12 +7,23 @@ roles: - role: sshd tags: role_sshd - - role: httpd - tags: role_httpd - hosts: stack0 roles: - role: nfsd tags: role_nfsd + +- hosts: stack0-* + roles: + - role: nfsclient + tags: role_nfsclient + +- hosts: servers + roles: + - role: httpd + tags: role_httpd + +- hosts: stack0 + roles: - role: vmm tags: role_vmm diff --git a/roles/nfsclient/defaults/main.yml b/roles/nfsclient/defaults/main.yml new file mode 100644 index 0000000..d0ca08e --- /dev/null +++ b/roles/nfsclient/defaults/main.yml @@ -0,0 +1,5 @@ +nfsclient_dir: /data +nfsclient_fstab_path: /etc/fstab +nfsclient_server_dir: /data/nfs +nfsclient_server_host: null +nfsclient_server_ip: null diff --git a/roles/nfsclient/tasks/main.yml b/roles/nfsclient/tasks/main.yml new file mode 100644 index 0000000..7799a60 --- /dev/null +++ b/roles/nfsclient/tasks/main.yml @@ -0,0 +1,32 @@ +- name: translate server string to server dict + set_fact: + nfsclient_server_ip: "{{ hostvars[nfsclient_server].__ip.external }}" + when: not nfsclient_server_ip + +- name: include distribution specific prerequisites + include_tasks: "os_{{ ansible_distribution | lower }}.yml" + ignore_errors: true + +- name: create directory on client + file: + path: "{{ nfsclient_dir }}" + owner: 0 + group: 0 + mode: 0755 + state: directory + +- name: cleanup fstab with previous nfs setup + lineinfile: + path: "{{ nfsclient_fstab_path }}" + regexp: ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:/.* {{ nfsclient_dir }} nfs + state: absent + register: result + +- name: complete fstab with nfs + lineinfile: + path: "{{ nfsclient_fstab_path }}" + line: "{{ nfsclient_server_ip }}:{{ nfsclient_server_dir }}/{{ inventory_hostname }} {{ nfsclient_dir }} nfs rw,nodev,nosuid 0 0" + +- name: reload fstab + shell: mount -a + ignore_errors: true diff --git a/roles/nfsclient/tasks/os_alpine.yml b/roles/nfsclient/tasks/os_alpine.yml new file mode 100644 index 0000000..62d8f70 --- /dev/null +++ b/roles/nfsclient/tasks/os_alpine.yml @@ -0,0 +1,10 @@ +- name: install nfs-utils + package: + name: nfs-utils + state: present + +- name: restart and enable nfsmount + service: + name: nfsmount + state: restarted + enabled: true diff --git a/roles/nfsclient/tasks/os_openbsd.yml b/roles/nfsclient/tasks/os_openbsd.yml new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/roles/nfsclient/tasks/os_openbsd.yml |