From b669fc0a215500b02bfb3edd659be7533758332f Mon Sep 17 00:00:00 2001 From: Jake Buchholz Date: Sun, 30 Dec 2018 12:29:27 -0800 Subject: [PATCH] add mdev conf, links NVMEe devs to EBS xvd/sd devs --- alpine-ami.yaml | 6 ++++++ make_ami.sh | 9 +++++++++ nvme-ebs-links.sh | 20 ++++++++++++++++++++ nvme-ebs-mdev.conf | 3 +++ 4 files changed, 38 insertions(+) create mode 100755 nvme-ebs-links.sh create mode 100644 nvme-ebs-mdev.conf diff --git a/alpine-ami.yaml b/alpine-ami.yaml index 18e14e0..5991115 100644 --- a/alpine-ami.yaml +++ b/alpine-ami.yaml @@ -53,6 +53,12 @@ builders: provisioners: + - type: "file" + source: "nvme-ebs-links.sh" + destination: "/tmp/" + - type: "file" + source: "nvme-ebs-mdev.conf" + destination: "/tmp/" - type: "shell" script: "make_ami.sh" environment_vars: diff --git a/make_ami.sh b/make_ami.sh index 3db2eb1..7652edc 100755 --- a/make_ami.sh +++ b/make_ami.sh @@ -133,6 +133,7 @@ install_core_packages() { chroot "$target" apk --no-cache add \ linux-virt \ alpine-mirrors \ + nvme-cli \ chrony \ openssh \ sudo \ @@ -153,6 +154,13 @@ install_core_packages() { sed -i "s/^export PS1='/&\\\\u@/" "$target"/etc/profile } +setup_mdev() { + local target="$1" + + cp -a /tmp/nvme-ebs-links.sh "$target"/lib/mdev + sed -n -i -e '/# fallback/r /tmp/nvme-ebs-mdev.conf' -e 1x -e '2,${x;p}' -e '${x;p}' "$target"/etc/mdev.conf +} + create_initfs() { local target="$1" @@ -327,6 +335,7 @@ main() { install_extlinux "$target" einfo "Configuring system" + setup_mdev "$target" setup_fstab "$target" setup_networking "$target" enable_services "$target" diff --git a/nvme-ebs-links.sh b/nvme-ebs-links.sh new file mode 100755 index 0000000..ca8c4f6 --- /dev/null +++ b/nvme-ebs-links.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +[ -x /usr/sbin/nvme ] || exit + +case $ACTION in + add|"") + BASE=$(echo $MDEV | sed -re 's/^(nvme[0-9]+n[0-9]+).*/\1/') + PART=$(echo $MDEV | sed -re 's/nvme[0-9]+n[0-9]+p?//g') + EBS=$(/usr/sbin/nvme id-ctrl "/dev/$BASE" -b 2>/dev/null | dd bs=32 skip=96 count=1 2>/dev/null | tr -d ' ') + EBS=${EBS#/dev/}$PART + ln -sf $MDEV ${EBS/xvd/sd} + ln -sf $MDEV ${EBS/sd/xvd} + ;; + remove) + for TARGET in sd* xvd* + do + [ "$(readlink $TARGET 2>/dev/null)" = $MDEV ] && rm -f $TARGET + done + ;; +esac diff --git a/nvme-ebs-mdev.conf b/nvme-ebs-mdev.conf new file mode 100644 index 0000000..2d60927 --- /dev/null +++ b/nvme-ebs-mdev.conf @@ -0,0 +1,3 @@ +# ebs nvme links +nvme[0-9]+n[0-9]+.* root:root 0660 */lib/mdev/nvme-ebs-links.sh +