我想定义一个基于Linux发行版的全局var (_cfg_chrony):如果OS家族是Redhat,那么定义/etc/chrony.conf的配置路径;如果OS家族是Debian,则定义/etc/chrony/chrony.conf的配置路径。
在我的剧本开始时,我试着做这样的事情,但似乎它只应用了最后一个变量,而忽略了条件:
vars:
_cfg_chrony: /etc/chrony.conf
when: ansible_facts['os_family'] == "RedHat"
_cfg_chrony: /etc/chrony/chrony.conf
when: ansible_facts['os_family'] == "Debian"如何正确设置?
发布于 2022-07-27 08:37:10
在任务中定义事实
- name: "facts for debian - family"
set_fact:
_cfg_chrony: /etc/chrony.conf
when:
- ansible_os_family == "Debian"
- name: "facts for RH - family"
set_fact:
_cfg_chrony: /etc/chrony/chrony.conf
when:
- ansible_os_family == "RedHat"
- name: a task
ansible.builtin.debug:
var: _cfg_chrony或者另一种更短但更难读的方式:
- name: a task
ansible.builtin.debug:
var: _cfg_chrony
vars:
_cfg_chrony: "{{ ('/etc/chrony.conf' if (ansible_os_family == 'Debian')) or ('/etc/chrony/chrony.conf' if (ansible_os_family == 'RedHat')) }}"https://serverfault.com/questions/1106713
复制相似问题