我在ubuntu机器上使用AWS EC2 我想创建一个卷,每次创建计算机时,都需要将其连接并安装到计算机上。
请注意,这是单个现有卷,并且一次只能安装到一台计算机上。我需要启动一个竞价型实例并每次以自动方式附加和挂载该卷
到目前为止,我使用aws-cli创建机器,然后使用attaching the volume using the cli,找不到将卷安装到机器的方法(我不想使用ssh来这台机器)我曾考虑过使用aws run command来尝试这样做,但在那里找不到安装命令。通过其他一些工具的cli是否有任何编程方式可以做到这一点?
答案 0 :(得分:0)
您可以为此编写一个CloudFormation脚本。这是一个基础架构即代码工具,使您能够在一个简单的yml文件中创建大多数AWS资源。
要安装磁盘,可以先将其连接,然后通过用户数据部分将其安装到所需的目录中。
我将在下面为您添加一个示例代码。
Resources:
server1:
Type: 'AWS::EC2::Instance'
Properties:
DisableApiTermination: 'true'
AvailabilityZone: us-east-1c
ImageId:
Ref: AMI
InstanceType:
Ref: InstanceType
KeyName:
Ref: KeyName
SecurityGroupIds:
- Ref: WebSG
IamInstanceProfile:
Ref: InstanceProfile
SubnetId:
Ref: SubnetId
BlockDeviceMappings:
- DeviceName: /dev/sda1
Ebs:
VolumeSize:
Ref: RootVolumeSize
VolumeType: gp2
- DeviceName: /dev/sde
Ebs:
VolumeSize:
Ref: AppVolumeSize
VolumeType: gp2
UserData:
'Fn::Base64': !Sub |-
#!/bin/bash -v
yum update -y aws-cfn-bootstrap
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
date > /home/ec2-user/starttime
#Partition new disks
echo -e "o\nn\np\n1\n\n\nw" |fdisk /dev/xvde
#Make Folders to mount new disks
mkdir /APP
#Format disks
mkfs.ext3 /dev/xvde1
#Mount New Disks
mount /dev/xvde1 /APP
#Add mounts to FSTab so it will stick in reboot
echo "/dev/xvde1 /APP ext3 defaults 0 2" >> /etc/fstab
date > /home/ec2-user/stoptime
echo END
要安装现有卷,请在参数中定义卷ID,例如,将其定义为“ AppVolume”,然后使用以下代码块将其安装到实例中
MountPoint:
Type: AWS::EC2::VolumeAttachment
Properties:
InstanceId: !Ref 'Ec2Instance'
VolumeId: !Ref 'AppVolume'
Device: /dev/sdh
中了解更多信息