无法通过用户数据命令将我现有的EBS卷(数据驱动器)附加到新启动的EC2实例(RHEL 8)上

时间:2019-06-15 19:21:15

标签: amazon-ec2

无法通过用户数据命令将现有的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实例。这没有发生。

1 个答案:

答案 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->设置了默认区域(因为它是我的),但是这里就来了!