Ansible 条件命令在运行 ubuntu 20.04 的 AWS 服务器上不起作用

Ansible 条件命令在运行 ubuntu 20.04 的 AWS 服务器上不起作用

我有许多 ansible 脚本,用于在 AWS 上的 ubuntu 服务器上执行命令。一个特定脚本需要同时在 ubuntu 和 Amazon Linux 实例上运行。

我有一个条件命令可以跳过 Amazon Linux 实例上的某些命令,这些命令以前一直运行良好,直到今天,当我尝试在添加的运行新 Ubuntu 版本(20.04 LTS)的新服务器上运行该脚本时。

该脚本及其中的条件在 Ubuntu 16.04、18.04 和 Amazon Linux 上运行良好,但在 Ubuntu 20.04 上失败。

这是我的脚本中失败的命令:

- name: AMAZON LINUX Create jail local file
  file:
    path: /etc/fail2ban/jail.local
    state: touch
    mode: "u=rw,g=r,o=r"
  when: ansible_distribution == "Amazon"

这是错误:

fatal: [MY_HOST]: FAILED! => {"msg": "The conditional check 'ansible_distribution == \"Amazon\"' failed. 
The error was: error while evaluating conditional (ansible_distribution == \"Amazon\"): 'ansible_distribution' is undefined\n\n
The error appears to have been in 'MY_PATH/main.yml': line 27, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\n
The offending line appears to be:\n\n\n- name: AMAZON LINUX Create jail local file\n  ^ here\n"}

我想知道这是否是 AWS 为新 Ubuntu 20.04 提供的新 AMI 的罪魁祸首——这听起来像是一个合理的解释,因为该脚本适用于其他服务器,但我该如何克服这个问题?

相关内容