Chef 交互式安装方法

Chef 交互式安装方法

我是 Chef 新手,正在尝试设置 Ubuntu VM 以通过自动安装我们的产品进行测试。我可以下载 .tgz、提取它并使用 bash 资源执行安装程序。

我遇到的问题是我们的安装脚本强制对命令行安装进行 EULA 检查。它在 shell 脚本中有类似以下内容:

# various statements and input to expect from stdin
echo "You must accept our EULA to install the software"

read ENTER
more EULA.txt

echo "Do you accept the EULA?"
# additional input expected from stdin

我可以使用响应文件轻松地从标准中添加预期的输入,然后使用 启动安装./install.sh < response.txt,但一旦more执行,此​​操作就会停止工作。more 命令看不到响应文件中的输入,并且仍然期望在接受 eula 之前使用“q”退出命令。

使用 chef 自动执行此类安装的正确方法是什么?除了简单地重写 install.sh 脚本以忽略 EULA 行之外。

答案1

还将输出重定向到某处more。如果标准输出不是终端,则将不暂停地显示整个文件,然后退出。

例如:

 ./install.sh < response.txt | cat

expect尽管对于这样的场景你确实应该使用类似的东西。

相关内容