【发布时间】:2019-11-01 20:29:57
【问题描述】:
在此先感谢您提供任何建议/帮助。
我已经尝试过 shell / 命令模块的“期望”和多次迭代,但都没有提供我(我想象其他人)在这种情况下想要做的事情。与更广泛的群体联系,希望有一个我还没有找到的解决方案。
我们的软件有一个 shell 命令,可以打印出将要修改的文件列表,并提示用户继续使用标准的 [y/n] 提示符。与升级软件时 YUM 所做的类似,它会输出一堆输出并等待用户输入。
The following changes need to be made:
Create /home/XYZ-file
Enable and start the ABC service
Enable and start the DEF service
Allow? [y/N] n
有时,根据它列出的文件,我们不想继续...有时,我们愿意。所以我希望能够提示我的 ansible 用户并根据列表为他们提供选择。我知道这很烦人的人工干预,而不是自动化的精神,但是为了这一步,我们愿意放弃一些事情,让一个人真正查看这些文件并做出决定。
目前“期望”仅将预设输出与预设用户响应相匹配。我不想这样做,因为我不知道将向用户呈现哪些文件,所以我不能使用任何预设。
我想要的是显示 shell 命令的所有输出,并提示 ansible 用户根据输出做出决定。
发出命令并注册输出的简单任务:
- name: Issue XYZ command
shell: xyz
register: xyz_output
- debug: var=xyz_output.stdout
问题是在这种情况下 shell 命令挂起,因为 ansible 无法:
显示输出 & 提示 ansible 用户是否继续
非常感谢任何帮助!
【问题讨论】:
-
底层软件是否允许多次运行?我问是因为如果是这样,您可以在第一次运行它时为每个提示提供
n答案,然后您将有下次再次被问到的问题,因为它们都是n-ed 第一次(只要“n”采取“no”动作,系统就保持在它开始时的相同状态)