[cookbooks/agent] Removed agent cookbook
This commit is contained in:
parent
410c4f321a
commit
c09bf0b2d7
@ -1,22 +0,0 @@
|
|||||||
Agent library sends ohai data to REST service.
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
============
|
|
||||||
* node["admin"]["URL"] variable defined, which is used as
|
|
||||||
target REST service for publishing ohai data.
|
|
||||||
* Packages: chef-solo
|
|
||||||
* Gems: httplib
|
|
||||||
|
|
||||||
License
|
|
||||||
=======
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
@ -1,53 +0,0 @@
|
|||||||
require 'json'
|
|
||||||
|
|
||||||
module NodeAgent
|
|
||||||
def self.update(node)
|
|
||||||
mac = node['macaddress'].gsub(':', '')
|
|
||||||
|
|
||||||
# Node is booted via PXE from admin node, so we can get IP address
|
|
||||||
# of admin node from url= param
|
|
||||||
begin
|
|
||||||
cmdline = File.read("/proc/cmdline")
|
|
||||||
admin_ip = cmdline.match(/\burl=http:\/\/((\d{1,3}\.){3}\d{1,3})/)[1]
|
|
||||||
Chef::Log.info("Found IP address of Nailgun application: #{admin_ip}")
|
|
||||||
url = "http://#{admin_ip}:8000/api/nodes/#{mac}"
|
|
||||||
rescue
|
|
||||||
# If we can't get IP from /proc/cmdline, just set it to localhost for easy testing
|
|
||||||
Chef::Log.error("Didn't find IP address of Nailgun application, using localhost instead..")
|
|
||||||
url = "http://localhost:8000/api/nodes/#{mac}"
|
|
||||||
end
|
|
||||||
|
|
||||||
Chef::Log.debug("Sending node info to REST service at #{url}...")
|
|
||||||
|
|
||||||
interfaces = node["network"]["interfaces"].inject([]) do |result, elm|
|
|
||||||
result << { :name => elm[0], :addresses => elm[1]["addresses"] }
|
|
||||||
end
|
|
||||||
interfaces << { "default_interface" => node["network"]["default_interface"] }
|
|
||||||
interfaces << { "default_gateway" => node["network"]["default_gateway"] }
|
|
||||||
|
|
||||||
metadata = {
|
|
||||||
:block_device => node["block_device"].to_hash,
|
|
||||||
:interfaces => interfaces,
|
|
||||||
:cpu => node["cpu"].to_hash,
|
|
||||||
:memory => node["memory"].to_hash
|
|
||||||
}
|
|
||||||
|
|
||||||
data = { :fqdn => node["fqdn"],
|
|
||||||
:mac => node["macaddress"],
|
|
||||||
:ip => node["ipaddress"],
|
|
||||||
:metadata => metadata
|
|
||||||
}
|
|
||||||
|
|
||||||
headers = {"Content-Type" => "application/json"}
|
|
||||||
|
|
||||||
cli = HTTPClient.new
|
|
||||||
begin
|
|
||||||
res = cli.put(url, data.to_json, headers)
|
|
||||||
if res.status < 200 or res.status >= 300
|
|
||||||
Chef::Log.error("HTTP PUT failed: #{res.inspect}")
|
|
||||||
end
|
|
||||||
rescue Exception => e
|
|
||||||
Chef::Log.error("Error in sending node info: #{e.message}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,9 +0,0 @@
|
|||||||
maintainer "Mirantis, Inc."
|
|
||||||
maintainer_email "mscherbakov@mirantis.com"
|
|
||||||
license "Apache 2.0"
|
|
||||||
description "Sends ohai attrs to admin node"
|
|
||||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
|
||||||
version "0.1"
|
|
||||||
|
|
||||||
# depends "apt"
|
|
||||||
#
|
|
@ -1,8 +0,0 @@
|
|||||||
# It is assumed that httpclient gem
|
|
||||||
# already installed by preseed
|
|
||||||
require 'httpclient'
|
|
||||||
|
|
||||||
ruby_block 'update_node_info' do
|
|
||||||
block { NodeAgent.update(node) }
|
|
||||||
end
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user