【发布时间】:2018-02-01 15:59:48
【问题描述】:
我正在尝试使用 Ansible 在我现有的 ALB 上为未配置的 HTTP 侦听器创建规则。我通过检索 alb 的事实来开始事情,然后使用这些事实来定义 Ansible ALB 资源,添加我想要的规则,但我遇到了一个问题。
我希望 Ansible 循环遍历我的 group_vars 文件(它已经成功完成了其他任务)来创建这些多个规则。但是,在循环时,它不会将规则附加到侦听器,而是销毁/创建它们。因此,当剧本完成时,您只剩下一个规则来引用 vars 文件末尾定义的任何项目(在我的例子中是萨里)。
我的代码如下(为简洁起见,我排除了获取和设置事实的部分):
- name: Add HTTP listener rules
elb_application_lb:
state: present
name: "{{ albinfo.load_balancer_name }}"
subnets:
- "{{ albinfo.availability_zones[0].subnet_id }}"
- "{{ albinfo.availability_zones[1].subnet_id }}"
- "{{ albinfo.availability_zones[2].subnet_id }}"
security_groups:
- "{{ albinfo.security_groups[0] }}"
listeners:
- Protocol: HTTP
Port: 80
DefaultActions:
- Type: forward
TargetGroupName: default
Rules:
- Conditions:
- Field: host-header
Values: "{{ item.url }}"
Priority: "{{ item.priority }}"
Actions:
- TargetGroupName: "{{ item.name }}"
Type: forward
purge_listeners: no
with_items: "{{ regions }}"
我的“区域”变量文件如下所示:
regions:
- name: manchester
priority: 1
url:
- manchester.example.com
- name: surrey
priority: 2
url:
- surrey.example.com
【问题讨论】:
-
问题是什么?
-
如何让它按预期工作,所以当剧本完成时,我对听众有两条规则,一条适用于曼彻斯特,一条适用于萨里。谢谢。
标签: amazon-web-services ansible