在 Ansible 脚本中区分 Amazon Linux 2 和 Amazon Linux AMI 2018.03.0

Differentiate Amazon Linux 2 and Amazon Linux AMI 2018.03.0 in Ansible Script

在 ansible 脚本中,我想区分 A​​mazon Linux 2A​​mazon Linux AMI 2018.03.0 使用条件。就像我们使用 ansible_os_family 条件一样,ansible 中是否有任何条件函数可以用来区分这两者。

我的 Objective 是根据 os 的差异 运行 不同的命令(使用 ansible 脚本)( 尤其是亚马逊 Linux 2和亚马逊 Linux 2018.03.0).

您可以为此使用以下可靠的事实,

{{ hostvars[inventory_hostname].ansible_distribution }}

对于运行基于条件的不同任务,这样做

- name: <Task name goes here>
  import_tasks: yourtask.yml
  when: hostvars[inventory_hostname].ansible_distribution | lower == 'amazon linux 2'

A​​mazon Linux 2 与 2018.03.0 的 ansible_distribution_major_version 事实分别设置为 "2""2018",因此您可以将其用于您的条件,如下所示:

when: ansible_distribution_major_version == "2018"