使用ansible进行操作

时间:2016-04-11 19:54:13

标签: ansible ansible-playbook pexpect

我希望使用ansible自动化交互式安装过程。此安装没有静默安装选项,或者不为交互式问题提供命令行参数。问题涉及设置文件夹位置,确保文件夹位置正确等,其答案可能是默认或自定义。 我查看了ansible的<td> <form method="post"> Enter four digit number/letter string <input type="text" name="name" maxlength="4"> <input type="submit" /> </form> </td> <?php if ($_POST ['name'] && $_POST ['name'] != "") { $x = urldecode ( $_POST ['name'] ); } else { $x = "not set"; } echo "$x" . "<br/>"; ?> </td> <td> <?php $x = urldecode ( $_POST ['name'] ); if (is_numeric ( $x )) { if ($x % 2 == 0) { return "It's even"; } else { return "It's odd"; } } echo "$x"; ?> </td> 模块,但似乎并没有解决我的目的。

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]

2 个答案:

答案 0 :(得分:1)

  

我不需要这个命令,但它是必需的。相反,我正在寻找可以正则表达式Are you sure you want to continue [y|n]? [n]:

的东西

The module需要command,因为您必须运行某些内容才能获得任何输出。

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

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

答案 1 :(得分:0)

我找到了一种对我有用的方法。我在shell脚本的参数中输入,当手动运行时需要答案。就像./shell.sh <<< 'answer1\nanswer2\n'一样,对我来说非常适合。我已将此添加到任务中。