Взаимодействие сценария оболочки Chef

У меня есть рецепт в Chef, который использует команды execute для подключения к репозиторию и установки демона, а затем его настройки и запуска.

Когда apt-get install запускается, для продолжения требуется подтверждение пользователя (ввод Y/N) после того, как он определит, сколько места необходимо. Как это можно сделать программно в Chef?


person caroline    schedule 08.09.2011    source источник


Ответы (1)


Просто передайте --yes в apt-get install, и интерактивный запрос не появится. У Chef также есть библиотеки абстракции пакетов более высокого уровня, которые могут сделать это за вас.

package 'foo' do
    action :install
end
person Peter Lyons    schedule 08.09.2011
comment
Спасибо - это решает проблему подтверждения, но перед тем, как программа установки завершит работу, она также спросит, хочет ли пользователь зарегистрировать машину у провайдера. Есть ли общий способ дать ответ на все подсказки? - person caroline; 08.09.2011
comment
Это звучит как подсказка, которую создает ваш пакет (возможно, с помощью одного из его сценариев pre/post). Какой конкретно пакет вы устанавливаете? Вы смотрели его справочную страницу или документацию? А можно уточнить, что вы имеете в виду под регистрацией у провайдера? - person Peter Lyons; 08.09.2011
comment
Это подсказка, специфичная для пакета — она спрашивает, следует ли зарегистрировать машину с учетной записью пользователя на веб-сайте компании. Есть ли способ обойти это, ответив нет? - person caroline; 09.09.2011
comment
Посмотрите документы для этого пакета для аргумента командной строки или другого способа принудительного неинтерактивного режима. Что-то простое, например выполнение echo yes | apt-get install --yes mypackage, также может сработать, если скрипт просто читает со стандартного ввода. - person Peter Lyons; 09.09.2011
comment
Он использует стандартный ввод — использование echo отлично сработало. Благодарю вас! - person caroline; 09.09.2011