dream-ops 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27d08df0920a99854a22195056728c0532fc10fa
4
- data.tar.gz: 7f00fa02c6681181ce6bff20e4e49ce8cbb58312
3
+ metadata.gz: 8b007fcf3a075614dc42f84cc722ccf4f4de27e5
4
+ data.tar.gz: 04a440399ff9dbb2cac9b9b99d9c6815c37becb2
5
5
  SHA512:
6
- metadata.gz: 29d9d09a2e49a281b95f4331a92f3f0edd2348945f8c0ee80ba2042c4bf145add1e57291a71a6df5dbf6c5ef7dcdfad99c6d6ca227fdd4df1de0cfbb5060891d
7
- data.tar.gz: 68b9ff0471cb4327abef80661686d3dd5cc011f216d613db66653c1ccf4eebadbeef94b32bf3301965e13dcd3a50889ea10f18df370a08620bbe49d282518ff8
6
+ metadata.gz: 93bb6a02da4398fcb4546f51b0f084374356a0622fba41fd0b5409f2452d656424ea066d10762bc4534d4313ec05d2a2e418986e999f064b654a6193326a8077
7
+ data.tar.gz: 9d21948bda4ed935798c203d15c3a9f8e2b6457a87dbb6aba250dd56c40dc4b46910d1b18a816d95d2943250e93299ef6916f7749e80f9db84b80ca6cc132181
@@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.7.0]
10
+
11
+ ### Changed
12
+ - Updated to use Chef Workstation instead of ChefDK
13
+
14
+ ### Fixes
15
+ - Adds `solo` support for Ubuntu 20.04
16
+
9
17
  ## [0.6.1]
10
18
 
11
19
  ### Fixes
@@ -65,8 +73,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
65
73
  - Gem version badge to README
66
74
  - Usage documentation
67
75
 
68
- [Unreleased]: https://github.com/chris-allen/dream-ops/compare/v0.5.0...HEAD
69
- [0.4.2]: https://github.com/chris-allen/dream-ops/compare/v0.4.2...v0.5.0
76
+ [Unreleased]: https://github.com/chris-allen/dream-ops/compare/v0.7.0...HEAD
77
+ [0.7.0]: https://github.com/chris-allen/dream-ops/compare/v0.6.1...v0.7.0
78
+ [0.6.1]: https://github.com/chris-allen/dream-ops/compare/v0.6.0...v0.6.1
79
+ [0.6.0]: https://github.com/chris-allen/dream-ops/compare/v0.5.0...v0.6.0
80
+ [0.5.0]: https://github.com/chris-allen/dream-ops/compare/v0.4.2...v0.5.0
70
81
  [0.4.2]: https://github.com/chris-allen/dream-ops/compare/v0.4.1...v0.4.2
71
82
  [0.4.1]: https://github.com/chris-allen/dream-ops/compare/v0.4.0...v0.4.1
