【问题标题】:AWS CLI: Pass arguments to --user-data(shell-script) in aws ec2 run-instancesAWS CLI:在 aws ec2 run-instances 中将参数传递给 --user-data(shell-script)
【发布时间】:2017-07-04 07:42:57
【问题描述】:

我正在尝试通过 cli 启动 aws ec2 实例。

aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 \
 --instance-type t2.medium --key-name myKey \
 --security-group-ids sg-yyyyyyyy --subnet-id subnet-mysubnet \ 
 --region us-east-1 --user-data file://myscript

在启动时,我调用一个运行一些基本命令的 shell 脚本。 我想知道是否有办法将参数传递给这个

--user-data file://myscript

示例 shell 脚本:

echo $1
echo $2

【问题讨论】:

  • 我也有同样的问题。你有没有想过解决这个问题?
  • 不,但我找到了解决方法。我正在通过 Jenkins 执行脚本,所以我使用了“sed”命令。你可以在这里了解它geeksforgeeks.org/sed-command-in-unix 请检查下面 Frédéric Henri 和 John Rotenstein 的答案。
  • 好的,感谢您的快速响应。我们正在使用类似的解决方法 sigh ¯_༼ᴼل͜ᴼ༽_/¯

标签: aws-cli


【解决方案1】:

我不认为你可以,至少我们从来没有这样做过。

但是我们所做的是在我们的用户数据中安装 awcli 工具(例如通过 pip),并在 s3 上读取包含所有必要参数的 JSon 文件存储。

最后,它为我们在团队之间提供了更大的灵活性,因为没有触及云形成脚本,并且我们单独维护了我们必须安装的软件的值和版本。

【讨论】:

    【解决方案2】:

    您可以创建带有参数的myscript 文件,然后调用run-instances,也可以在命令行中传递参数:

    aws ec2 run-instances ... --user-data "#!\naws ec2 describe-instances --instance-id $INSTANCE\n"
    

    上面将 shell 变量插入到命令中,但这可能会有点混乱。最好有一个脚本来创建myscript 文件并将其传递给命令。

    【讨论】:

      猜你喜欢
      • 2013-12-19
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 2017-01-12
      • 2017-07-12
      • 1970-01-01
      • 2021-07-24
      相关资源
      最近更新 更多