Ansible EC2模块未检索实例信息

罗尔兹

我编写了一个艰巨的任务来创建ec2实例并将主机添加为动态主机。任务运行正常,并创建了实例,但是无法检索实例信息。

我的Ansible版本:2.2.0.0 / Ubuntu 14.04

这是我的代码

- name: launch ec2 instance for QA
  local_action:
    module: ec2
    key_name: "{{ ec2_keypair }}"
    group: "{{ ec2_security_group }}"
    instance_type: "{{ ec2_instance_type }}"
    image: "{{ ec2_image }}"
    vpc_subnet_id: "{{ ec2_subnet_ids }}"
    region: "{{ ec2_region }}"
    instance_tags: '{"Name":"{{ec2_tag_Name}}","Type":"{{ec2_tag_Type}}","Environment":"{{ec2_tag_Environment}}"}'
    assign_public_ip: yes
    wait: true
    count: 1
  register: ec2

- debug: var=item
  with_items: ec2.instances

- add_host: name={{ item.public_ip }} >
           groups=dynamically_created_hosts
  with_items: ec2.instances

- name: Wait for the instances to boot by checking the ssh port
  wait_for: host={{item.public_ip}} port=22 delay=60 timeout=320 state=started
  with_items: ec2.instances

得到的输出是:

任务[为质量检查启动ec2实例] ********************************************** ****
更改:[本地主机->本地主机]

任务[调试] ************************************************** *********************
好的:[localhost] =>(item = ec2.instances)=> {“ item”:“ ec2.instances”}

任务[add_host] ************************************************** ******************
致命:[本地主机]:失败!=> {“ failed”:true,“ msg”:“字段'args'的值无效,该值似乎包含未定义的变量。错误是:'unicode object'没有属性'public_ip'\ n \ n错误似乎出在'/var/lib/jenkins/jobs/QA/workspace/dynamic-ec2.yml'中:第37行第7列,但根据确切的语法问题可能不在文件的其他位置。 \ n \ n令人反感的行似乎是:\ n \ n \ n-add_host:名称= {{item.public_ip}}> \ n ^此处\ n我们可能是错的,但这看起来像是一个问题\ n缺少引号。\ n \ n开头时,总是用模板表达式括号引号,例如:\ n \ n with_items:

还有其他方法吗?

Techraf

您不能在2.2中使用裸变量。自2.0版以来,该语法已被弃用,并向用户发出警告。

您应该阅读粘贴的错误消息,尽管它表明了其他原因,但是您应该按照给出的示例进行操作:

Should be written as:
  with_items:
    - "{{ foo }}"

在您的情况下,with_items: ec2.instances用以下内容替换所有内容就足够了:

with_items: "{{ ec2.instances }}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ansible EC2模块以检索有关实例的信息

来自分类Dev

无法从Ansible中的ec2_scaling_policy模块检索AWS扩展策略信息

来自分类Dev

Ansible动态库存无法获取最新的ec2信息

来自分类Dev

Ansible动态库存无法获取最新的ec2信息

来自分类Dev

在EC2实例上运行ansible任务

来自分类Dev

使用Ansible启动AWS EC2实例的最佳方法

来自分类Dev

ansible ec2运行列表必须是实例列表

来自分类Dev

Ansible-如何启动(购买)保留的EC2实例

来自分类Dev

使用AWS凭证由Ansible创建EC2实例

来自分类Dev

使用Ansible连接到AWS EC2实例

来自分类Dev

Ansible:置备新分配的ec2实例

来自分类Dev

使用 Ansible 配置多个 EC2 实例

来自分类Dev

如何为ec2实例设置ansible?

来自分类Dev

ec2 实例的 Ansible wait_for 连接超时

来自分类Dev

Ansible AWS EC2安全组未更新

来自分类Dev

Amazon EC2-通过Ansible为用户创建AWS EC2实例失败

来自分类Dev

如何从Ansible中的实例ID获取EC2实例IP

来自分类Dev

Ansible和AWS EC2库存

来自分类Dev

Ansible和AWS EC2库存

来自分类Dev

Ansible:EC2设置和迭代

来自分类Dev

通过带有ansible的标签启动先前停止的EC2实例

来自分类Dev

如何在EC2实例中使用Ansible的sudo运行任务

来自分类Dev

尝试使用Ansible更改EC2实例的根volume_size时出错

来自分类Dev

使用Ansible设置EC2实例时遇到问题

来自分类Dev

如何用ansible终止属于同一安全组的多个ec2实例?

来自分类Dev

如何在EC2实例中使用Ansible的sudo运行任务

来自分类Dev

如何在Ansible中启动所有AWS EC2实例

来自分类Dev

Ansible:如何确定哪个 EC2 实例是当前节点以提取私有 IP

来自分类Dev

何时出现ansible剧本:设置了条件ec2标签

Related 相关文章

热门标签

归档