【问题标题】:Differentiate Amazon Linux 2 and Amazon Linux AMI 2018.03.0 in Ansible Script在 Ansible 脚本中区分 Amazon Linux 2 和 Amazon Linux AMI 2018.03.0
【发布时间】:2020-05-18 17:41:53
【问题描述】:

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

我的目标是根据操作系统的差异运行不同的命令(使用 ansible 脚本)(尤其是在 Amazon Linux 2 和 Amazon Linux 2018.03.0 之间)。

【问题讨论】:

  • 嗨,ram n,欢迎来到 SO。您能否edit your post 包含每个分发版的/etc/os-release 文件中的内容,和/或运行/usr/bin/lsb_release 的输出?如果您发布您已经尝试过但对您不起作用的内容也会很有帮助

标签: amazon-ec2 ansible amazon-ami ansible-facts


【解决方案1】:

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

when: ansible_distribution_major_version == "2018"

【讨论】:

    【解决方案2】:

    您可以为此使用以下 ansible 事实,

    {{ hostvars[inventory_hostname].ansible_distribution }}
    

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-08
      • 2020-07-27
      • 2022-06-18
      • 2022-05-25
      • 2015-01-16
      • 2012-01-13
      • 2011-07-17
      • 2017-01-14
      • 2014-12-03
      相关资源
      最近更新 更多