chef-provisioning 1.4.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4af26c18a0d3c96d499c8d7b1267264d15244cfe
4
- data.tar.gz: bcb53c4299f239845c449366f3ae39397143b90e
3
+ metadata.gz: c9af2567c4ea25e723b6ba5f11a10fb37aadc6d9
4
+ data.tar.gz: 171c144d04965d8bbadd1e8bdfb0740d56b987f5
5
5
  SHA512:
6
- metadata.gz: 347c6a36818a4f6529b4bd1798fa3c22707efc5a36114fc7ebd520cad735cdabd1fd359c65231c93f5a35d69fc849a076a5e7cf4773c6de74b117af6e3aa795f
7
- data.tar.gz: d872f47eb7ced3c6a3132eb4f8346cf0b6c2fd9c72c54be41e4ee46dc3465a749b8d83b5c7247b412d4117e26894c69d5385500d9a146271731b3d18443d5162
6
+ metadata.gz: 19cd99cd3d7be8c998b42c62edb70c7124830bd608193fec6dcb5695e15e2ccfa5dfd2bc3125c4f683eb3c6ce6a273b4ad8661f384a683f4a3ad2395310742af
7
+ data.tar.gz: a9ffd30e83bd04d7c78b6b17ae0b6ec47b819dd685647ebc242b0e9507e7649d68b3df5b19a7f25287afc0105f9df6d61cd3cccf8e09ae66fe64caf059ef76be
@@ -1,7 +1,28 @@
1
1
  # Change Log
2
2
 
