期望使用 ansible 进行某种操作

pexpect kind of operation with ansible

我希望使用 ansible 自动化交互式安装过程。此安装没有静默安装选项或不采用交互式问题的命令行参数。该问题涉及设置文件夹位置、确保文件夹位置正确等,答案可能是默认的或自定义的。 我查看了 ansible 的 expect 模块,但似乎并没有解决我的目的。

- expect:
command: passwd username
responses:
  (?i)password: "MySekretPa$$word"

我不需要命令,但它是必需的。相反,我正在寻找可以正则表达式 Are you sure you want to continue [y|n]? [n]: 的东西,我想为其发送默认值 By sending return or typing n as a response,例如 Backup directory [/tmp],其响应将是 Carriage return

I don't need the command but it's required. Instead I am looking for something that could regex Are you sure you want to continue [y|n]? [n]:

The module 需要 command 因为你必须 运行 某些东西 才能得到任何输出。

您显然确实有一个命令,因为您已手动 运行 它并看到了它产生的输出。这就是您应该插入模块的内容。

或者,您可以自己编写 pexpect 脚本并使用 commandshell 模块 运行 它。

我找到了适合我的方法。我将参数传递给 shell 脚本,当 运行 手动需要答案时。就像 ./shell.sh <<< 'answer1\nanswer2\n' 一样,它非常适合我。这个我已经添加到任务中了。