Я использую ресурс http_request в рецепте шеф-повара, чтобы сделать http-запрос, требующий прокси-пользователя и пароля. Я сталкиваюсь с проблемой замены переменных, определенных в атрибутах или фактически любых переменных, например, следующий код работает нормально, где имя пользователя и пароль жестко запрограммированы.
http_request 'get-info' do
url "http://host:8080/v123/orgs/abc"
headers({ 'AUTHORIZATION' => "Basic #{ Base64.encode64('user1:pwd123')}",
'Content-Type' => 'application/json' } )
message ( "{ } " )
action :get
end
Но если я использую переменные вместо жестко закодированных учетных данных, таких как после
u_name=node['mychef']['username']
pwd=node['mychef']['password']
http_request 'get-info' do
url "http://host:8080/v123/orgs/abc"
headers({ 'AUTHORIZATION' => "Basic #{ Base64.encode64('#{u_name}:#{pwd}')}",
'Content-Type' => 'application/json' } )
message ( "{ } " )
action :get
end
тогда я получаю следующую ошибку
================================================================================
Error executing action `get` on resource 'http_request[get-info]'
================================================================================
Net::HTTPServerException
------------------------
401 "Unauthorized"
Конечно, учетные данные не читаются должным образом. Оцените справку о том, как подставить переменные в ресурс шеф-повара http_request.