在条件下忽略Ansible中的区分大小写?

Mic*_*ael 3 ansible ansible-playbook ansible-role

我正在尝试创建一个依赖于其他角色的ansible角色,只有当它运行的机器的主机名包含某个字符串时.例如:

  dependencies:
- { role: example-role, when: "'hostname' in ansible_hostname" }
Run Code Online (Sandbox Code Playgroud)

实际上,当机器的主机名包含短语"hostname"时,该角色将运行.但是,我们建筑物中的许多机器都有大写的主机名,例如,它可能包含"HOSTNAME".在这种情况下,上述声明将不起作用.我怎样才能完成这项工作(除了重复该行并将"主机名"放在所有大写字母中)以忽略字母案例?

Dea*_*ter 7

将字符串转换为小写,只检查它.像这样:

  dependencies:
- { role: example-role, when: "'hostname' in ansible_hostname|lower" }
Run Code Online (Sandbox Code Playgroud)

  • `hostname` 不是变量。它已经是小写字符串:\ (4认同)
  • 我得到了“|lower”部分,但是为了让您的代码正常工作,两个字符串都必须降低。 (2认同)