From cb792e59a6b64c90fdf13428811cb1551453da22 Mon Sep 17 00:00:00 2001 From: Roxyrob <22431069+Roxyrob@users.noreply.github.com> Date: Thu, 18 Mar 2021 15:38:22 +0100 Subject: [PATCH] * Refactor: aws code in its own tasks file to mitigate concerns about performance at scale --- tasks/amazon.yml | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ tasks/centos.yml | 70 ++---------------------------------------------- 2 files changed, 72 insertions(+), 68 deletions(-) create mode 100644 tasks/amazon.yml diff --git a/tasks/amazon.yml b/tasks/amazon.yml new file mode 100644 index 0000000..eb2faeb --- /dev/null +++ b/tasks/amazon.yml @@ -0,0 +1,70 @@ +--- + +- name: centos | check for nvme devices + shell: | + set -o pipefail + cat /proc/partitions | awk '{print $4}' | grep -q nvme. ; echo $? + args: + executable: /bin/bash + register: blkdev_nvme + changed_when: false + +- name: centos | check for amazon ebs devices + shell: | + set -o pipefail + lsblk -O -J | grep -qi "amazon elastic block store" ; echo $? + register: blkdev_awsebs + changed_when: false + args: + executable: /bin/bash + +- name: centos | set flag for nvme subsystem + set_fact: + device_is_nvme: "{{ true if (blkdev_nvme.stdout == '0') else false }}" + +- name: centos | set flag for aws ebs devices + set_fact: + device_is_awsebs: "{{ true if (blkdev_awsebs.stdout == '0') else false }}" + +- name: Block to map renamed ec2 ebs nvmeXnY devices to their original sdX/xvdX names + when: device_is_nvme and device_is_awsebs|bool + become: true + block: + - name: centos | download nvme mapping binary helper + get_url: + url: "{{ ebsnvme_binary_helper_url }}" + dest: "{{ ebsnvme_binary_helper_tmp }}/" + changed_when: false + + - name: centos | extract binary helper + unarchive: + src: "{{ ebsnvme_binary_helper_tmp }}/{{ ebsnvme_binary_helper_file }}" + dest: "{{ ebsnvme_binary_helper_tmp }}/" + remote_src: yes + mode: 0755 + changed_when: false + + - name: centos | copy binary helper + copy: + src: "{{ ebsnvme_binary_helper_tmp }}/go-ebsnvme" + dest: "{{ ebsnvme_binary_helper_path }}" + mode: a+x + remote_src: yes + + - name: centos | template script helper + template: + src: 'ebsnvme-id.j2' + dest: "{{ ebsnvme_scrip_helper_path }}" + mode: a+x + + - name: centos | template udev rule + template: + src: '70-ec2-nvme-devices.rules.j2' + dest: '/etc/udev/rules.d/70-ec2-nvme-devices.rules' + mode: 0755 + register: udev_rule + + - name: centos | reload and trigger udev rules + shell: + cmd: udevadm control --reload-rules && udevadm trigger + when: udev_rule.changed diff --git a/tasks/centos.yml b/tasks/centos.yml index 47ee01c..f67e84e 100644 --- a/tasks/centos.yml +++ b/tasks/centos.yml @@ -5,74 +5,8 @@ state: present become: true -- name: centos | check for nvme devices - shell: | - set -o pipefail - cat /proc/partitions | awk '{print $4}' | grep -q nvme. ; echo $? - args: - executable: /bin/bash - register: blkdev_nvme - changed_when: false - -- name: centos | check for amazon ebs devices - shell: | - set -o pipefail - lsblk -O -J | grep -qi "amazon elastic block store" ; echo $? - register: blkdev_awsebs - changed_when: false - args: - executable: /bin/bash - -- name: centos | set flag for nvme subsystem - set_fact: - device_is_nvme: "{{ true if (blkdev_nvme.stdout == '0') else false }}" - -- name: centos | set flag for aws ebs devices - set_fact: - device_is_awsebs: "{{ true if (blkdev_awsebs.stdout == '0') else false }}" - -- name: Block to map renamed ec2 ebs nvmeXnY devices to their original sdX/xvdX names - when: device_is_nvme and device_is_awsebs|bool - become: true - block: - - name: centos | download nvme mapping binary helper - get_url: - url: "{{ ebsnvme_binary_helper_url }}" - dest: "{{ ebsnvme_binary_helper_tmp }}/" - changed_when: false - - - name: centos | extract binary helper - unarchive: - src: "{{ ebsnvme_binary_helper_tmp }}/{{ ebsnvme_binary_helper_file }}" - dest: "{{ ebsnvme_binary_helper_tmp }}/" - remote_src: yes - mode: 0755 - changed_when: false - - - name: centos | copy binary helper - copy: - src: "{{ ebsnvme_binary_helper_tmp }}/go-ebsnvme" - dest: "{{ ebsnvme_binary_helper_path }}" - mode: a+x - remote_src: yes - - - name: centos | template script helper - template: - src: 'ebsnvme-id.j2' - dest: "{{ ebsnvme_scrip_helper_path }}" - mode: a+x - - - name: centos | template udev rule - template: - src: '70-ec2-nvme-devices.rules.j2' - dest: '/etc/udev/rules.d/70-ec2-nvme-devices.rules' - mode: 0755 - register: udev_rule - - - name: centos | reload and trigger udev rules - shell: - cmd: udevadm control --reload-rules && udevadm trigger - when: udev_rule.changed +- include_tasks: amazon.yml + when: ansible_system_vendor == 'Amazon EC2' - name: centos | installing sg3_utils package: