Ansible 根据条件创建变量

San*_*och 2 ansible ansible-playbook

我想根据分布创建一个变量,以下代码不起作用,我不知道为什么:

- name: Get Release
  vars: release: xenial
  when: (ansible_distribution_release == 'qiana') or 
        (ansible_distribution_release == 'rebecca') or 
        (ansible_distribution_release == 'rafaela') or 
        (ansible_distribution_release == 'rosa')
Run Code Online (Sandbox Code Playgroud)

udo*_*dan 5

以下代码不起作用,我不知道为什么

因为没有名为vars.

您可以使用set_fact 模块执行此操作

- name: Get Release
  set_fact:
    release: xenial
  when: (ansible_distribution_release == 'qiana') or 
        (ansible_distribution_release == 'rebecca') or 
        (ansible_distribution_release == 'rafaela') or 
        (ansible_distribution_release == 'rosa')
Run Code Online (Sandbox Code Playgroud)

  • 为了美观,我会使用:`when: ansible_distribution_release in ['qiana', 'rebecca', 'rafaela', 'rosa']` (5认同)