如何在 Ansible aws_ec2 插件中使用变量

问题描述 投票:0回答:1

我想根据我在运行脚本时定义的环境标签过滤 ec2 实例,即

ansible-playbook start.yml -e env=dev

不过,插件好像没有解析变量。关于如何完成这项任务的任何想法?

我的 aws_ec2.yml:

---
  plugin: aws_ec2
  regions:
    - eu-central-1
  filters:
          tag:Secure: 'yes'
          tag:Environment: "{{ env }}"

  hostnames:
    - private-ip-address
  
  strict: False
  groups:
  keyed_groups:
          - key: tags.Function
            separator: ''

编辑

运行 playbook 时不会出现错误消息。 ansible 将变量完全作为字符串处理的唯一问题

tag:Environment: "{{ env }}"
而不是值
tag:Environment: dev

variables amazon-ec2 ansible
1个回答
0
投票

这篇文章已经有几年了,但是因为这似乎仍然是一个问题我想分享我们的解决方法:

在开始实际的管道之前,我们使用 Ansible 本身从模板生成清单插件文件。在此之后,将通过运行

ansible-inventory -i aws_ec2.yml ..
等创建库存。

使用这种方法,我们不必为每个组合创建新的清单插件文件,也不必为实际的剧本重用变量。

也许将来有人会觉得这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.