限制用户在 ansible awx 提示符上提供星号 *

限制用户在 ansible awx 提示符上提供星号 *

我正在尝试通过 Ansible AWX 为我们的用户创建一个自助服务作业模板,并希望限制用户提及他们想要运行作业的确切主机详细信息。

在测试过程中我注意到,如果在限制上(我在启动时启用了提示)提供“*”,它会在库存中的每个节点上执行,这是我想避免并且不让它发生的事情。

所以让我先向你解释一下我的要求

  1. 用户将以自己的身份登录并运行作业模板。此作业模板需要在该用户提到的节点或节点模式或组上运行。
  2. 所以我不想将此剧本的执行限制在单个组或多个组中,我想提示用户提供他们想要执行此剧本的主机名。

我如何努力实现这一目标

  1. 这是我的剧本(再次说明一下,这只是一个例子)
---
- 主机:“{{ 目标 }}”
  gather_facts:否

  任务:

  - name:收集主机名信息
    shell:主机名
    注册:hostname_result

  - 调试:var=hostname_result.stdout_lines
  1. 我已经创建了一个作业模板,并使用 Survey 提供他们想要运行此作业的主机名。

我看到当我们在该调查上加上*时,这个作业模板会在所有主机上执行,而这并不是我们想要的。

谁能告诉我如何限制用户输入准确的主机详细信息,而不是任何正则表达式或*?

感谢你的帮助。

答案1

下面的解决方案对我有用....

---
- 主机:“{{ 目标 }}”
  gather_facts:否

  任务:

  - 名称:您不能将星号作为目标主机
    元:end_play
    当:目标 == '*'

  - name:收集主机名信息
    shell:主机名
    注册:hostname_result

  - 调试:var=hostname_result.stdout_lines

相关内容