繁体   English   中英

使用配置文件作为变量的aws cli命令

[英]aws cli command using profile as variable

当前我正在使用ansible中的任务。该任务包括aws cli命令,如下所示:

command: aws ec2 describe-instances --region myregion --profile myawsprofile --filters

通过时它完美地工作

ansible-playbook my.yml 

现在我的问题是:我有多个aws配置文件,并且不想在aws cli命令(任务中)中使用硬代码。
想要为配置文件使用变量,因此,传递给配置文件的任何变量都将执行任务并运行ansible-playbook。

要求任何人建议如何进行此操作。

我在aws cli中查看了环境变量,但是并没有太大帮助。

如果您确实要使用命令任务而不是ec2_instance任务,则可以这样做:

command: aws ec2 describe-instances --region myregion --profile {{ myawsprofile }} --filters

然后运行您的剧本

ansible-playbook my.yml  -e "myawsprofile=production"

使用ec2_instance会更好。

除此之外,您可能还想查看其他100多个Amazon模块。

您有两个选择(将下面的[profile name]更改为实际值):

  • 为每个命令提供--profile [profile name]作为命令选项。
  • 或者,将配置文件设置为用作环境变量。 在Mac和Linux上,使用AWS_PROFILEAWS_DEFAULT_PROFILE

     $ export AWS_PROFILE=[profile name] 

    或在Windows上

     C:\\> setx AWS_PROFILE [profile name] 

使用后一种方法的优点是,一旦配置,它就在终端会话期间(或直到被另一个配置文件名称替换之前)保持其值。

参考:AWS CLI文档的“ 命名配置文件”一章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM