aboutsummaryrefslogtreecommitdiffstats
path: root/roles/node_prepare
diff options
context:
space:
mode:
Diffstat (limited to 'roles/node_prepare')
-rw-r--r--roles/node_prepare/defaults/main.yaml1
-rw-r--r--roles/node_prepare/handlers/main.yaml7
-rw-r--r--roles/node_prepare/tasks/main.yaml28
-rw-r--r--roles/node_prepare/tasks/nfs_client.yaml35
-rw-r--r--roles/node_prepare/tasks/nfs_client_DEBIAN.yaml8
-rw-r--r--roles/node_prepare/tasks/nfs_server.yaml47
-rw-r--r--roles/node_prepare/tasks/nfs_server_COREOS.yaml4
-rw-r--r--roles/node_prepare/tasks/nfs_server_DEBIAN.yaml9
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