diff options
Diffstat (limited to 'roles/node_prepare')
-rw-r--r-- | roles/node_prepare/defaults/main.yaml | 1 | ||||
-rw-r--r-- | roles/node_prepare/handlers/main.yaml | 7 | ||||
-rw-r--r-- | roles/node_prepare/tasks/main.yaml | 28 | ||||
-rw-r--r-- | roles/node_prepare/tasks/nfs_client.yaml | 35 | ||||
-rw-r--r-- | roles/node_prepare/tasks/nfs_client_DEBIAN.yaml | 8 | ||||
-rw-r--r-- | roles/node_prepare/tasks/nfs_server.yaml | 47 | ||||
-rw-r--r-- | roles/node_prepare/tasks/nfs_server_COREOS.yaml | 4 | ||||
-rw-r--r-- | roles/node_prepare/tasks/nfs_server_DEBIAN.yaml | 9 |
8 files changed, 139 insertions, 0 deletions
diff --git a/roles/node_prepare/defaults/main.yaml b/roles/node_prepare/defaults/main.yaml new file mode 100644 index 0000000..3160f83 --- /dev/null +++ b/roles/node_prepare/defaults/main.yaml @@ -0,0 +1 @@ +nfs_daemon: nfs-kernel-server
\ No newline at end of file diff --git a/roles/node_prepare/handlers/main.yaml b/roles/node_prepare/handlers/main.yaml new file mode 100644 index 0000000..73aa2ed --- /dev/null +++ b/roles/node_prepare/handlers/main.yaml @@ -0,0 +1,7 @@ +--- +- name: restart nfs server + systemd: + name: "{{ nfs_daemon }}" + state: restarted + daemon_reload: "yes" + become: "yes" diff --git a/roles/node_prepare/tasks/main.yaml b/roles/node_prepare/tasks/main.yaml new file mode 100644 index 0000000..afbaeb4 --- /dev/null +++ b/roles/node_prepare/tasks/main.yaml @@ -0,0 +1,28 @@ +--- +# TODO: retrieve facts on Openstack to dynamically find subnet for etc export +- name: install nfs + when: not use_global_storage + block: + - name: gather facts + setup: + + - name: create nfs server on controller + import_tasks: nfs_server.yaml + when: inventory_hostname in groups['nfs-server'] + + - name: flush handlers + meta: flush_handlers + + - name: mount dockerdata in nfs + import_tasks: nfs_client.yaml + when: inventory_hostname in groups['k8s-cluster'] and + inventory_hostname not in groups['nfs-server'] + + - name: put right value for max_map_count + become: "yes" + ansible.posix.sysctl: + name: vm.max_map_count + value: 1048575 + sysctl_set: "yes" + state: present + reload: "yes" diff --git a/roles/node_prepare/tasks/nfs_client.yaml b/roles/node_prepare/tasks/nfs_client.yaml new file mode 100644 index 0000000..315fdab --- /dev/null +++ b/roles/node_prepare/tasks/nfs_client.yaml @@ -0,0 +1,35 @@ +--- +- name: install packages + import_tasks: nfs_client_DEBIAN.yaml + when: ansible_os_family | lower == "debian" + +- name: Create mountable dir + become: "yes" + ansible.builtin.file: + path: "{{ nfs_folder }}" + state: directory + mode: 0777 + owner: root + group: root + +- name: set mountpoints + become: "yes" + ansible.posix.mount: + name: "{{ nfs_folder }}" + src: + "{{ hostvars[groups['nfs-server'][0]].ansible_default_ipv4.address }}\ + :{{ nfs_folder }}" + fstype: nfs4 + dump: 0 + passno: 2 + opts: "nfsvers=4.1,rsize=131072,wsize=131072" + state: mounted + +- name: Ensure mountable dir is accessible to everyone + become: "yes" + ansible.builtin.file: + path: "{{ nfs_folder }}" + state: directory + mode: 0777 + owner: root + group: root diff --git a/roles/node_prepare/tasks/nfs_client_DEBIAN.yaml b/roles/node_prepare/tasks/nfs_client_DEBIAN.yaml new file mode 100644 index 0000000..f3eb6ee --- /dev/null +++ b/roles/node_prepare/tasks/nfs_client_DEBIAN.yaml @@ -0,0 +1,8 @@ +--- +- name: "[Debian] Ensure NFS utilities are installed." + include_role: + name: apt_install + vars: + environment: "{{ proxy_env }}" + packages: + - nfs-common diff --git a/roles/node_prepare/tasks/nfs_server.yaml b/roles/node_prepare/tasks/nfs_server.yaml new file mode 100644 index 0000000..6179172 --- /dev/null +++ b/roles/node_prepare/tasks/nfs_server.yaml @@ -0,0 +1,47 @@ +--- +- name: apply distribution specific tasks + include_tasks: "nfs_server_{{ ansible_os_family | upper }}.yaml" + when: > + ansible_os_family | lower == "debian" or + ansible_os_family | lower == "coreos" + +- name: retrieve server pdf information + ansible.builtin.set_fact: + server_pdf: + "{{ nodes | selectattr('name', 'in', inventory_hostname) | first }}" + +- name: create nfs volume + include_role: + name: create_disk + vars: + disks: "{{ server_pdf.disks }}" + disk_purpose: nfs + mount_path: "{{ nfs_folder }}" + force_full_erase: False + when: (server_pdf.disks | selectattr('name', 'eq', 'disk-nfs') | + list | length) > 0 + +- name: Create mountable dir + become: "yes" + ansible.builtin.file: + path: "{{ nfs_folder }}" + state: directory + mode: 0777 + owner: root + group: root + +- name: create file in order that nfs server is happy... + become: "yes" + ansible.builtin.file: + path: "{{ nfs_folder }}/do_not_remove" + state: touch + +- name: copy /etc/exports + become: "yes" + ansible.builtin.lineinfile: + path: /etc/exports + owner: root + group: root + regexp: "^{{ nfs_folder }}" + line: "{{ nfs_folder }} *(rw,async,no_root_squash,no_subtree_check)" + notify: restart nfs server diff --git a/roles/node_prepare/tasks/nfs_server_COREOS.yaml b/roles/node_prepare/tasks/nfs_server_COREOS.yaml new file mode 100644 index 0000000..ad59414 --- /dev/null +++ b/roles/node_prepare/tasks/nfs_server_COREOS.yaml @@ -0,0 +1,4 @@ +--- +- name: override default nfs daemon name + ansible.builtin.set_fact: + nfs_daemon: nfsd diff --git a/roles/node_prepare/tasks/nfs_server_DEBIAN.yaml b/roles/node_prepare/tasks/nfs_server_DEBIAN.yaml new file mode 100644 index 0000000..38b4d14 --- /dev/null +++ b/roles/node_prepare/tasks/nfs_server_DEBIAN.yaml @@ -0,0 +1,9 @@ +--- +- name: "[Debian] Ensure NFS utilities are installed." + include_role: + name: apt_install + vars: + environment: "{{ proxy_env }}" + packages: + - nfs-common + - nfs-kernel-server |