Chef

互動式安裝的廚師食譜

  • March 29, 2014

我是廚師的新手,並試圖通過自動安裝我們的產品來設置一個 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 之前退出命令。

使用廚師自動執行此類安裝的正確方法是什麼?除了簡單地重寫 install.sh 腳本來忽略 EULA 行。

還將輸出重定向到某處。more如果標準輸出不是終端,它將簡單地顯示整個文件而不暫停,然後退出。

例如:

./install.sh < response.txt | cat

雖然你真的應該在這樣expect的場景中使用類似的東西。

引用自:https://serverfault.com/questions/585270