[英]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_PROFILE
或AWS_DEFAULT_PROFILE
$ export AWS_PROFILE=[profile name]
或在Windows上
C:\\> setx AWS_PROFILE [profile name]
使用后一种方法的优点是,一旦配置,它就在终端会话期间(或直到被另一个配置文件名称替换之前)保持其值。
参考:AWS CLI文档的“ 命名配置文件”一章
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.