我试图找出如何将“主”剧本中定义的 Ansible 剧本变量传递到我已经在我的主剧本中引用的其他剧本中。
例如,使用下面的“主”剧本,我想将sethostname和setipaddress的值传递给我的任务部分中引用的剧本 [1-3].yml。这类似于调用其他编程语言中的函数。
---
- hosts: all
become: yes
vars_prompt:
- name: "sethostname"
prompt: "What will be the machine's hostname?"
private: no
- name: "setipaddress"
prompt: "What will be the machine's IP address?"
private: no
tasks:
- include: playbook1.yml
- include: playbook2.yml
- include: playbook3.yml
Run Code Online (Sandbox Code Playgroud)
从 Ansible 2.4 开始,您现在可以导入剧本,这意味着它们将在解析剧本时进行预处理,并将按照您导入的顺序运行。查看文档以获取有关导入与包含此处的完整信息http://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_includes.html
您可以像传递其他 include_* 任务一样将变量传递给它们。
tasks:
- import_playbook: playbook1.yml
vars:
sethostname: "{{ sethostname }}"
setipaddress "{{ setipaddress }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |