class Chef::Knife::BootstrapSsh
Public Instance Methods
build_client_json()
click to toggle source
# File lib/knife-zero/bootstrap_ssh.rb, line 80 def build_client_json <<-SCRIPT sudo sh -c 'cat <<"EOP" > /etc/chef/chef_client_json.json #{config[:chef_client_json].to_json} ' SCRIPT end
ssh_command(command, subsession = nil)
click to toggle source
Calls superclass method
# File lib/knife-zero/bootstrap_ssh.rb, line 14 def ssh_command(command, subsession = nil) # rubocop:disable Metrics/PerceivedComplexity, Metrics/AbcSize, Metrics/CyclomaticComplexity if config[:client_version] case config[:alter_project] when 'cinc' super(%{/opt/cinc/embedded/bin/ruby -ropen-uri -e 'puts open("https://omnitruck.cinc.sh/install.sh").read' | sudo sh -s -- -v #{config[:client_version]}}) else super(%{/opt/chef/embedded/bin/ruby -ropen-uri -e 'puts open("https://omnitruck.chef.io/chef/install.sh").read' | sudo sh -s -- -v #{config[:client_version]}}) end end if config[:json_attribs] Chef::Log.info "Onetime Attributes: #{config[:chef_client_json]}" super(build_client_json) end chef_zero_port = config[:chef_zero_port] || Chef::Config[:knife][:chef_zero_port] || URI.parse(Chef::Config.chef_server_url).port chef_zero_host = config[:chef_zero_host] || Chef::Config[:knife][:chef_zero_host] || '127.0.0.1' (subsession || session).servers.each do |server| session = server.session(true) session.forward.remote(chef_zero_port, chef_zero_host, ::Knife::Zero::Helper.zero_remote_port) end super rescue => e # rubocop:disable Style/RescueStandardError ui.error(e.class.to_s + e.message) ui.error e.backtrace.join("\n") exit 1 end