ansible - 如何在 ansible 中运行 AWS 命令
问题描述
我正在尝试在 ansible 中获取 VPC ID 并将其传递给下一个任务,我在剧本中有以下声明:
- name: TO DISPLAY VPC ID
command: ID=`aws ec2 describe-vpcs --filter Name=tag:Name,Values=ANSIBLE_VPC --query Vpcs[].VpcId --output text`
然后得到错误:
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "'ID=`aws' ec2 describe-vpcs --filter Name=tag:Name,Values=ANSIBLE_VPC --query 'Vpcs[].VpcId' --output 'text`'", "msg": "[Errno 2] No such file or directory", "rc": 2}
如何运行该命令,然后将该 $ID 传递给下一个任务,它将用于子网、路由器、IGW 等......
解决方案
ansible 抱怨,因为它找不到您提供的命令ID=aws ...
您应该做的是执行aws
命令并注册 resutl 以供进一步访问
所以
- name: TO DISPLAY VPC ID
command: aws ec2 describe-vpcs --filter Name=tag:Name,Values=ANSIBLE_VPC --query Vpcs[].VpcId --output text
register: ID
从现在开始,您可以ID
在其他脚本中使用变量
推荐阅读
- android - 如果在突变查询中添加列表类型,graphql 不会在 android 中编译
- machine-learning - 非常规使用 RNN/LSTM
- php - 在我的网站中集成 Wordpress 帖子/博客
- python-3.x - Keras.utils 无法导入
- android - 搜索房间视图
- javascript - 从具有自定义键值的对象数组创建对象
- laravel - 反向排序 Laravel 雄辩的急切加载集合
- javascript - React.js 从 `componentWillMount` 上的数据库异步获取资产
- javascript - JavaScript 或 JQuery 从通过 for 循环生成的多个选择表中的选择选项中获取正确的选择值
- session - 如何提高tensorflow sess.run()的进动速度