gpt4 book ai didi

amazon-web-services - 仅使用 ebs 卷 ID 自动挂载 ebs 卷

转载 作者:行者123 更新时间:2023-12-02 21:23:21 26 4
gpt4 key购买 nike

假设您有一组用于数据的 ebs 卷,并且您经常将这些相同的一组 EBS 卷安装到随时间变化的 ec2 节点(因为您每次不再需要它时都会杀死它并创建一个新的)当您再次需要它时),但在每个创建的 ec2 实例上可能有不同的 virtype、操作系统、实例类型等(无论出于何种原因),当您全部创建时,在给定的 ec2 实例上自动安装这些 EBS 卷的最佳方法是什么?有 ebs 卷 id 和访问 ec2 api 来获取 ebs 设备名称吗?

有什么程序可以做到这一点吗?

顺便说一句,我不是在谈论附加卷,而是有兴趣在创建实例时自动安装到操作系统文件系统上的已知目录,因为与 ec2 上的设备名称相比,设备名称因操作系统而异,而且它也是首选在/etc/fstab 中使用 UUID 而不是设备名称。

最佳答案

使用文件系统标签:

$ tune2fs -L "disk1" /dev/xvdf
$ tune2fs -L "disk2" /dev/xvdg

在/etc/fstab 中:

LABEL=disk1 /disk1 auto defaults 0 2
LABEL=disk2 /disk2 auto defaults 0 2

在你的/etc/rc.local中:

# Note: You could store the volume-ids and devices in the ec2 tags of your instance.

INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id)
export AWS_DEFAULT_REGION=$(curl http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/[a-z]$//')

aws ec2 attach-volume --volume-id vol-1234abcd --instance-id $INSTANCE_ID --device /dev/xvdf
aws ec2 attach-volume --volume-id vol-1234abcf --instance-id $INSTANCE_ID --device /dev/xvdg

# wait for them to mount
until [ "$(aws ec2 describe-volume-status --volume-id vol-1234abcd --query 'VolumeStatuses[0].VolumeStatus.Status' --output text)" = ok ]; do sleep 5; done

until [ "$(aws ec2 describe-volume-status --volume-id vol-1234abcf --query 'VolumeStatuses[0].VolumeStatus.Status' --output text)" = ok ]; do sleep 5; done

# mount /etc/fstab entries
mount -a

# I also store the EIP as a tag
EIP="$(aws ec2 describe-instances --instance-id $INSTANCE_ID --query 'Reservations[*].Instances[*].[Tags[?Key==`EIP`]|[0].Value]' --output text)"
if [ $? -eq 0 ] && [ "$EIP" != "" ] && [ "$EIP" != "None" ]; then
aws ec2 associate-address --instance-id $INSTANCE_ID --public-ip "$EIP" --query 'return' --output text
fi

关于amazon-web-services - 仅使用 ebs 卷 ID 自动挂载 ebs 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26256213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com