3
- ## [1.4.1](https://github.com/chef/chef-provisioning/tree/1.4.1) (2015-09-30)
4
- [Full Changelog](https://github.com/chef/chef-provisioning/compare/v1.4.0...1.4.1)
3
+ ## [1.5.0](https://github.com/chef/chef-provisioning/tree/1.5.0) (2015-10-23)
4
+ [Full Changelog](https://github.com/chef/chef-provisioning/compare/v1.4.1...1.5.0)
5
+
6
+ **Fixed bugs:**
7
+
8
+ - :converge action should not re-install chef-client if the desired version is already installed [\#428](https://github.com/chef/chef-provisioning/issues/428)
9
+ - SSH available timeout needs to be configurable [\#362](https://github.com/chef/chef-provisioning/issues/362)
10
+ - Making available? timeout use provided ssh\_options, fixes \#362 [\#466](https://github.com/chef/chef-provisioning/pull/466) ([tyler-ball](https://github.com/tyler-ball))
11
+ - Pinning to mixlib-install 0.7.0 until 1.0 is out [\#464](https://github.com/chef/chef-provisioning/pull/464) ([tyler-ball](https://github.com/tyler-ball))
12
+ - Added bootstrap\_no\_proxy support [\#458](https://github.com/chef/chef-provisioning/pull/458) ([jsmartt](https://github.com/jsmartt))
13
+
14
+ **Closed issues:**
15
+
16
+ - The action "stop" on a Machine resource does not appear to work [\#463](https://github.com/chef/chef-provisioning/issues/463)
17
+ - machine chef-client run output not logging to provisioner chef-client output [\#274](https://github.com/chef/chef-provisioning/issues/274)
18
+
19
+ **Merged pull requests:**
20
+
21
+ - Add gemspec files to allow bundler to run from the gem [\#461](https://github.com/chef/chef-provisioning/pull/461) ([ksubrama](https://github.com/ksubrama))
22
+ - Pin mixlib-install more strictly. [\#459](https://github.com/chef/chef-provisioning/pull/459) ([sersut](https://github.com/sersut))
23
+
24
+ ## [v1.4.1](https://github.com/chef/chef-provisioning/tree/v1.4.1) (2015-09-30)
25
+ [Full Changelog](https://github.com/chef/chef-provisioning/compare/v1.4.0...v1.4.1)
5
26
 
6
27
  **Fixed bugs:**
7
28
 
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source "https://rubygems.org"
2
+ gemspec
3
+
4
+ #gem 'mixlib-install', path: '../mixlib-install'
5
+ #gem 'net-ssh', :path => '../net-ssh'
6
+ #gem 'chef', :path => '../chef'
7
+ #gem 'ohai', :path => '../ohai'
8
+ #gem 'cheffish', :path => '../cheffish' # :git => 'https://github.com/jkeiser/cheffish.git'
9
+ #gem 'chef-provisioning-vagrant', :path => '../chef-provisioning-vagrant'
10
+ #gem 'chef-provisioning-fog', :path => '../chef-provisioning-fog'
11
+ #gem 'chef-provisioning-aws', :path => '../chef-provisioning-aws'
12
+ #gem 'chef-zero', :path => '../chef-zero'
13
+ group :development do
14
+ # gem "berkshelf", github: "berkshelf/berkshelf"
15
+ end
data/README.md CHANGED
@@ -172,6 +172,7 @@ with_machine_options({
172
172
  chef_config: "log_level :debug\\n", # String containing additional text to inject into client.rb
173
173
  chef_server: "http://my.chef.server/", # TODO could conflict with https://github.com/chef/chef-provisioning#pointing-boxes-at-chef-servers
174
174
  bootstrap_proxy: "http://localhost:1234",
175
+ bootstrap_no_proxy: "localhost, *.example.com, my.chef.server",
175
176
  ssl_verify_mode: :verify_peer,
176
177
  client_rb_path: "/etc/chef/client.rb", # <- DEFAULT, overwrite if necessary
177
178
  client_pem_path: "/etc/chef/client.pem", # <- DEFAULT, overwrite if necessary
@@ -0,0 +1,35 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/lib')
2
+ require 'chef/provisioning/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'chef-provisioning'
6
+ s.version = Chef::Provisioning::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.extra_rdoc_files = ['README.md', 'CHANGELOG.md', 'LICENSE' ]
9
+ s.summary = 'A library for creating machines and infrastructures idempotently in Chef.'
10
+ s.description = s.summary
11
+ s.author = 'John Keiser'
12
+ s.email = 'jkeiser@chef.io'
13
+ s.homepage = 'http://github.com/chef/chef-provisioning/README.md'
14
+
15
+ s.add_dependency 'net-ssh', '~> 2.0'
16
+ s.add_dependency 'net-scp', '~> 1.0'
17
+ s.add_dependency 'net-ssh-gateway', '~> 1.2.0'
18
+ s.add_dependency 'inifile', '~> 2.0'
19
+ s.add_dependency 'cheffish', '~> 1.3', '>= 1.3.1' # 1.3.1 allows 'let' vars in unquoted recipes.
20
+ s.add_dependency 'winrm', '~> 1.3'
21
+ s.add_dependency "mixlib-install", "~> 0.7.0"
22
+
23
+ s.add_development_dependency 'chef', '~> 12.1', "!= 12.4.0" # 12.4.0 is incompatible.
24
+ s.add_development_dependency 'rspec'
25
+ s.add_development_dependency 'rake'
26
+ s.add_development_dependency 'pry'
27
+ s.add_development_dependency 'simplecov'
28
+
29
+ s.bindir = "bin"
30
+ s.executables = %w( )
31
+
32
+ s.require_path = 'lib'
33
+ s.files = %w(Gemfile Rakefile LICENSE README.md CHANGELOG.md) + Dir.glob("*.gemspec") +
34
+ Dir.glob("{distro,lib,tasks,spec}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
35
+ end
@@ -77,11 +77,15 @@ class Machine < Chef::Provider::LWRPBase
77
77
  end
78
78
 
79
79
  action :converge_only do
80
- machine = run_context.chef_provisioning.connect_to_machine(machine_spec, current_machine_options)
81
- begin
82
- machine.converge(action_handler)
83
- ensure
84
- machine.disconnect
80
+ if new_resource.converge == false
81
+ Chef::Log.debug("Not converging #{machine_spec.name} because 'converge false' is set.")
82
+ else
83
+ machine = run_context.chef_provisioning.connect_to_machine(machine_spec, current_machine_options)
84
+ begin
85
+ machine.converge(action_handler)
86
+ ensure
87
+ machine.disconnect
88
+ end
85
89
  end
86
90
  end
87
91
 
@@ -14,7 +14,6 @@ module Provisioning
14
14
  :client_pem_path => '/etc/chef/client.pem'
15
15
  })
16
16
  super(convergence_options, config)
17
- @install_sh_url = convergence_options[:install_sh_url] || 'https://www.chef.io/chef/install.sh'
18
17
  @install_sh_path = convergence_options[:install_sh_path] || '/tmp/chef-install.sh'
19
18
  @chef_version = convergence_options[:chef_version]
20
19
  @prerelease = convergence_options[:prerelease]
@@ -25,7 +24,6 @@ module Provisioning
25
24
 
26
25
  attr_reader :chef_version
27
26
  attr_reader :prerelease
28
- attr_reader :install_sh_url
29
27
  attr_reader :install_sh_path
30
28
  attr_reader :install_sh_arguments
31
29
  attr_reader :bootstrap_env
@@ -239,6 +239,11 @@ module Provisioning
239
239
  https_proxy #{convergence_options[:bootstrap_proxy].inspect}
240
240
  EOM
241
241
  end
242
+ if convergence_options[:bootstrap_no_proxy]
243
+ content << <<-EOM
244
+ no_proxy #{convergence_options[:bootstrap_no_proxy].inspect}
245
+ EOM
246
+ end
242
247
  content.gsub!(/^\s+/, "")
243
248
  content << convergence_options[:chef_config] if convergence_options[:chef_config]
244
249
  content
@@ -174,8 +174,8 @@ module Provisioning
174
174
  end
175
175
 
176
176
  def available?
177
- # If you can't pwd within 10 seconds, you can't pwd
178
- execute('pwd', :timeout => 10)
177
+ timeout = ssh_options[:timeout] || 10
178
+ execute('pwd', :timeout => timeout)
179
179
  true
180
180
  rescue Timeout::Error, Errno::EHOSTUNREACH, Errno::ENETUNREACH, Errno::EHOSTDOWN, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::ECONNRESET, Net::SSH::Disconnect
181
181
  Chef::Log.debug("#{username}@#{host} unavailable: network connection failed or broke: #{$!.inspect}")
@@ -191,10 +191,10 @@ module Provisioning
191
191
 
192
192
  def session
193
193
  @session ||= begin
194
+ # Small initial connection timeout (10s) to help us fail faster when server is just dead
194
195
  ssh_start_opts = { timeout:10 }.merge(ssh_options)
195
196
  Chef::Log.debug("Opening SSH connection to #{username}@#{host} with options #{ssh_start_opts.dup.tap {
196
197
  |ssh| ssh.delete(:key_data) }.inspect}")
197
- # Small initial connection timeout (10s) to help us fail faster when server is just dead
198
198
  begin
199
199
  if gateway? then gateway.ssh(host, username, ssh_start_opts)
200
200
  else Net::SSH.start(host, username, ssh_start_opts)
@@ -1,5 +1,5 @@
1
1
  class Chef
2
2
  module Provisioning
3
- VERSION = '1.4.1'
3
+ VERSION = '1.5.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-provisioning
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Keiser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-30 00:00:00.000000000 Z
11
+ date: 2015-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
@@ -106,14 +106,14 @@ dependencies:
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0.6'
109
+ version: 0.7.0
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0.6'
116
+ version: 0.7.0
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: chef
119
119
  requirement: !ruby/object:Gem::Requirement
@@ -200,9 +200,11 @@ extra_rdoc_files:
200
200
  - LICENSE
201
201
  files:
202
202
  - CHANGELOG.md
203
+ - Gemfile
203
204
  - LICENSE
204
205
  - README.md
205
206
  - Rakefile
207
+ - chef-provisioning.gemspec
206
208
  - lib/chef/provider/load_balancer.rb
207
209
  - lib/chef/provider/machine.rb
208
210
  - lib/chef/provider/machine_batch.rb