From b23e9400c36acf9856606165489e8828c2cf8dd5 Mon Sep 17 00:00:00 2001
From: "Suren A. Chilingaryan" <csa@suren.me>
Date: Fri, 11 Oct 2019 06:25:21 +0200
Subject: ipa-client and fine tunning

---
 roles/ands_storage/defaults/main.yml     |  5 ++++
 roles/ands_storage/tasks/ipecompute2.yml | 17 +++++++++++++
 roles/ands_storage/tasks/ipecompute4.yml | 42 ++++++++++++++++++++++++++++++++
 roles/ands_storage/tasks/main.yml        | 15 ++++++++++++
 roles/ands_storage/tasks/nfs.yml         | 15 ++++++++++++
 5 files changed, 94 insertions(+)
 create mode 100644 roles/ands_storage/defaults/main.yml
 create mode 100644 roles/ands_storage/tasks/ipecompute2.yml
 create mode 100644 roles/ands_storage/tasks/ipecompute4.yml
 create mode 100644 roles/ands_storage/tasks/main.yml
 create mode 100644 roles/ands_storage/tasks/nfs.yml

(limited to 'roles/ands_storage')

diff --git a/roles/ands_storage/defaults/main.yml b/roles/ands_storage/defaults/main.yml
new file mode 100644
index 0000000..af631f8
--- /dev/null
+++ b/roles/ands_storage/defaults/main.yml
@@ -0,0 +1,5 @@
+compute2_ip:            "{{ ands_network | ipaddr(ands_compute_baseip + 2) | ipaddr('address') }}"
+compute4_ip:            "{{ ands_network | ipaddr(ands_compute_baseip + 4) | ipaddr('address') }}"
+
+compute4_ssds: ['sda','sdb','sdc','sdd','sde','sdf','sdg','sdh']
+
diff --git a/roles/ands_storage/tasks/ipecompute2.yml b/roles/ands_storage/tasks/ipecompute2.yml
new file mode 100644
index 0000000..9b2cef8
--- /dev/null
+++ b/roles/ands_storage/tasks/ipecompute2.yml
@@ -0,0 +1,17 @@
+- name: Delete partitions
+  parted: device="/dev/sda" label="gpt" number="{{ item }}" state="absent"
+  with_items: [ 2, 3, 4 ]
+
+- name: Create partition
+  parted: 
+    device: "/dev/sda" 
+    label: "gpt" 
+    number: 1 
+    name: "fast" 
+    state: "present" 
+
+- name: arrays | Creating Array(s) Filesystem
+  filesystem: dev="/dev/sda1" fstype="xfs"
+
+- name: arrays | Mounting Array(s)
+  mount: name="/mnt/fast" src="/dev/sda1" fstype="xfs" state="mounted"
diff --git a/roles/ands_storage/tasks/ipecompute4.yml b/roles/ands_storage/tasks/ipecompute4.yml
new file mode 100644
index 0000000..c226519
--- /dev/null
+++ b/roles/ands_storage/tasks/ipecompute4.yml
@@ -0,0 +1,42 @@
+---
+#- name: Delete partitions
+#  parted: device="/dev/{{ item[0] }}" label="gpt" number="{{ item[1] }}" state="absent"
+#  with_nested:
+#    - "{{ compute4_ssds }}"
+#    - [ 2, 3, 4 ]
+
+- name: Find SSD devices
+  shell: "ls /dev/disk/by-id/*SSD_850_PRO* | grep -v part"
+  changed_when: false
+  register: ssds
+
+- name: Create partition
+  parted: 
+    device: "/dev/{{ item }}" 
+    label: "gpt" 
+    number: 1 
+    name: "softraid" 
+    flags: [raid]
+    state: "present" 
+  failed_when: false
+  with_items: "{{ ssds.stdout_lines }}"
+#  with_items: "{{ compute4_ssds }}"
+
+- name: arrays | Checking Status Of Array(s)
+  shell: "cat /proc/mdstat | grep md10"
+  register: "array_check"
+  changed_when: false
+  failed_when: false
+  check_mode: no
+
+- name: arrays | Creating Array(s)
+#  shell: "yes | mdadm --create /dev/md10 --level=0 --raid-devices={{ compute4_ssds | count }} {{ compute4_ssds | map('regex_replace', '(.*)', '/dev/\\1') | join ('1 ') }}1"
+  shell: "yes | mdadm --create /dev/md10 --level=0 --raid-devices={{ ssds.stdout_lines | count }} {{ ssds.stdout_lines | join ('1 ') }}1"
+  register: "array_created"
+  when: array_check.rc != 0
+
+- name: arrays | Creating Array(s) Filesystem
+  filesystem: dev="/dev/md10" fstype="xfs"
+
+- name: arrays | Mounting Array(s)
+  mount: name="/mnt/fast" src="/dev/md10" fstype="xfs" state="mounted"
diff --git a/roles/ands_storage/tasks/main.yml b/roles/ands_storage/tasks/main.yml
new file mode 100644
index 0000000..351b529
--- /dev/null
+++ b/roles/ands_storage/tasks/main.yml
@@ -0,0 +1,15 @@
+---
+- name: Ensure required software is installed.
+  package: name="{{ item }}" state=present
+  with_items: [ 'parted', 'mdadm', 'nfs-utils' ]
+
+- name: configure network fs
+  include_tasks: nfs.yml
+
+- name: configure ipepdvcompute2
+  include_tasks: ipecompute2.yml
+  when: inventory_hostname == compute2_ip
+
+- name: configure ipepdvcompute4
+  include_tasks: ipecompute4.yml
+  when: inventory_hostname == compute4_ip
diff --git a/roles/ands_storage/tasks/nfs.yml b/roles/ands_storage/tasks/nfs.yml
new file mode 100644
index 0000000..f8bb310
--- /dev/null
+++ b/roles/ands_storage/tasks/nfs.yml
@@ -0,0 +1,15 @@
+---
+- name: Create mountable dir
+  file: path=/mnt/ands state=directory mode=755 owner=root group=root
+
+- name: Create mountable dir
+  file: path=/mnt/pdv state=directory mode=755 owner=root group=root
+
+- name: set mountpoints
+  mount: name=/mnt/ands src="{{ ands_nfs_server }}:/mnt/ands" fstype=nfs4 opts=defaults,minorversion=1,_netdev,nofail,soft,nodiratime,noatime dump=0 passno=0 state="{{ ands_mount_nfs | default(false) | ternary ('mounted', 'absent') }}"
+  when:  ands_nfs_server is defined
+
+- name: set mountpoints
+  mount: name=/mnt/pdv src="{{ ands_pdv_server }}:/pdv" fstype=nfs opts=defaults,_netdev,nofail,soft,nodiratime,noatime dump=0 passno=0 state=mounted
+  when: ands_pdv_server is defined
+
-- 
cgit v1.2.3