嗨,我能够在下面的剧本中获得所需的输出,其中我正在使用以下 2 个任务,aws-create-rds
并且aws-create-route53-record
---
# Playbook for creating aws rds instance and then creating route53 dns record.
- name: setup aws-rds-instances
hosts: localhost
roles:
- aws-create-rds
的任务定义aws-create-rds
如下。
---
- name: create an rds instance
rds:
command: create
aws_access_key: "{{ aws_create_rds.access_key }}"
aws_secret_key: "{{ aws_create_rds.secret_key }}"
db_name: "{{ aws_create_rds.db_name }}"
instance_name: "{{ aws_create_rds.name }}"
db_engine: "{{ aws_create_rds.db_engine }}"
size: "{{ aws_create_rds.db_size }}"
instance_type: "{{ aws_create_rds.instance_type }}"
username: "{{ aws_create_rds.username }}"
password: "{{ aws_create_rds.password }}"
subnet: "{{ aws_create_rds.subnet }}"
region: "{{ aws_create_rds.region }}"
zone: "{{ aws_create_rds.zone }}"
publicly_accessible: "{{ aws_create_rds.access }}"
backup_retention: "{{ aws_create_rds.retention }}"
vpc_security_groups: "{{ aws_create_rds.aws_sg_name }}"
port: "{{ aws_create_rds.port }}"
wait: yes
wait_timeout: 900
tags:
created_by: ansible
register: rds
- name: Create a route53 record for RDS instance.
route53:
state: present
aws_access_key: "{{ aws_create_route53_record.access_key }}"
aws_secret_key: "{{ aws_create_route53_record.secret_key }}"
zone: "{{ aws_create_route53_record.zone }}"
hosted_zone_id: "{{ aws_create_route53_record.id }}"
type: "{{ aws_create_route53_record.type }}"
value: "{{ rds.instance.endpoint }}"
record: "{{ aws_create_route53_record.record }}"
private_zone: "{{ aws_create_route53_record.private_zone }}"
ttl: 30
现在,由于此任务中有 2 个任务,我希望他们分成 2 个不同的角色。第一个aws-create-rds
和第二个,因为aws-create-route53-record
我希望将来在 ansible 中将它们用作独立角色,但是我不确定如何传递endpoint
来自aws-create-rds
任务的值并将其传递给aws-create-route53-record
并value
在route53
dns 记录中使用它。我检查了 rds 模块文档,其中没有端点的返回值。下面给出了 2 个用例。
1. route53 record value can be passed through group_vars OR
2. route53 record value can be passed from any previous ansible task executed.
我想处理aws-create-route53-record
任务中的两个条件。任何线索如何实现这一点。环境变量或任何东西。提前致谢。
为了实现这一点,我编写了 2 个不同的角色/任务并在剧本中调用它们。下面是任务。首先称为 aws-create-rds
第二个任务是 aws-create-route53-record。