Update hostsfile and add zerotier cookbook
This commit is contained in:
71
cookbooks/zerotier/templates/default/zerotier_ohai.rb
Normal file
71
cookbooks/zerotier/templates/default/zerotier_ohai.rb
Normal file
@@ -0,0 +1,71 @@
|
||||
|
||||
Ohai.plugin(:ZeroTier) do
|
||||
provides 'zerotier'
|
||||
|
||||
def zerotier_command (subcommand)
|
||||
return "<%= @zerotier_binary %> <% unless @zerotier_binary.end_with?('-cli') %>-q<% end %> #{subcommand} -p<%= @control_port %> -D<%= @data_dir %>"
|
||||
end
|
||||
|
||||
def linux_get_networks
|
||||
networks = Mash.new
|
||||
cmd = zerotier_command('listnetworks')
|
||||
Ohai::Log.info(cmd)
|
||||
so = shell_out(cmd)
|
||||
first_line = true
|
||||
so.stdout.lines do |line|
|
||||
if first_line
|
||||
# skip the header line
|
||||
first_line = false
|
||||
next
|
||||
end
|
||||
|
||||
data = line.strip.split(/\s+/)
|
||||
|
||||
cur_network = Mash.new
|
||||
cur_network[:network_name] = data[3]
|
||||
cur_network[:mac] = data[4]
|
||||
cur_network[:status] = data[5]
|
||||
cur_network[:type] = data[6]
|
||||
cur_network[:interface] = data[7]
|
||||
cur_network[:addresses] = []
|
||||
|
||||
data[8].split(',').each do |addr|
|
||||
cur_network[:addresses].push(addr)
|
||||
end
|
||||
|
||||
networks[data[2]] = cur_network
|
||||
end
|
||||
return networks
|
||||
end
|
||||
|
||||
def linux_get_node_id
|
||||
node_id = ''
|
||||
|
||||
if ::File.exists?("<%= @data_dir %>/identity.public")
|
||||
node_id = ::File.read("<%= @data_dir %>/identity.public")
|
||||
node_id = node_id[0..9]
|
||||
Ohai
|
||||
else
|
||||
Ohai::Log.warn("<%= @data_dir %>/identity.public' does not exist")
|
||||
end
|
||||
|
||||
return node_id unless node_id.empty?
|
||||
end
|
||||
|
||||
def get_version
|
||||
so = shell_out("<%= @zerotier_binary %> -v 2>&1")
|
||||
version = so.stdout.strip
|
||||
return version unless version.empty?
|
||||
end
|
||||
|
||||
collect_data(:linux) do
|
||||
if ::File.exists?("<%= @zerotier_binary %>")
|
||||
zerotier Mash.new
|
||||
zerotier[:version] = get_version
|
||||
zerotier[:node_id] = linux_get_node_id
|
||||
zerotier[:networks] = linux_get_networks
|
||||
else
|
||||
Ohai::Log.warn("Cannot find zerotier binary")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user