Ansible 在角色之间共享重复的代码块
在我的大多数角色的开头,有以下代码块。它尝试加载操作系统和特定于版本的变量和任务。我是否可以不为我的每个角色重复这段代码Ansible 在角色之间共享重复的代码块,ansible,ansible-playbook,ansible-2.x,Ansible,Ansible Playbook,Ansible 2.x,在我的大多数角色的开头,有以下代码块。它尝试加载操作系统和特定于版本的变量和任务。我是否可以不为我的每个角色重复这段代码 --- - name: Include OS specific variables. include_vars: "{{ item }}" with_first_found: - files: - "vars/{{ ansible_os_family }}.yml" skip: True - name: Include distri
---
- name: Include OS specific variables.
include_vars: "{{ item }}"
with_first_found:
- files:
- "vars/{{ ansible_os_family }}.yml"
skip: True
- name: Include distribution specific variables.
include_vars: "{{ item }}"
with_first_found:
- files:
- "vars/{{ ansible_distribution }}.yml"
skip: True
- name: Include version specific variables.
include_vars: "{{ item }}"
with_first_found:
- files:
- "vars/{{ ansible_distribution }}{{ ansible_distribution_major_version }}.yml"
skip: True
- name: Run OS specific preparation work.
include: "{{ item }}"
with_first_found:
- files:
- "tasks/{{ ansible_os_family }}.yml"
skip: True
- name: Run distribution specific preparation work.
include: "{{ item }}"
with_first_found:
- files:
- "tasks/{{ ansible_distribution }}.yml"
skip: True
- name: Run version specific preparation work.
include: "{{ item }}"
with_first_found:
- files:
- "tasks/{{ ansible_distribution }}{{ ansible_distribution_major_version }}.yml"
skip: True
是的,您可以使用从外部共享文件中拉入任务。我主要关心的是,如果使用include或其他角色,查找路径是否正确。如果我使用另一个角色,它如何查看该角色的
vars
目录?您有任何工作示例吗?您是对的,角色只会在传递相对路径时查看相邻目录。但是我猜,如果你选择单独的角色(我建议不管怎样)。您将在该公共角色中拥有所有这些变量/任务。