Мне нужно включить res-client в мой модуль, чтобы использовать RestClient :: Resource.
Я использую метод в модуле из рецепта шеф-повара (ресурс ruby_block).
Когда мой ресурс ruby_block пытается запустить метод в модуле, он выводит эту ошибку:
ОШИБКА: невозможно загрузить такой файл - rest-client
Мой модуль находится в папке библиотеки:
module SecretServer
def fetch_token
payload = { :username => "***", :password => "***", :grant_type => "****"}
uri = ***
request = RestClient::Resource.new(uri, :verify_ssl => false)
post_request = request.post payload, :content_type => 'application/x-www-form-urlencoded'
token = JSON.parse(post_request)["access_token"]
return token
end
end
require 'rest-client'
Chef::Recipe.include(SecretServer)
Chef::Resource.include(SecretServer)
Ниже приведен ресурс, вызывающий функцию в модуле:
ruby_block 'parse data' do
block do
res = fetch_token
puts res
end
end
Это только один из нескольких рецептов в моей кулинарной книге. Этот рецепт запускается после того, как целевой узел почти готов и на целевом узле была выполнена «установка комплекта».
Я также устанавливаю rest-client в целевой узел. Я пробовал каждый из следующих ресурсов перед моим ресурсом ruby_block:
chef_gem 'rest-client' do
action :install
end
gem_package 'rest-client' do
action :install
end
У меня вопрос, как включить «rest-client» и использовать его в рецептах шеф-повара?