syncwrap 2.6.0 → 2.6.1

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: 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