From 28b428d0bd897f999984feaa077a8384079beb84 Mon Sep 17 00:00:00 2001 From: Dan Mick Date: Fri, 11 Dec 2015 12:36:03 -0800 Subject: [PATCH] Add task to partition extra drives (like on smithi) Signed-off-by: Dan Mick --- roles/testnode/tasks/drive_partitioning.yml | 39 +++++++++++++++++++++ roles/testnode/tasks/main.yml | 6 ++++ 2 files changed, 45 insertions(+) create mode 100644 roles/testnode/tasks/drive_partitioning.yml diff --git a/roles/testnode/tasks/drive_partitioning.yml b/roles/testnode/tasks/drive_partitioning.yml new file mode 100644 index 0000000..6f0bf64 --- /dev/null +++ b/roles/testnode/tasks/drive_partitioning.yml @@ -0,0 +1,39 @@ +--- +# Partition a data drive, like the nvme devices in smithi. Only included +# if drive_to_partition is defined, and only changes the drive if it +# doesn't already have four partitions +# +# It might be nice to make this flexible someday and parameterize the +# number of chunks + +- name: "Check if partitioning is needed for {{ drive_to_partition }}" + shell: "parted -m {{ drive_to_partition }} print | grep '^[0-9]:' | wc -l" + register: partition_count + +- name: Write a new partition table to {{ drive_to_partition }} + # -s: don't prompt for "are you sure" + command: "parted -s {{ drive_to_partition }} mktable msdos" + when: partition_count.stdout != '4' + +- name: "Write partition entries to {{ drive_to_partition }}" + command: "parted {{ drive_to_partition }} unit '%' mkpart primary {{ item }}" + with_items: + - "0 25" + - "25 50" + - "50 75" + - "75 100" + when: partition_count.stdout != '4' + +- name: "Add /scratch_devs for {{ drive_to_partition }} p1" + lineinfile: + dest: /scratch_devs + create: yes + owner: root + group: root + mode: 0644 + line: "{{ drive_to_partition }}{{ item }}" + with_items: + - p1 + - p2 + - p3 + - p4 diff --git a/roles/testnode/tasks/main.yml b/roles/testnode/tasks/main.yml index 3a751a5..eeb6019 100644 --- a/roles/testnode/tasks/main.yml +++ b/roles/testnode/tasks/main.yml @@ -28,6 +28,12 @@ tags: - monitoring-scripts +# partition drives, if any are requested +- include: drive_partitioning.yml + when: drive_to_partition is defined + tags: + - partition + # configure ssh - include: ssh.yml tags: -- 2.39.5