我正在尝试通过 Ansible AWX 为我们的用户创建一个自助服务作业模板,并希望限制用户提及他们想要运行作业的确切主机详细信息。
在测试过程中我注意到,如果在限制上(我在启动时启用了提示)提供“*”,它会在库存中的每个节点上执行,这是我想避免并且不让它发生的事情。
所以让我先向你解释一下我的要求
- 用户将以自己的身份登录并运行作业模板。此作业模板需要在该用户提到的节点或节点模式或组上运行。
- 所以我不想将此剧本的执行限制在单个组或多个组中,我想提示用户提供他们想要执行此剧本的主机名。
我如何努力实现这一目标
- 这是我的剧本(再次说明一下,这只是一个例子)
--- - 主机:“{{ 目标 }}” gather_facts:否 任务: - name:收集主机名信息 shell:主机名 注册:hostname_result - 调试:var=hostname_result.stdout_lines
- 我已经创建了一个作业模板,并使用 Survey 提供他们想要运行此作业的主机名。
我看到当我们在该调查上加上*时,这个作业模板会在所有主机上执行,而这并不是我们想要的。
谁能告诉我如何限制用户输入准确的主机详细信息,而不是任何正则表达式或*?
感谢你的帮助。
答案1
下面的解决方案对我有用....
--- - 主机:“{{ 目标 }}” gather_facts:否 任务: - 名称:您不能将星号作为目标主机 元:end_play 当:目标 == '*' - name:收集主机名信息 shell:主机名 注册:hostname_result - 调试:var=hostname_result.stdout_lines