Ruby Opscode 主管 API - POST authenticate_user
Ruby Opscode Chef API - POST authenticate_user
我正在尝试使用 Opscode Chef 对一位用户进行身份验证 API
require 'rubygems'
require 'chef/config'
require 'chef/log'
require 'chef/rest'
chef_server_url = 'http://127.0.0.1'
client_name = 'admin'
signing_key_filename = '/root/admin.pem'
rest = Chef::REST.new(chef_server_url, client_name, signing_key_filename)
puts rest.get_rest('/organizations/example/users/admin')
puts rest.get_rest('/organizations/example/clients')
puts rest.get_rest('/organizations/example/users')
bugabuga = {"username" => "admin","password" => "4dm1n1str4t0r"}
puts rest.post_rest('/organizations/example/authenticate_user', bugabuga)
但是我收到 POST 方法的 404。
这是输出
{"username"=>"admin", "email"=>"the_good@example.com", "display_name"=>"the administrator", "first_name"=>"the", "last_name"=>"administrator", "middle_name"=>"", "public_key"=>"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtilYX/92ZuEPcP7D2VQ4\nKyU5koWvzS9SkWwkvRI8nmH6C+ELWz9iDfwCb5r4ioZUYx56i1JB/srhdBQMhDKN\na2qyoqaEiIFkIKKJIqAg1h5UHDjxL/8SF9BTdcoMyDmr7tDd2gpfEOc1+ILaOSca\nY3TjfPbdM+eo5jyEuxGz+OnhuPx1KUwTmMFpVkNXR38R+sbzQWKJrjMhCo/6aIZk\niutH7MCeO9Ff60WeYd+B6PSz+r0UaryPaViFwIGk1AYuTRQJ+9yUAwJwGMIqAUQo\nzZPcgp4tSpqHLojtlDlNvPXRFgtqKMzsndBhbZSoiD1g4ZhWvTbLZlHo9wUQeEXj\nDQIDAQAB\n-----END PUBLIC KEY-----\n\n"}
{"example-validator"=>"https://127.0.0.1/organizations/example/clients/example-validator", "node01"=>"https://127.0.0.1/organizations/example/clients/node01"}
{"user"=>{"username"=>"admin"}}
/usr/lib/ruby/1.9.1/net/http.rb:2633:in `error!': 404 "Not Found" (Net::HTTPServerException)
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:199:in `block in raw_http_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:280:in `retriable_rest_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:164:in `raw_http_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:158:in `api_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:118:in `post'
from test.rb:18:in `<main>'
来自官方文档:https://docs.chef.io/api_chef_server.html#authenticate-user
我做不到。
知道我遗漏了什么吗?
读了几天后..我找到了向 Chef API 查询此 POST 方法的正确方法。
require 'rubygems'
require 'chef/config'
require 'chef/log'
require 'chef/rest'
chef_server_url = 'http://127.0.0.1'
client_name = 'admin'
signing_key_filename = '/root/admin.pem'
rest = Chef::REST.new(chef_server_url, client_name, signing_key_filename)
data = {"username" => "admin", "password" => "4dm1n1str4t0r" }
rest.post_rest('authenticate_user', data)
现在我收到一个 403,但至少 URL 路径是正确的,一旦我修复了被禁止的东西,我会把答案放上去..
我正在尝试使用 Opscode Chef 对一位用户进行身份验证 API
require 'rubygems'
require 'chef/config'
require 'chef/log'
require 'chef/rest'
chef_server_url = 'http://127.0.0.1'
client_name = 'admin'
signing_key_filename = '/root/admin.pem'
rest = Chef::REST.new(chef_server_url, client_name, signing_key_filename)
puts rest.get_rest('/organizations/example/users/admin')
puts rest.get_rest('/organizations/example/clients')
puts rest.get_rest('/organizations/example/users')
bugabuga = {"username" => "admin","password" => "4dm1n1str4t0r"}
puts rest.post_rest('/organizations/example/authenticate_user', bugabuga)
但是我收到 POST 方法的 404。
这是输出
{"username"=>"admin", "email"=>"the_good@example.com", "display_name"=>"the administrator", "first_name"=>"the", "last_name"=>"administrator", "middle_name"=>"", "public_key"=>"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtilYX/92ZuEPcP7D2VQ4\nKyU5koWvzS9SkWwkvRI8nmH6C+ELWz9iDfwCb5r4ioZUYx56i1JB/srhdBQMhDKN\na2qyoqaEiIFkIKKJIqAg1h5UHDjxL/8SF9BTdcoMyDmr7tDd2gpfEOc1+ILaOSca\nY3TjfPbdM+eo5jyEuxGz+OnhuPx1KUwTmMFpVkNXR38R+sbzQWKJrjMhCo/6aIZk\niutH7MCeO9Ff60WeYd+B6PSz+r0UaryPaViFwIGk1AYuTRQJ+9yUAwJwGMIqAUQo\nzZPcgp4tSpqHLojtlDlNvPXRFgtqKMzsndBhbZSoiD1g4ZhWvTbLZlHo9wUQeEXj\nDQIDAQAB\n-----END PUBLIC KEY-----\n\n"}
{"example-validator"=>"https://127.0.0.1/organizations/example/clients/example-validator", "node01"=>"https://127.0.0.1/organizations/example/clients/node01"}
{"user"=>{"username"=>"admin"}}
/usr/lib/ruby/1.9.1/net/http.rb:2633:in `error!': 404 "Not Found" (Net::HTTPServerException)
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:199:in `block in raw_http_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:280:in `retriable_rest_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:164:in `raw_http_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:158:in `api_request'
from /var/lib/gems/1.9.1/gems/chef-11.4.0/lib/chef/rest.rb:118:in `post'
from test.rb:18:in `<main>'
来自官方文档:https://docs.chef.io/api_chef_server.html#authenticate-user
我做不到。
知道我遗漏了什么吗?
读了几天后..我找到了向 Chef API 查询此 POST 方法的正确方法。
require 'rubygems'
require 'chef/config'
require 'chef/log'
require 'chef/rest'
chef_server_url = 'http://127.0.0.1'
client_name = 'admin'
signing_key_filename = '/root/admin.pem'
rest = Chef::REST.new(chef_server_url, client_name, signing_key_filename)
data = {"username" => "admin", "password" => "4dm1n1str4t0r" }
rest.post_rest('authenticate_user', data)
现在我收到一个 403,但至少 URL 路径是正确的,一旦我修复了被禁止的东西,我会把答案放上去..