ansible include_vars文件,文件名为os和版本

ansible include_vars文件,文件名为os和版本,ansible,Ansible,我现在有多个角色来加载一些操作系统版本特定的变量: - name: load CentOS 7 variable include_vars: "CentOS-7.yml" when: - ansible_facts['distribution'] == "CentOS" - ansible_facts['distribution_major_version'] == "7" - name: load Ubuntu 18 variables include_vars:

我现在有多个角色来加载一些操作系统版本特定的变量:

- name: load CentOS 7 variable
  include_vars: "CentOS-7.yml"
  when:
    - ansible_facts['distribution'] == "CentOS"
    - ansible_facts['distribution_major_version'] == "7"

- name: load Ubuntu 18 variables
  include_vars: "Ubuntu-18.yml"
  when:
    - ansible_facts['distribution'] == "Ubuntu"
    - ansible_facts['distribution_major_version'] == "18"
我想有一个通用的角色;如何加载带有操作系统名称和版本的vars文件?差不多

- name: load OS specific variables
  include_vars: "{{distribution}}-{{distribution_major_version}}.yml"
你就快到了:

- name: load OS specific variables
  include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
这与使用
ansible\u facts
hash相同,但更紧凑。以下是等价物:

- name: load OS specific variables
  include_vars: "{{ ansible_facts['distribution'] }}-{{ ansible_facts['distribution_major_version'] }}.yml"
请注意,如果需要,可以使用更具体的加载变量。例如:

- name: look for the most specific os vars and drop to default
  include_vars: "{{ item }}"
  loop: "{{ query('first_found', { 'files': myfiles, 'paths': mypaths }) }}"
  vars:
    myfiles:
      - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
      - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
      - "{{ ansible_distribution }}.yml"
      - "default.yml"
    mypaths:
      - vars
      - someother/vars/dir

你就快到了:

- name: load OS specific variables
  include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
这与使用
ansible\u facts
hash相同,但更紧凑。以下是等价物:

- name: load OS specific variables
  include_vars: "{{ ansible_facts['distribution'] }}-{{ ansible_facts['distribution_major_version'] }}.yml"
请注意,如果需要,可以使用更具体的加载变量。例如:

- name: look for the most specific os vars and drop to default
  include_vars: "{{ item }}"
  loop: "{{ query('first_found', { 'files': myfiles, 'paths': mypaths }) }}"
  vars:
    myfiles:
      - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
      - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
      - "{{ ansible_distribution }}.yml"
      - "default.yml"
    mypaths:
      - vars
      - someother/vars/dir