Я пишу пользовательский Звездочка шеф кулинарной где мне нужно, чтобы запустить этот скриптИспользуя сценарий, который требует ввода данных пользователем с шеф-поваром кулинарной книги с бродягой
bash 'create asterisk keys' do
user 'root'
cwd File.dirname(source_path)
code <<-EOH
cd asterisk-#{node.version}*
./contrib/scripts/ast_tls_cert -C#{node.host} -O "#{node.box_name}" -d #{node.keys_dir}
EOH
action :nothing
end
Этот ast_tls_cert
скрипт запросит несколько входов пароля, но когда Я запускаю это через бродягу, ключи никогда не получаются, поскольку пароли никогда не вводятся. Есть ли способ сказать шеф-повару, что если скрипт требует ввода пользователем, просто используйте некоторую переменную ENV в качестве значения? Мне действительно не нужно останавливаться и спрашивать пользователя об ошибке. На самом деле, я бы предпочел, чтобы это не делалось. Я просто хочу указать некоторое значение и сказать ему, чтобы использовать это значение.
Понятно, что [этот скрипт] (http://svn.asterisk.org/svn/asterisk/trunk/contrib/scripts/ast_tls_cert) - это всего лишь удобная оболочка вокруг openssl. Вы можете напрямую выполнять вызовы команд openssl (что позволит использовать параметры командной строки -passin и -passout). Или даже вы можете просто использовать ruby в ruby_block с помощью модуля OpenSSL (http://ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL.html) – Charlie