Я новичок в шеф-поваре и пытаюсь настроить виртуальную машину Ubuntu для тестирования, автоматически устанавливая наш продукт. Я могу загрузить .tgz, извлечь его и запустить установщик, используя ресурс bash.
Проблема, с которой я столкнулся, заключается в том, что наш сценарий установки принудительно выполняет проверку EULA для установки из командной строки. В сценарии оболочки есть что-то похожее на следующее:
# 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 не видит входных данных из файла ответов и по-прежнему ожидает, что "q" завершит команду, прежде чем принять eula.
Как правильно выполнить такую установку автоматически с помощью chef? Помимо простого переписывания скрипта install.sh, чтобы игнорировать строку EULA.
Также перенаправьте вывод куда-нибудь. more
просто отобразит весь файл без паузы, а затем выйдет, если стандартный вывод не является терминалом.
Например:
./install.sh < response.txt | cat
Хотя вам действительно стоит использовать что-то вроде expect
для подобных сценариев.