У меня есть ansible-playbook, который создает несколько групп безопасности ec2, используя with_items, и регистрирует результат.
вот файл var для этой книги:
---
ec2_security_groups:
- sg_name: nat_sg
sg_description: This sg is for nat instance
sg_rules:
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: 0.0.0.0/0
- sg_name: web_sg
sg_description: This sg is for web instance
sg_rules:
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 80
to_port: 80
cidr_ip: 0.0.0.0/0
и вот playbook, который создает группы безопасности ec2:
---
- name: EC2Group | Creating an EC2 Security Group inside the Mentioned VPC
local_action:
module: ec2_group
name: "{{ item.sg_name }}"
description: "{{ item.sg_description }}"
region: "{{ vpc_region }}" # Change the AWS region here
vpc_id: "{{ vpc.vpc_id }}" # vpc is the resgister name, you can also set it manually
state: present
rules: "{{ item.sg_rules }}"
with_items: ec2_security_groups
register: aws_sg
Это работает очень хорошо, но проблема в том, что я хочу получить идентификатор группы каждой группы, созданной в этой книге для следующей задачи, я пробовал, но это не удалось:
- name: Tag the security group with a name
local_action:
module: ec2_tag
resource: "{{aws_sg.group_id}}"
region: "{{ vpc_region }}"
state: present
tags:
Name: "{{vpc_name }}-group"
with_items: aws_sg.results
Может ли кто-нибудь указать мне, как я могу получить group_id для каждой группы из результата регистрации. Спасибо
PS: я могу получить значение group_id для отдельной группы sg, например:
aws_sg.results[0].group_id и aws_sg.results[1].group_id и т. д.