syncwrap 2.8.3 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.rdoc +37 -0
- data/Manifest.txt +1 -0
- data/README.rdoc +1 -1
- data/Rakefile +7 -0
- data/bin/syncwrap +1 -1
- data/lib/syncwrap.rb +1 -1
- data/lib/syncwrap/amazon_ec2.rb +1 -1
- data/lib/syncwrap/amazon_ws.rb +1 -1
- data/lib/syncwrap/base.rb +2 -2
- data/lib/syncwrap/change_key_listener.rb +1 -1
- data/lib/syncwrap/cli.rb +1 -1
- data/lib/syncwrap/component.rb +1 -1
- data/lib/syncwrap/components/amazon_linux.rb +1 -1
- data/lib/syncwrap/components/arch.rb +4 -4
- data/lib/syncwrap/components/bundle.rb +1 -1
- data/lib/syncwrap/components/bundled_iyyov_daemon.rb +1 -1
- data/lib/syncwrap/components/bundler_gem.rb +1 -1
- data/lib/syncwrap/components/centos.rb +1 -1
- data/lib/syncwrap/components/change_guard.rb +1 -1
- data/lib/syncwrap/components/commercial_jdk.rb +1 -1
- data/lib/syncwrap/components/cruby_vm.rb +12 -7
- data/lib/syncwrap/components/debian.rb +33 -9
- data/lib/syncwrap/components/etc_hosts.rb +1 -1
- data/lib/syncwrap/components/geminabox.rb +1 -1
- data/lib/syncwrap/components/hashdot.rb +1 -1
- data/lib/syncwrap/components/iyyov.rb +1 -1
- data/lib/syncwrap/components/iyyov_daemon.rb +1 -1
- data/lib/syncwrap/components/jruby_vm.rb +19 -8
- data/lib/syncwrap/components/lvm_cache.rb +9 -4
- data/lib/syncwrap/components/mdraid.rb +1 -1
- data/lib/syncwrap/components/network.rb +18 -1
- data/lib/syncwrap/components/open_jdk.rb +20 -7
- data/lib/syncwrap/components/postgresql.rb +18 -9
- data/lib/syncwrap/components/puma.rb +1 -1
- data/lib/syncwrap/components/qpid.rb +1 -1
- data/lib/syncwrap/components/rake_gem.rb +1 -1
- data/lib/syncwrap/components/rhel.rb +2 -2
- data/lib/syncwrap/components/run_user.rb +1 -1
- data/lib/syncwrap/components/source_tree.rb +1 -1
- data/lib/syncwrap/components/tarpit_gem.rb +1 -1
- data/lib/syncwrap/components/ubuntu.rb +1 -1
- data/lib/syncwrap/components/users.rb +4 -14
- data/lib/syncwrap/context.rb +1 -1
- data/lib/syncwrap/distro.rb +1 -1
- data/lib/syncwrap/formatter.rb +1 -1
- data/lib/syncwrap/git_help.rb +1 -1
- data/lib/syncwrap/hash_support.rb +1 -1
- data/lib/syncwrap/host.rb +1 -1
- data/lib/syncwrap/main.rb +1 -1
- data/lib/syncwrap/path_util.rb +1 -1
- data/lib/syncwrap/rsync.rb +1 -1
- data/lib/syncwrap/ruby_support.rb +1 -1
- data/lib/syncwrap/shell.rb +1 -1
- data/lib/syncwrap/sudoers.rb +67 -0
- data/lib/syncwrap/systemd.rb +29 -6
- data/lib/syncwrap/systemd_service.rb +2 -2
- data/lib/syncwrap/user_data.rb +6 -9
- data/lib/syncwrap/version_support.rb +1 -1
- data/lib/syncwrap/zone_balancer.rb +1 -1
- data/sync/postgresql/postgresql.conf.erb +3 -3
- data/sync/src/hashdot/profiles/jruby.hdp.erb +4 -0
- data/test/setup.rb +1 -4
- data/test/test_components.rb +2 -1
- data/test/test_context.rb +1 -1
- data/test/test_context_rput.rb +1 -1
- data/test/test_rsync.rb +1 -1
- data/test/test_shell.rb +1 -1
- data/test/test_space.rb +1 -1
- data/test/test_space_main.rb +1 -1
- data/test/test_version_support.rb +1 -1
- data/test/test_zone_balancer.rb +1 -1
- metadata +8 -7
data/lib/syncwrap/systemd.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2011-
|
2
|
+
# Copyright (c) 2011-2017 David Kellum
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
5
5
|
# may not use this file except in compliance with the License. You may
|
@@ -19,14 +19,37 @@ module SyncWrap
|
|
19
19
|
# Support module for the systemd service manager, PID 1
|
20
20
|
module SystemD
|
21
21
|
|
22
|
-
# Run systemd `systemctl` command with args via sudo
|
23
|
-
#
|
22
|
+
# Run systemd `systemctl` command with args via sudo. If the first
|
23
|
+
# arg is 'status', defer to #systemctl_status. A trailing hash is
|
24
|
+
# interpreted as options and passed to sudo. Since systemctl
|
25
|
+
# returns non-zero for a variety of normal conditions, the :accept
|
26
|
+
# option can be passed to account for these, as well as :error =>
|
27
|
+
# false.
|
28
|
+
def systemctl( *args )
|
29
|
+
opts = args.last.is_a?( Hash ) && args.pop || {}
|
30
|
+
args.flatten!
|
31
|
+
if args.first == 'status'
|
32
|
+
args.shift
|
33
|
+
systemctl_status( *args, opts )
|
34
|
+
else
|
35
|
+
sudo( "systemctl #{args.join ' '}", opts )
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Run `systemctl status` via sudo, with special case stripping of
|
40
|
+
# whitespace from the end of line output via a sed filter. This is
|
41
|
+
# not an issue with an interactive terminal because output is
|
42
|
+
# piped to pager (less), apparently with '--chop-long-lines'.
|
43
|
+
#
|
44
|
+
# A trailing hash is interpreted as options and passed to
|
24
45
|
# sudo. Since systemctl returns non-zero for a variety of normal
|
25
46
|
# conditions, the :accept option can be passed to account for
|
26
47
|
# these, as well as :error => false.
|
27
|
-
def
|
28
|
-
opts =
|
29
|
-
sudo(
|
48
|
+
def systemctl_status( *units )
|
49
|
+
opts = units.last.is_a?( Hash ) && units.pop || {}
|
50
|
+
sudo( <<-SH, opts )
|
51
|
+
systemctl status #{units.join ' '} | sed -E -e 's/\\s+$//'
|
52
|
+
SH
|
30
53
|
end
|
31
54
|
|
32
55
|
# Expand given shortname to "shortname.service" as used for the
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2011-
|
2
|
+
# Copyright (c) 2011-2017 David Kellum
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
5
5
|
# may not use this file except in compliance with the License. You may
|
@@ -112,7 +112,7 @@ module SyncWrap
|
|
112
112
|
# is also disabled, which may be relevent for merged commands.
|
113
113
|
def status
|
114
114
|
require_systemd_service!
|
115
|
-
|
115
|
+
systemctl_status( *systemd_units, error: false, accept: [0,1,2,3] )
|
116
116
|
end
|
117
117
|
|
118
118
|
protected
|
data/lib/syncwrap/user_data.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2011-
|
2
|
+
# Copyright (c) 2011-2017 David Kellum
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
5
5
|
# may not use this file except in compliance with the License. You may
|
@@ -14,23 +14,20 @@
|
|
14
14
|
# permissions and limitations under the License.
|
15
15
|
#++
|
16
16
|
|
17
|
+
require 'syncwrap/sudoers'
|
18
|
+
|
17
19
|
module SyncWrap
|
18
20
|
|
19
21
|
# Utility methods for generating scripts to pass as user data.
|
20
22
|
module UserData
|
23
|
+
extend Sudoers
|
21
24
|
|
22
25
|
private
|
23
26
|
|
24
27
|
# Returns an sh script to allow no password, no tty sudo for a
|
25
28
|
# specified user by writing a file to /etc/sudoers.d/<user>
|
26
|
-
def no_tty_sudoer( user )
|
27
|
-
|
28
|
-
#!/bin/sh -e
|
29
|
-
echo '#{user} ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/#{user}
|
30
|
-
echo 'Defaults:#{user} !requiretty' >> /etc/sudoers.d/#{user}
|
31
|
-
chmod 440 /etc/sudoers.d/#{user}
|
32
|
-
SH
|
33
|
-
script.split( "\n" ).map( &:strip ).join( "\n" )
|
29
|
+
def no_tty_sudoer( user, opts = {} )
|
30
|
+
self.sudoers_d_script( user, opts )
|
34
31
|
end
|
35
32
|
|
36
33
|
module_function :no_tty_sudoer
|
@@ -38,7 +38,7 @@
|
|
38
38
|
# option or PGDATA environment variable, represented here as ConfigDir.
|
39
39
|
|
40
40
|
<% if pg_specify_etc_config %>
|
41
|
-
data_directory = '
|
41
|
+
data_directory = '<%= pg_data_dir %>'
|
42
42
|
# use data in another directory
|
43
43
|
# (change requires restart)
|
44
44
|
hba_file = '/etc/postgresql/<%= pg_version %>/main/pg_hba.conf'
|
@@ -175,7 +175,7 @@ max_stack_depth = <%= max_stack_depth %> # min 100kB
|
|
175
175
|
#bgwriter_delay = 200ms # 10-10000ms between rounds
|
176
176
|
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
|
177
177
|
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers scanned/round
|
178
|
-
#bgwriter_flush_after = 0 # 0 disables,
|
178
|
+
#bgwriter_flush_after = 0 # measured in pages, 0 disables,
|
179
179
|
# default is 512kB on linux, 0 otherwise (9.6+)
|
180
180
|
|
181
181
|
# - Asynchronous Behavior -
|
@@ -186,7 +186,7 @@ effective_io_concurrency = <%= effective_io_concurrency %>
|
|
186
186
|
#max_parallel_workers_per_gather = 0 # taken from max_worker_processes (9.6+)
|
187
187
|
#old_snapshot_threshold = -1 # 1min-60d; -1 disables; 0 is immediate (9.6+)
|
188
188
|
# (change requires restart)
|
189
|
-
#backend_flush_after = 0 #
|
189
|
+
#backend_flush_after = 0 # measured in pages, 0 disables
|
190
190
|
|
191
191
|
#------------------------------------------------------------------------------
|
192
192
|
# WRITE AHEAD LOG
|
@@ -10,4 +10,8 @@ jruby.bindir = <%= local_root %>/bin
|
|
10
10
|
hashdot.profile += jruby-common
|
11
11
|
|
12
12
|
# Rubygems Home (Install)
|
13
|
+
<% if jruby_gem_home_prop? %>
|
13
14
|
jruby.gem.home = <%= local_root %>/lib/jruby/gems
|
15
|
+
<% else %>
|
16
|
+
hashdot.env.GEM_HOME = <%= local_root %>/lib/jruby/gems
|
17
|
+
<% end %>
|
data/test/setup.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2011-
|
2
|
+
# Copyright (c) 2011-2017 David Kellum
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
5
5
|
# may not use this file except in compliance with the License. You
|
@@ -14,10 +14,7 @@
|
|
14
14
|
# permissions and limitations under the License.
|
15
15
|
#++
|
16
16
|
|
17
|
-
require 'rubygems'
|
18
17
|
require 'bundler/setup'
|
19
|
-
|
20
|
-
require 'minitest/unit'
|
21
18
|
require 'minitest/autorun'
|
22
19
|
|
23
20
|
begin
|
data/test/test_components.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
@@ -40,6 +40,7 @@ module SyncWrap
|
|
40
40
|
[ [ RHEL, CommercialJDK ],
|
41
41
|
[ Debian ],
|
42
42
|
[ Debian, CRubyVM ],
|
43
|
+
[ Debian, OpenJDK, JRubyVM, jruby_version: '9.1.12.0' ],
|
43
44
|
[ CentOS, CRubyVM ],
|
44
45
|
[ Arch, CRubyVM ],
|
45
46
|
[ EtcHosts ],
|
data/test/test_context.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
data/test/test_context_rput.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
data/test/test_rsync.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
data/test/test_shell.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
data/test/test_space.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
data/test/test_space_main.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
data/test/test_zone_balancer.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#.hashdot.profile += jruby-shortlived
|
3
3
|
|
4
4
|
#--
|
5
|
-
# Copyright (c) 2011-
|
5
|
+
# Copyright (c) 2011-2017 David Kellum
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
8
8
|
# may not use this file except in compliance with the License. You
|
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.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Kellum
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: term-ansicolor
|
@@ -98,28 +98,28 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - "~>"
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 5.
|
101
|
+
version: 5.9.1
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
106
|
- - "~>"
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
version: 5.
|
108
|
+
version: 5.9.1
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: rdoc
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
112
112
|
requirements:
|
113
113
|
- - "~>"
|
114
114
|
- !ruby/object:Gem::Version
|
115
|
-
version: 4.0
|
115
|
+
version: 4.3.0
|
116
116
|
type: :development
|
117
117
|
prerelease: false
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
120
|
- - "~>"
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: 4.0
|
122
|
+
version: 4.3.0
|
123
123
|
- !ruby/object:Gem::Dependency
|
124
124
|
name: rjack-tarpit
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -213,6 +213,7 @@ files:
|
|
213
213
|
- lib/syncwrap/rsync.rb
|
214
214
|
- lib/syncwrap/ruby_support.rb
|
215
215
|
- lib/syncwrap/shell.rb
|
216
|
+
- lib/syncwrap/sudoers.rb
|
216
217
|
- lib/syncwrap/systemd.rb
|
217
218
|
- lib/syncwrap/systemd_service.rb
|
218
219
|
- lib/syncwrap/user_data.rb
|
@@ -284,7 +285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
284
285
|
version: '0'
|
285
286
|
requirements: []
|
286
287
|
rubyforge_project:
|
287
|
-
rubygems_version: 2.6.
|
288
|
+
rubygems_version: 2.6.10
|
288
289
|
signing_key:
|
289
290
|
specification_version: 4
|
290
291
|
summary: A rather direct provisioning and deployment system in ruby, bash over ssh,
|