72
83
  [0.4.0]: https://github.com/chris-allen/dream-ops/compare/v0.3.0...v0.4.0
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # DreamOps
2
2
  [![Gem Version](https://img.shields.io/gem/v/dream-ops.svg)][gem]
3
- [![Build Status](https://travis-ci.org/chris-allen/dream-ops.svg?branch=master)](https://travis-ci.org/chris-allen/dream-ops)
3
+ [![Build Status](https://travis-ci.com/chris-allen/dream-ops.svg?branch=master)](https://travis-ci.com/chris-allen/dream-ops)
4
4
 
5
5
  [gem]: https://rubygems.org/gems/dream-ops
6
6
 
@@ -74,11 +74,11 @@ Target: ip-172-31-53-232
74
74
  ```bash
75
75
  dream init solo -T ubuntu@example.com -i /path/to/key.pem
76
76
  Target: ip-172-31-53-232
77
- --- ChefDK Installed: false
77
+ --- Chef Workstation Installed: false
78
78
  --- Valid chef.json: false
79
79
  --- Valid role[setup]: false
80
80
  --- Valid role[deploy]: false
81
- ...Installing ChefDK [target="ubuntu@example.com"]
81
+ ...Installing Chef Workstation [target="ubuntu@example.com"]
82
82
  ...Creating boilerplate /var/chef/chef.json [target="ubuntu@example.com"]
83
83
  ...Creating boilerplate /var/chef/roles/setup.json [target="ubuntu@example.com"]
84
84
  ...Creating boilerplate /var/chef/roles/deploy.json [target="ubuntu@example.com"]
@@ -34,10 +34,13 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency "bundler", "~> 2.0"
35
35
  spec.add_development_dependency "rake", "~> 10.0"
36
36
 
37
- spec.add_dependency "rubyzip", "~> 1.2"
38
- spec.add_dependency "aws-sdk", "~> 2"
39
- spec.add_dependency "inifile", "~> 3.0"
40
- spec.add_dependency "berkshelf", "~> 7.0"
41
- spec.add_dependency "thor", "~> 0.20"
42
- spec.add_dependency "chef", "~> 13.6"
37
+ spec.add_dependency "rubyzip", "~> 1.2"
38
+ spec.add_dependency "aws-sdk-core"
39
+ spec.add_dependency "aws-sdk-configservice", "~> 1"
40
+ spec.add_dependency "aws-sdk-opsworks", "~> 1"
41
+ spec.add_dependency "aws-sdk-s3", "~> 1"
42
+ spec.add_dependency "inifile", "~> 3.0"
43
+ spec.add_dependency "berkshelf", "~> 7.0"
44
+ spec.add_dependency "thor", "~> 0.20"
45
+ spec.add_dependency "chef", "~> 13.6"
43
46
  end
@@ -10,7 +10,8 @@ end
10
10
 
11
11
  require "berkshelf"
12
12
  require "thor"
13
- require "aws-sdk"
13
+ require "aws-sdk-core"
14
+ require "aws-sdk-configservice"
14
15
  require "inifile"
15
16
 
16
17
  module DreamOps
@@ -1,4 +1,5 @@
1
- require "aws-sdk"
1
+ require "aws-sdk-opsworks"
2
+ require "aws-sdk-s3"
2
3
  require "uri"
3
4
 
4
5
  Aws.use_bundled_cert!
@@ -165,7 +165,7 @@ module DreamOps
165
165
  if ! system(
166
166
  "ssh #{@ssh_opts} #{target[:host]} \"" +
167
167
  "set -o pipefail && " +
168
- "sudo chef-solo -j /var/chef/chef.json -o \"role[#{role}]\" 2>&1 | sudo tee /var/log/chef/#{uuid}.log #{@q_all}\""
168
+ "sudo chef-solo --chef-license accept -j /var/chef/chef.json -o \"role[#{role}]\" 2>&1 | sudo tee /var/log/chef/#{uuid}.log #{@q_all}\""
169
169
  )
170
170
  exit 1
171
171
  end
@@ -178,9 +178,9 @@ module DreamOps
178
178
  end
179
179
 
180
180
  def deploy_target(target, cookbooks)
181
- # Bail if ChefDK is not installed
181
+ # Bail if Chef Workstation is not installed
182
182
  if !system("ssh #{@ssh_opts} #{target[:host]} which chef #{@q_all}")
183
- __bail_with_fatal_error(ChefDKNotInstalledError.new(target[:host]))
183
+ __bail_with_fatal_error(ChefWorkstationNotInstalledError.new(target[:host]))
184
184
  end
185
185
 
186
186
  # Bail if chef.json doesn't exist
@@ -66,7 +66,7 @@ module DreamOps
66
66
  end
67
67
  end
68
68
 
69
- class ChefDKNotInstalledError < DreamOpsError
69
+ class ChefWorkstationNotInstalledError < DreamOpsError
70
70
  set_status_code(14)
71
71
 
72
72
  def initialize(target)
@@ -75,14 +75,14 @@ module DreamOps
75
75
 
76
76
  def to_s
77
77
  [
78
- "ChefDK not installed on target \"#{@target}\". To initialize chef-solo, run:",
78
+ "Chef Workstation not installed on target \"#{@target}\". To initialize chef-solo, run:",
79
79
  "",
80
80
  "dream init solo -t #{@target} -i #{DreamOps.ssh_key}",
81
81
  ].join("\n")
82
82
  end
83
83
  end
84
84
 
85
- class ChefDKFailedError < DreamOpsError
85
+ class ChefWorkstationFailedError < DreamOpsError
86
86
  set_status_code(15)
87
87
 
88
88
  def initialize(target, wget_url)
@@ -92,7 +92,7 @@ module DreamOps
92
92
 
93
93
  def to_s
94
94
  [
95
- "Target \"#{@target}\" failed installing ChefDK from:",
95
+ "Target \"#{@target}\" failed installing ChefWorkstation from:",
96
96
  "",
97
97
  @wget_url,
98
98
  ].join("\n")
@@ -22,7 +22,7 @@ module DreamOps
22
22
  target_result = { host: target }
23
23
 
24
24
  target_result[:chefdk_installed] = system("ssh #{@ssh_opts} #{target} which chef #{@q_all}")
25
- DreamOps.ui.info "--- ChefDK Installed: #{target_result[:chefdk_installed]}"
25
+ DreamOps.ui.info "--- Chef Workstation Installed: #{target_result[:chefdk_installed]}"
26
26
 
27
27
  target_result[:solo_json_exists] = system("ssh #{@ssh_opts} #{target} stat /var/chef/chef.json #{@q_all}")
28
28
  DreamOps.ui.info "--- Valid chef.json: #{target_result[:solo_json_exists]}"
@@ -40,23 +40,25 @@ module DreamOps
40
40
  end
41
41
 
42
42
  def init_target(target, dryrun)
43
- # Install ChefDK if not already
43
+ # Install ChefWorkstation if not already
44
44
  if !target[:chefdk_installed]
45
45
  if dryrun
46
- DreamOps.ui.warn "...WOULD Install ChefDK [target=\"#{target[:host]}\"]"
46
+ DreamOps.ui.warn "...WOULD Install Chef Workstation [target=\"#{target[:host]}\"]"
47
47
  else
48
- DreamOps.ui.warn "...Installing ChefDK [target=\"#{target[:host]}\"]"
48
+ DreamOps.ui.warn "...Installing Chef Workstation [target=\"#{target[:host]}\"]"
49
49
 
50
50
  # Get ubuntu version
51
51
  ubuntu_ver = `ssh #{@ssh_opts} #{target[:host]} "awk 'BEGIN { FS = \\"=\\" } /DISTRIB_RELEASE/ { print \\$2 }' /etc/lsb-release"`.chomp
52
52
 
53
53
  # Download and install the package
54
- chefdk_url = "https://packages.chef.io/files/stable/chefdk/3.3.23/ubuntu/#{ubuntu_ver}/chefdk_3.3.23-1_amd64.deb"
55
- if system("ssh #{@ssh_opts} #{target[:host]} \"wget #{chefdk_url} -P /tmp\" #{@q_all}")
56
- `ssh #{@ssh_opts} #{target[:host]} "sudo dpkg -i /tmp/chefdk_3.3.23-1_amd64.deb" #{@q_all}`
57
- `ssh #{@ssh_opts} #{target[:host]} "sudo rm /tmp/chefdk_3.3.23-1_amd64.deb" #{@q_all}`
54
+ deb_file = "chef-workstation_20.12.187-1_amd64.deb"
55
+ chefworkstation_url = "https://packages.chef.io/files/stable/chef-workstation/20.12.187/ubuntu/#{ubuntu_ver}/#{deb_file}"
56
+ if system("ssh #{@ssh_opts} #{target[:host]} \"wget #{chefworkstation_url} -P /tmp\" #{@q_all}")
57
+ `ssh #{@ssh_opts} #{target[:host]} "sudo dpkg -i /tmp/#{deb_file}" #{@q_all}`
58
+ `ssh #{@ssh_opts} #{target[:host]} "sudo rm /tmp/#{deb_file}" #{@q_all}`
59
+ `ssh #{@ssh_opts} #{target[:host]} "chef env --chef-license accept" #{@q_all}`
58
60
  else
59
- __bail_with_fatal_error(ChefDKFailedError.new(target, chefdk_url))
61
+ __bail_with_fatal_error(ChefWorkstationFailedError.new(target, chefworkstation_url))
60
62
  end
61
63
  end
62
64
  end
@@ -1,3 +1,3 @@
1
1
  module DreamOps
2
- VERSION = "0.6.1"
2
+ VERSION = "0.7.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dream-ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Allen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-17 00:00:00.000000000 Z
11
+ date: 2020-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,19 +53,61 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
- name: aws-sdk
56
+ name: aws-sdk-core
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: aws-sdk-configservice
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: aws-sdk-opsworks
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: aws-sdk-s3
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
101
  - - "~>"
60
102
  - !ruby/object:Gem::Version
61
- version: '2'
103
+ version: '1'
62
104
  type: :runtime
63
105
  prerelease: false
64
106
  version_requirements: !ruby/object:Gem::Requirement
65
107
  requirements:
66
108
  - - "~>"
67
109
  - !ruby/object:Gem::Version
68
- version: '2'
110
+ version: '1'
69
111
  - !ruby/object:Gem::Dependency
70
112
  name: inifile
71
113
  requirement: !ruby/object:Gem::Requirement