diff --git a/roles/core/cluster/tasks/storage.yml b/roles/core/cluster/tasks/storage.yml index 6389d3bc..c23d5fda 100644 --- a/roles/core/cluster/tasks/storage.yml +++ b/roles/core/cluster/tasks/storage.yml @@ -56,6 +56,40 @@ - "{{ scale_storage }}" - disks +# +# NSD device discovery script +# + +- block: ## run_once: true + - name: install | Stat user defined nsddevice disk discovery script + stat: + path: "{{ scale_user_created_nsddevices_file_path }}" + register: scale_user_creatednsddevices + run_once: true + delegate_to: localhost + + - name: install | Check user defined nsddevice disk discovery script + assert: + that: scale_user_creatednsddevices.stat.exists + msg: >- + Please set the variable 'scale_user_created_nsddevices_file_path' to point to the + correct user defined nsddevices script (accessible on Ansible control machine)! + run_once: true + delegate_to: localhost + + # + # Copy nsd device script to the /var/mmfs/etc/ + # + + - name: install | Copy user defined nsddevice disk discovery script to the node + copy: + src: "{{ scale_user_created_nsddevices_file_path }}" + dest: "{{ scale_user_created_nsddevices_systems_path }}" + mode: a+x + when: scale_user_creatednsddevices.stat.exists + + when: scale_user_defined_nsddevices_discovery | bool + - block: ## run_once: true - name: storage | Consolidate defined NSDs set_fact: diff --git a/roles/core/cluster/tasks/storage_disk.yml b/roles/core/cluster/tasks/storage_disk.yml index 630a7acf..573b7dc8 100644 --- a/roles/core/cluster/tasks/storage_disk.yml +++ b/roles/core/cluster/tasks/storage_disk.yml @@ -38,6 +38,40 @@ with_items: - "{{ scale_disks }}" +# +# NSD device discovery script +# + +- block: ## run_once: true + - name: install | Stat user defined nsddevice disk discovery script + stat: + path: "{{ scale_user_created_nsddevices_file_path }}" + register: scale_user_creatednsddevices + run_once: true + delegate_to: localhost + + - name: install | Check user defined nsddevice disk discovery script + assert: + that: scale_user_creatednsddevices.stat.exists + msg: >- + Please set the variable 'scale_user_created_nsddevices_file_path' to point to the + correct user defined nsddevices script (accessible on Ansible control machine)! + run_once: true + delegate_to: localhost + + # + # Copy nsd device script to the /var/mmfs/etc/ + # + + - name: install | Copy user defined nsddevice disk discovery script to the node + copy: + src: "{{ scale_user_created_nsddevices_file_path }}" + dest: "{{ scale_user_created_nsddevices_systems_path }}" + mode: a+x + when: scale_user_creatednsddevices.stat.exists + + when: scale_user_defined_nsddevices_discovery | bool + - block: ## run_once: true - name: storage | Consolidate defined filesystem parameters set_fact: diff --git a/roles/core/cluster/vars/main.yml b/roles/core/cluster/vars/main.yml index 7abdb4cc..4452844b 100644 --- a/roles/core/cluster/vars/main.yml +++ b/roles/core/cluster/vars/main.yml @@ -32,5 +32,10 @@ gpfs_cluster_system_profile: # user defined profile needs to be installed inside this directory scale_cluster_profile_system_path: /var/mmfs/etc/ +# user defined nsd device script needs to be installed inside this directory +scale_user_created_nsddevices_systems_path: /var/mmfs/etc/nsddevices + +scale_user_defined_nsddevices_discovery: false + # default mm command exection path scale_command_path: /usr/lpp/mmfs/bin/ diff --git a/samples/set_json_variables.yml b/samples/set_json_variables.yml index ac4dadf6..2b6bd75e 100644 --- a/samples/set_json_variables.yml +++ b/samples/set_json_variables.yml @@ -63,6 +63,8 @@ scale_protocols: "{{ scale_protocols | default(omit) }}" scale_hdfs_cluster: "{{ scale_hdfs_cluster | default(omit) }}" scale_cluster_config: "{{ scale_cluster | default(omit) }}" + scale_user_created_nsddevices_file_path: "{{ scale_cluster.scale_user_created_nsddevices_file_path | default(omit) }}" + scale_user_defined_nsddevices_discovery: "{{ scale_cluster.scale_user_defined_nsddevices_discovery | default(false) }}" loop: "{{ node_details }}" tags: - scale_inventory