将用户数据作为字符串传递给 aws cli ec2 运行-instance 命令

passing user-data as a string to aws cli ec2 run-instance command

我正在尝试提供 bash 命令以在创建期间以下列方式引导我的 ec2 实例

aws ec2 run-instances --image-id ami-0000025f7c02a13b2 --count 1 --instance-type t2.micro --user-data '#!/bin/bash\nyum install git -y'

我可以启动 ec2,但我无法使 bash 脚本运行。在日志中,我看到以下内容

/bin/bash\nyum: bad interpreter: No such file or directory

这让我觉得字符串格式错误。

尝试在您的用户数据字符串前添加一个 $

aws ec2 run-instances --image-id ami-0000025f7c02a13b2 --count 1 --instance-type t2.micro --user-data $'#!/bin/bash\nyum install git -y'

如果您打算加载一个长脚本,最好从这样的文件中加载脚本:

aws ec2 run-instances --image-id ami-abcd1234 --count 1 --instance-type m3.medium \
--key-name my-key-pair --subnet-id subnet-abcd1234 --security-group-ids sg-abcd1234 \
--user-data file://my_script.txt

你的文件应该是这样的:

#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on

查看有关在使用来自 this link

aws cli 时从文件加载数据的更多详细信息