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 之前退出命令。使用廚師自動執行此類安裝的正確方法是什麼?除了簡單地重寫 install.sh 腳本來忽略 EULA 行。
還將輸出重定向到某處。
more
如果標準輸出不是終端,它將簡單地顯示整個文件而不暫停,然後退出。例如:
./install.sh < response.txt | cat
雖然你真的應該在這樣
expect
的場景中使用類似的東西。