Class: Chef::Provisioning::ConvergenceStrategy::InstallMsi
- Inherits:
-
PrecreateChefObjects
- Object
- Chef::Provisioning::ConvergenceStrategy
- PrecreateChefObjects
- Chef::Provisioning::ConvergenceStrategy::InstallMsi
- Defined in:
- lib/chef/provisioning/convergence_strategy/install_msi.rb
Instance Attribute Summary collapse
-
#chef_version ⇒ Object
readonly
Returns the value of attribute chef_version.
-
#install_msi_path ⇒ Object
readonly
Returns the value of attribute install_msi_path.
-
#install_msi_url ⇒ Object
readonly
Returns the value of attribute install_msi_url.
-
#prerelease ⇒ Object
readonly
Returns the value of attribute prerelease.
Attributes inherited from Chef::Provisioning::ConvergenceStrategy
Instance Method Summary collapse
- #converge(action_handler, machine) ⇒ Object
-
#initialize(convergence_options, config) ⇒ InstallMsi
constructor
A new instance of InstallMsi.
- #setup_convergence(action_handler, machine) ⇒ Object
Methods inherited from PrecreateChefObjects
#chef_server, #cleanup_convergence
Methods inherited from Chef::Provisioning::ConvergenceStrategy
Constructor Details
#initialize(convergence_options, config) ⇒ InstallMsi
Returns a new instance of InstallMsi.
9 10 11 12 13 14 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 9 def initialize(, config) super @chef_version ||= [:chef_version] @prerelease ||= [:prerelease] @chef_client_timeout = .has_key?(:chef_client_timeout) ? [:chef_client_timeout] : 120*60 # Default: 2 hours end |
Instance Attribute Details
#chef_version ⇒ Object (readonly)
Returns the value of attribute chef_version.
16 17 18 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 16 def chef_version @chef_version end |
#install_msi_path ⇒ Object (readonly)
Returns the value of attribute install_msi_path.
19 20 21 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 19 def install_msi_path @install_msi_path end |
#install_msi_url ⇒ Object (readonly)
Returns the value of attribute install_msi_url.
18 19 20 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 18 def install_msi_url @install_msi_url end |
#prerelease ⇒ Object (readonly)
Returns the value of attribute prerelease.
17 18 19 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 17 def prerelease @prerelease end |
Instance Method Details
#converge(action_handler, machine) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 52 def converge(action_handler, machine) super action_handler.open_stream(machine.node['name']) do |stdout| action_handler.open_stream(machine.node['name']) do |stderr| command_line = "chef-client" command_line << " -l #{config[:log_level].to_s}" if config[:log_level] machine.execute(action_handler, command_line, :raw => true, :stream_stdout => stdout, :stream_stderr => stderr, :timeout => @chef_client_timeout) end end end |
#setup_convergence(action_handler, machine) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/chef/provisioning/convergence_strategy/install_msi.rb', line 21 def setup_convergence(action_handler, machine) if !.has_key?(:client_rb_path) || !.has_key?(:client_pem_path) system_drive = machine.system_drive = Cheffish::MergedConfig.new(, { :client_rb_path => "#{system_drive}\\chef\\client.rb", :client_pem_path => "#{system_drive}\\chef\\client.pem", :install_script_path => "#{system_drive}\\chef\\\install.ps1" }) end opts = {"prerelease" => prerelease} if [:bootstrap_proxy] opts["http_proxy"] = [:bootstrap_proxy] opts["https_proxy"] = [:bootstrap_proxy] end opts["install_msi_url"] = [:install_msi_url] if [:install_msi_url] super install_command = Mixlib::Install::ScriptGenerator.new(chef_version, true, opts).install_command machine.write_file(action_handler, [:install_script_path], install_command) action_handler.open_stream(machine.node['name']) do |stdout| action_handler.open_stream(machine.node['name']) do |stderr| machine.execute(action_handler, "powershell.exe -ExecutionPolicy Unrestricted -NoProfile \"& \"\"#{convergence_options[:install_script_path]}\"\"\"", :raw => true, :stream_stdout => stdout, :stream_stderr => stderr) end end end |