Der*_*har 15 ansible ansible-playbook
一个变量中的Ansible剧本如何包含另一个剧本?register
例如,将以下寄存器执行的结果tasks/foo.yml中result_of_foo?
tasks:
- include: tasks/foo.yml
- register: result_of_foo
Run Code Online (Sandbox Code Playgroud)
Ansible如何记录任务序列的结果?
Bru*_*e P 12
简短的回答是,这是不可能做到的.
该寄存器语句用于单个任务的输出存入一个变量.注册变量的确切内容可以根据任务类型的不同而有很大差异(例如,shell任务将包括您在注册变量中运行的命令的stdout和stderr输出,而stat任务将提供传递给的文件的详细信息任务).
如果你有一个包含任意数量任务的包含文件,那么Ansible将无法知道你的例子中的变量应该存储什么.
包含文件中的每个单独任务都可以注册变量,您可以在其他地方引用这些变量,因此实际上甚至不需要执行此类操作.
小智 8
我能够通过将变量名称作为要在任务中使用的变量传递来实现此目的.我包括了我的main.yaml,并在下面包含了cgw.yaml文件.
main.yaml:
- name: Create App A CGW
include: cgw.yaml
vars:
bgp_asn: "{{ asn_spoke }}"
ip_address: "{{ eip_app_a.public_ip }}"
name: cgw-app-a
region: "{{ aws_region }}"
aws_access_key: "{{ ec2_access_key }}"
aws_secret_key: "{{ ec2_secret_key }}"
register: cgw_app_a
Run Code Online (Sandbox Code Playgroud)
cgw.yaml:
- name: "{{ name }}"
ec2_customer_gateway:
bgp_asn: "{{ bgp_asn }}"
ip_address: "{{ ip_address }}"
name: "{{ name }}"
region: "{{ region }}"
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
register: "{{ register }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46365 次 |
| 最近记录: |