syncwrap 2.6.0 → 2.6.1

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: 00df7a5da1c7959e0e8536ef2c2365b834d2fa8d
4
- data.tar.gz: 95e52e386b6f40581e445b4385ee1396159cf219
3
+ metadata.gz: 9fa7854403d0e4cf2392a7e6d8ed77358d99a1b4
4
+ data.tar.gz: f2f5dbdabe714b9d293259bfe3ec2963ca0b70be
5
5
  SHA512:
6
- metadata.gz: 7b558fac6b8e8e7c8a5797c5762efbfa2380671d35b061353aa4a04b5fb918eea2c9a92b74458c078dca2c22ad08dfc0b94d2b5c4d45a5984e6b6d42b3a4f590
7
- data.tar.gz: 68c4f6387575c2ecabc185799949f545975c3786013f06343052d64330cfc6ad30fdc06676e93db585595b16a10a7e18762a589fe81513334d94d7ba95e07645
6
+ metadata.gz: 29741c45ef1bf11c0155be47e5c1972543e930f52b37e0610b741b9ab9404fadc712d41a2b96678fec05158d87e5eeadfdb5eff2fd7b9fe235c058a1fb585684
7
+ data.tar.gz: 7a316ff8dfcbd34119cf37486c615d72d4b35407788ee762a5ca9094ce14cb69c25eae0d056415a80171d0c48ab5003c0ebc3d136611cf247e633dd3c21a9daa
data/History.rdoc CHANGED
@@ -1,3 +1,14 @@
1
+ === 2.6.1 (2015-12-2)
2
+ * Default SyncWrap::PostgreSQL to version 9.4 on Debian 8+.
3
+ * Use PATH to find `systemctl`, like other system tools. Debian 8 still
4
+ doesn't have merged /usr/bin.
5
+ * Add -a/--add-role flag to CLI to add role(s) with create or image
6
+ beyond what is specified by the profile.
7
+ * Add curl to existing build deps of CRubyVM and Hashdot. This
8
+ resolves the simplest cases where a minimal base image, in this case
9
+ not-including curl, would have previously failed. Other cases will
10
+ be addressed in subsequent releases.
11
+
1
12
  === 2.6.0 (2015-11-13)
2
13
  * Add SyncWrap::LVMCache component, with
3
14
  SyncWrap::Distro#unmount_device moved from MDRaid.
@@ -121,6 +121,8 @@ module SyncWrap
121
121
  end
122
122
  end
123
123
 
124
+ # Create new hosts and append host definitions to the sync_file.
125
+ # If a block is given, each new host is yielded before appending.
124
126
  def create_hosts( count, profile, name, sync_file )
125
127
  require_configured!
126
128
  profile = get_profile( profile ) if profile.is_a?( Symbol )
@@ -145,6 +147,7 @@ module SyncWrap
145
147
  end
146
148
  props = aws_create_instance( hname, profile )
147
149
  host = space.host( props )
150
+ yield( host ) if block_given?
148
151
  append_host_definitions( [ host ], nil, sync_file )
149
152
  host[ :just_created ] = true
150
153
  # Need to use a host prop for this since context(s) do not
data/lib/syncwrap/base.rb CHANGED
@@ -15,7 +15,7 @@
15
15
  #++
16
16
 
17
17
  module SyncWrap
18
- VERSION='2.6.0'
18
+ VERSION='2.6.1'
19
19
 
20
20
  GEM_ROOT = File.dirname(File.dirname(File.dirname(__FILE__))) # :nodoc:
21
21
  end
data/lib/syncwrap/cli.rb CHANGED
@@ -32,6 +32,7 @@ module SyncWrap
32
32
  @component_plan = []
33
33
  @roles = []
34
34
  @comp_roles = []
35
+ @add_roles = []
35
36
  @host_patterns = []
36
37
  @create_plan = []
37
38
  @image_plan = []
@@ -180,6 +181,13 @@ TEXT
180
181
  @image_plan << profile.to_sym
181
182
  end
182
183
 
184
+ opts.on( "-a", "--add-role ROLE",
185
+ "When creating a new host or image, add ROLE",
186
+ "beyond those specified by the profile",
187
+ "(may use multiple)" ) do |r|
188
+ @add_roles << r.sub(/^:/,'').to_sym
189
+ end
190
+
183
191
  opts.on( "--import-hosts REGIONS",
184
192
  "Import hosts form provider 'region' names, ",
185
193
  "append to sync file and exit." ) do |rs|
@@ -243,6 +251,7 @@ TEXT
243
251
  p = space.provider
244
252
  @image_plan.each do |profile_key|
245
253
  ami,name = p.create_image_from_profile(profile_key, @sw_file) do |host|
254
+ host.add( *@add_roles ) unless @add_roles.empty?
246
255
  space.execute( [ host ], [], @options )
247
256
  end
248
257
  exit( 1 ) unless ami
@@ -252,7 +261,9 @@ TEXT
252
261
  end
253
262
 
254
263
  @create_plan.each do |count, profile, name|
255
- space.provider.create_hosts( count, profile, name, @sw_file )
264
+ space.provider.create_hosts( count, profile, name, @sw_file ) do |host|
265
+ host.add( *@add_roles ) unless @add_roles.empty?
266
+ end
256
267
  end
257
268
 
258
269
  if @ssh_session
@@ -139,10 +139,10 @@ module SyncWrap
139
139
 
140
140
  def install_build_deps
141
141
  if distro.is_a?( RHEL )
142
- dist_install( %w[ gcc make autoconf zlib-devel
142
+ dist_install( %w[ curl gcc make autoconf zlib-devel
143
143
  openssl-devel readline-devel libyaml-devel libffi-devel ] )
144
144
  else
145
- dist_install( %w[ gcc make autoconf zlib1g-dev
145
+ dist_install( %w[ curl gcc make autoconf zlib1g-dev
146
146
  libssl-dev libreadline-dev libyaml-dev libffi-dev ] )
147
147
  end
148
148
  end
@@ -80,7 +80,7 @@ module SyncWrap
80
80
  end
81
81
 
82
82
  def install_system_deps
83
- deps = %w[ make gcc ]
83
+ deps = %w[ curl make gcc ]
84
84
  deps += case distro
85
85
  when Debian
86
86
  %w[ libapr1 libapr1-dev ]
@@ -41,6 +41,7 @@ module SyncWrap
41
41
  # * AmazonLinux 2013.03: 8.4 9.2
42
42
  # * AmazonLinux 2014.09: 8.4 9.2 9.3
43
43
  # * Debian 7: 9.1
44
+ # * Debian 8: 9.4
44
45
  # * Ubuntu 14: 9.3
45
46
  #
46
47
  # The latest stable and beta packages can also be obtained via the
@@ -69,6 +70,8 @@ module SyncWrap
69
70
  '9.2' if version_gte?( rhel_version, [7] )
70
71
  when Ubuntu
71
72
  '9.3' if version_gte?( ubuntu_version, [14,4] )
73
+ when Debian
74
+ '9.4' if version_gte?( debian_version, [8] )
72
75
  end
73
76
  ) ||
74
77
  '9.1' )
@@ -21,7 +21,7 @@ module SyncWrap
21
21
 
22
22
  # Run systemd `systemctl` command with args via sudo as root.
23
23
  def systemctl( *args )
24
- sudo "/usr/bin/systemctl #{args.join ' '}"
24
+ sudo "systemctl #{args.join ' '}"
25
25
  end
26
26
 
27
27
  # Expand given shortname to "shortname.service" as used for the
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syncwrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kellum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-13 00:00:00.000000000 Z
11
+ date: 2015-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: term-ansicolor