无法通过用户数据命令将现有的EBS卷(数据驱动器)附加到新启动的EC2实例(RHEL 8)。我可以通过使用腻子并使用相同的命令集(而不是通过用户数据输入)连接服务器来手动附加EBS卷。
1)启动了免费的RHEL实例,并附加了EBS卷-X(数据 驱动器)通过AWS Web控制台访问它。卷X预计将存储 很少的应用程序数据。
2)通过腻子连接到EC2实例,并检查卷X是否可见 操作系统。 >
#fdisk -l </ p>
磁盘/ dev / xvdf:11 GiB,11811160064字节,23068672扇区
3)格式化/分区驱动器,如下所示 >
#/ sbin / mkfs -t ext3 / dev / xvdf
4)创建了一个目录来装入该卷。
#mkdir / mnt / data
5)更新了/ etc / fstab以确保即使在 服务器重启。以下是我所做的fstab条目。
#vi / etc / fstab
/ dev / xvdf / mnt / data ext4默认值,默认为0 0
6)重新启动。
7)#df -h >
Filesystem Size Used Avail Use% Mounted on devtmpfs 391M 0 391M 0% /dev tmpfs 410M 0 410M 0% /dev/shm tmpfs 410M 11M 400M 3% /run tmpfs 410M 0 410M 0% /sys/fs/cgroup /dev/xvda2 10G 1.1G 9.0G 11% / /dev/xvdf 11G 28M 11G 1% /IIG --> New mount point listed. tmpfs 82M 0 82M 0% /run/user/1000
8)安装了aws cli并进行了如下配置
$ sudo yum install -y python3
安装AWS CLI
$ pip3 install awscli --upgrade --user
$ aws configure
AWS访问密钥ID:abc123
AWS秘密访问密钥[无]:def456
默认区域名称[无]:us-west-2
默认输出格式[无]:
9)我仅在根设备上使用此EC2创建了AMI。
10)终止EC2。
11)在不增加容量的情况下从AMI启动了新的EC2,并在用户数据部分的输入下方提供了
#!/ bin / bash
instanceid = $(curl -s http://169.254.169.254/latest/meta-data/instance-id)
aws ec2 attach-volume --volume-id vol-abcd1234 --instance-id
echo instanceid
--device / dev / sdf睡觉20 挂载-a
12)EC2正常启动,但是卷X没有连接到它。
用户数据输入:
#!/ bin / bash
instanceid = $(curl -s http://169.254.169.254/latest/meta-data/instance-id)
aws ec2 attach-volume --volume-id vol-abcd1234 --instance-id`echo
$ instanceid` --device / dev / sdf
睡觉20
挂载-a
当我通过Putty连接EC2来手动运行用户输入命令时,它运行良好,并且X卷已正确连接到实例。卷X也列在df -h下。
预期结果是,通过AMI启动时,卷X会自动附加到新的EC2实例。这没有发生。
答案 0 :(得分:0)
我遇到了同样的问题,这是我的工作示例:
INSTANCE_ID=$(/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id)
/usr/bin/aws ec2 attach-volume --region eu-central-1 --volume-id vol-volidhere --instance-id $INSTANCE_ID --device /dev/sdh
是的,直到我添加--region
为止,什么都没有起作用。
而且我知道aws configure->设置了默认区域(因为它是我的),但是这里就来了!