首页 > 解决方案 > 如何在 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

解决方案


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在其他脚本中使用变量


推荐阅读