diff options
author | Jake Buchholz <tomalok@gmail.com> | 2018-12-30 12:29:27 -0800 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2019-01-11 16:46:32 +0000 |
commit | b669fc0a215500b02bfb3edd659be7533758332f (patch) | |
tree | 961920ef4e18cb2a503ae537c280c324c09a6b9e | |
parent | 80807fa647fa92b14d27cfe53d8dfb6b10478b41 (diff) | |
download | alpine-ec2-ami-b669fc0a215500b02bfb3edd659be7533758332f.tar.bz2 alpine-ec2-ami-b669fc0a215500b02bfb3edd659be7533758332f.tar.xz alpine-ec2-ami-b669fc0a215500b02bfb3edd659be7533758332f.zip |
add mdev conf, links NVMEe devs to EBS xvd/sd devs
-rw-r--r-- | alpine-ami.yaml | 6 | ||||
-rwxr-xr-x | make_ami.sh | 9 | ||||
-rwxr-xr-x | nvme-ebs-links.sh | 20 | ||||
-rw-r--r-- | nvme-ebs-mdev.conf | 3 |
4 files changed, 38 insertions, 0 deletions
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: | |||
53 | 53 | ||
54 | 54 | ||
55 | provisioners: | 55 | provisioners: |
56 | - type: "file" | ||
57 | source: "nvme-ebs-links.sh" | ||
58 | destination: "/tmp/" | ||
59 | - type: "file" | ||
60 | source: "nvme-ebs-mdev.conf" | ||
61 | destination: "/tmp/" | ||
56 | - type: "shell" | 62 | - type: "shell" |
57 | script: "make_ami.sh" | 63 | script: "make_ami.sh" |
58 | environment_vars: | 64 | 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() { | |||
133 | chroot "$target" apk --no-cache add \ | 133 | chroot "$target" apk --no-cache add \ |
134 | linux-virt \ | 134 | linux-virt \ |
135 | alpine-mirrors \ | 135 | alpine-mirrors \ |
136 | nvme-cli \ | ||
136 | chrony \ | 137 | chrony \ |
137 | openssh \ | 138 | openssh \ |
138 | sudo \ | 139 | sudo \ |
@@ -153,6 +154,13 @@ install_core_packages() { | |||
153 | sed -i "s/^export PS1='/&\\\\u@/" "$target"/etc/profile | 154 | sed -i "s/^export PS1='/&\\\\u@/" "$target"/etc/profile |
154 | } | 155 | } |
155 | 156 | ||
157 | setup_mdev() { | ||
158 | local target="$1" | ||
159 | |||
160 | cp -a /tmp/nvme-ebs-links.sh "$target"/lib/mdev | ||
161 | sed -n -i -e '/# fallback/r /tmp/nvme-ebs-mdev.conf' -e 1x -e '2,${x;p}' -e '${x;p}' "$target"/etc/mdev.conf | ||
162 | } | ||
163 | |||
156 | create_initfs() { | 164 | create_initfs() { |
157 | local target="$1" | 165 | local target="$1" |
158 | 166 | ||
@@ -327,6 +335,7 @@ main() { | |||
327 | install_extlinux "$target" | 335 | install_extlinux "$target" |
328 | 336 | ||
329 | einfo "Configuring system" | 337 | einfo "Configuring system" |
338 | setup_mdev "$target" | ||
330 | setup_fstab "$target" | 339 | setup_fstab "$target" |
331 | setup_networking "$target" | 340 | setup_networking "$target" |
332 | enable_services "$target" | 341 | 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 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | [ -x /usr/sbin/nvme ] || exit | ||
4 | |||
5 | case $ACTION in | ||
6 | add|"") | ||
7 | BASE=$(echo $MDEV | sed -re 's/^(nvme[0-9]+n[0-9]+).*/\1/') | ||
8 | PART=$(echo $MDEV | sed -re 's/nvme[0-9]+n[0-9]+p?//g') | ||
9 | EBS=$(/usr/sbin/nvme id-ctrl "/dev/$BASE" -b 2>/dev/null | dd bs=32 skip=96 count=1 2>/dev/null | tr -d ' ') | ||
10 | EBS=${EBS#/dev/}$PART | ||
11 | ln -sf $MDEV ${EBS/xvd/sd} | ||
12 | ln -sf $MDEV ${EBS/sd/xvd} | ||
13 | ;; | ||
14 | remove) | ||
15 | for TARGET in sd* xvd* | ||
16 | do | ||
17 | [ "$(readlink $TARGET 2>/dev/null)" = $MDEV ] && rm -f $TARGET | ||
18 | done | ||
19 | ;; | ||
20 | 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 @@ | |||
1 | # ebs nvme links | ||
2 | nvme[0-9]+n[0-9]+.* root:root 0660 */lib/mdev/nvme-ebs-links.sh | ||
3 | |||