2016-06-06 2 views
0

Я пытаюсь удалить следующую Баш команду из моего рубинового сценария:Используйте нож из рубина без Баш

nodes = "knife search 'chef_environment:#{env} AND recipe:#{microservice}' -i 2>&1 | tail -n 2" 
node = %x[ #{nodes} ].split 
node.each do |n| 
    puts n 
end 

И заменить его чем-то вроде этого:

node = Chef::Knife.search("chef_environment:#{env} AND recipe:#{microservice}").split 

Возможно ли это ? Есть ли какая-либо документация относительно шеф-повара: библиотека ножей в рубине и как ее использовать?

ответ

0

Чтобы получить доступ к серверу шеф-повара, вы можете попытаться использовать драгоценный камень ridley, который также используется Berkshelf и, таким образом, в целом обновляется.

пример использования может быть:

ridley = Ridley.from_chef_config('/path/to/knife.rb') 
ridley.search(:node, "chef_environment:#{env} AND recipe:#{microservice}") 

Смотрите документацию инкрустатора для более подробного описания его вариантов.

+0

терпит неудачу при чтении сертификата сервера ОШИБКА:: Актер разбился !, очевидно, поиск ножей работает. Ridley :: Errors :: ClientError: SSL_connect возвращается = 1 errno = 0 state = сертификат сертификата SSLv3 B –

+0

ваш сертификат сервера не доверен. – StephenKing

+0

Удостоверьтесь, что нож (а также удлинитель) доверяет сертификату SSL вашего шеф-повара. Для этого следуйте https://docs.chef.io/knife_ssl_check.html. –