syncwrap 2.8.3 → 2.9.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 +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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae35d27dcde1232833010cd8c54f0ee90cebc534
|
4
|
+
data.tar.gz: 82ab6099f4a345f2f0e44636015450d2ba0a3521
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a2b7367f7d7cde4bad82143a1e0979e240f80cf9d8ae72e13f180da9cda6005e5c8eec13f56c15713cea70c43ade473252d0f870009aef7011c278e290ff403
|
7
|
+
data.tar.gz: 12feeb0d898f1349077b74272db9f106679ba2fc765a8e04705bf31b42a49b03bb6d114aaa59d2cd5292790a50c9cc72c884f1e6646e90436dcc671575834f30
|
data/History.rdoc
CHANGED
@@ -1,3 +1,40 @@
|
|
1
|
+
=== 2.9.0 (2017-7-18)
|
2
|
+
* SyncWrap::Debian
|
3
|
+
* Fix Debian#dist_if_installed? grep pattern. Was previously giving
|
4
|
+
some (so far harmless) false positives for known but not-installed
|
5
|
+
packages.
|
6
|
+
* Make the dist_if_installed? and dist_if_not_installed? methods
|
7
|
+
more friendly for external use, with default arguments.
|
8
|
+
* Expose a dist_update for external/explicit use, including
|
9
|
+
:update_required option with dist_install.
|
10
|
+
* SyncWrap::Arch, SyncWrap::RHEL; dist_if_* default arguments parity
|
11
|
+
* SyncWrap::Network; Add name to /etc/hosts if necessary on Debian
|
12
|
+
* SyncWrap::CRubyVM
|
13
|
+
* Add hashes for 2.2.7 and 2.3.4
|
14
|
+
* Update default version to 2.2.7
|
15
|
+
* Preemptively add 2.4 to distro rubies to uninstall
|
16
|
+
* SyncWrap::JRubyVM
|
17
|
+
* Add hash for 1.7.27
|
18
|
+
* Add hash and support for 9.1.12.0
|
19
|
+
* SyncWrap::LVMCache
|
20
|
+
* Add --yes flag to final lvconvert call, required by later
|
21
|
+
versions, compatible with earlier
|
22
|
+
* Add thin-provisioning-tools as dependency on Debian, as the included
|
23
|
+
cached_check command is needed for reboot.
|
24
|
+
* SyncWrap::Sudoers
|
25
|
+
* Collect all sudoers config details here. This was previously
|
26
|
+
spread between SyncWrap::Users and SyncWrap::UserData.
|
27
|
+
* Add always_set_home option (was only default on RHEL)
|
28
|
+
* Use common ordering of secure_path
|
29
|
+
* SyncWrap::PostgreSQL
|
30
|
+
* Make the stop after Debian package install conditional
|
31
|
+
* Make Debian move of pg_data_dir conditional
|
32
|
+
* Use the more obvious pg_data_dir with etc config on Debian
|
33
|
+
* SyncWrap::OpenJDK support for Ubuntu 16.04 package openjdk-8-jdk-headless
|
34
|
+
* Add SyncWrap::SystemD#systemctl_status with filtering of end-of-line
|
35
|
+
whitespace in output, as has been oberved when calling `systemctl
|
36
|
+
status` remotely over SSH.
|
37
|
+
|
1
38
|
=== 2.8.3 (2017-1-31)
|
2
39
|
* Upgrade SyncWrap::CRubyVM default version to 2.2.6 (+ hash for 2.3.3)
|
3
40
|
* Upgrade SyncWrap::JRubyVM default version to 1.7.26
|
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
@@ -141,7 +141,7 @@ yourself.
|
|
141
141
|
|
142
142
|
== License
|
143
143
|
|
144
|
-
Copyright (c) 2011-
|
144
|
+
Copyright (c) 2011-2017 David Kellum
|
145
145
|
|
146
146
|
Licensed under the Apache License, Version 2.0 (the "License"); you
|
147
147
|
may not use this file except in compliance with the License. You
|
data/Rakefile
CHANGED
data/bin/syncwrap
CHANGED
data/lib/syncwrap.rb
CHANGED
data/lib/syncwrap/amazon_ec2.rb
CHANGED
data/lib/syncwrap/amazon_ws.rb
CHANGED
data/lib/syncwrap/base.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
|
@@ -15,7 +15,7 @@
|
|
15
15
|
#++
|
16
16
|
|
17
17
|
module SyncWrap
|
18
|
-
VERSION='2.
|
18
|
+
VERSION='2.9.0'
|
19
19
|
|
20
20
|
GEM_ROOT = File.dirname(File.dirname(File.dirname(__FILE__))) # :nodoc:
|
21
21
|
end
|
data/lib/syncwrap/cli.rb
CHANGED
data/lib/syncwrap/component.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
|
@@ -64,7 +64,7 @@ module SyncWrap
|
|
64
64
|
# If chk is true, then wrap block in a sudo bash conditional
|
65
65
|
# testing if any specified pkgs are not installed. Otherwise just
|
66
66
|
# yield to block.
|
67
|
-
def dist_if_not_installed?( pkgs, chk, opts, &block )
|
67
|
+
def dist_if_not_installed?( pkgs, chk = true, opts = {}, &block )
|
68
68
|
if chk
|
69
69
|
c = "if ! pacman -Q #{pkgs.join ' '} >/dev/null 2>&1; then"
|
70
70
|
sudo( c, opts.merge( close: 'fi' ), &block )
|
@@ -74,8 +74,8 @@ module SyncWrap
|
|
74
74
|
end
|
75
75
|
|
76
76
|
# Wrap block in a sudo bash conditional testing if the single
|
77
|
-
# specified pkg is installed.
|
78
|
-
def dist_if_installed?( pkg, opts, &block )
|
77
|
+
# specified pkg is installed.
|
78
|
+
def dist_if_installed?( pkg, opts = {}, &block )
|
79
79
|
c = "if pacman -Q #{pkg} >/dev/null 2>&1; then"
|
80
80
|
sudo( c, opts.merge( close: 'fi' ), &block )
|
81
81
|
end
|
@@ -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
|
@@ -47,7 +47,7 @@ module SyncWrap
|
|
47
47
|
include HashSupport
|
48
48
|
|
49
49
|
# Default #ruby_version to install
|
50
|
-
DEFAULT_VERSION = '2.2.
|
50
|
+
DEFAULT_VERSION = '2.2.7'
|
51
51
|
|
52
52
|
# A set of known (sha256) cryptographic hashes, keyed by version
|
53
53
|
# string, for the source ruby-(version).tar.gz package.
|
@@ -62,15 +62,19 @@ module SyncWrap
|
|
62
62
|
'30c4b31697a4ca4ea0c8db8ad30cf45e6690a0f09687e5d483c933c03ca335e3',
|
63
63
|
'2.2.6' =>
|
64
64
|
'de8e192791cb157d610c48a9a9ff6e7f19d67ce86052feae62b82e3682cc675f',
|
65
|
+
'2.2.7' =>
|
66
|
+
'374184c6c5bbc88fb7bad422368d4053a236fb6587f0eff76146dcba57f93da5',
|
65
67
|
'2.3.3' =>
|
66
|
-
'241408c8c555b258846368830a06146e4849a1d58dcaf6b14a3b6a73058115b7'
|
68
|
+
'241408c8c555b258846368830a06146e4849a1d58dcaf6b14a3b6a73058115b7',
|
69
|
+
'2.3.4' =>
|
70
|
+
'98e18f17c933318d0e32fed3aea67e304f174d03170a38fd920c4fbe49fec0c3' }
|
67
71
|
|
68
72
|
# The ruby version to install, as it appears in source packages
|
69
73
|
# from ruby-lang.org. Note that starting with 2.1.0, the patch
|
70
74
|
# release (p#) no longer appears in package names.
|
71
75
|
# (Default: DEFAULT_VERSION)
|
72
76
|
#
|
73
|
-
# Example values: '2.0.0-p481', '2.2.
|
77
|
+
# Example values: '2.0.0-p481', '2.2.7', '2.3.3'
|
74
78
|
attr_accessor :ruby_version
|
75
79
|
|
76
80
|
# If true, attempt to uninstall any pre-existing distro packaged
|
@@ -123,10 +127,11 @@ module SyncWrap
|
|
123
127
|
|
124
128
|
def uninstall_distro_ruby
|
125
129
|
if distro.is_a?( RHEL )
|
126
|
-
dist_uninstall( %w[ ruby ruby18 ruby19
|
130
|
+
dist_uninstall( %w[ ruby ruby18 ruby19
|
131
|
+
ruby20 ruby21 ruby22 ruby23 ruby24] )
|
127
132
|
else
|
128
|
-
dist_uninstall( %w[ ruby ruby1.8 ruby1.9 ruby1.9.1
|
129
|
-
|
133
|
+
dist_uninstall( %w[ ruby ruby1.8 ruby1.9 ruby1.9.1 ruby1.9.3
|
134
|
+
ruby2.0 ruby2.1 ruby2.2 ruby2.3 ruby2.4] )
|
130
135
|
end
|
131
136
|
end
|
132
137
|
|
@@ -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
|
@@ -52,9 +52,9 @@ module SyncWrap
|
|
52
52
|
@systemd
|
53
53
|
end
|
54
54
|
|
55
|
-
# Install the specified package names.
|
56
|
-
#
|
57
|
-
#
|
55
|
+
# Install the specified package names. Also calls #dist_update
|
56
|
+
# before any package is actually installed. A trailing hash is
|
57
|
+
# interpreted as options, see below.
|
58
58
|
#
|
59
59
|
# ==== Options
|
60
60
|
#
|
@@ -62,7 +62,10 @@ module SyncWrap
|
|
62
62
|
# installed. Thus no upgrades will be
|
63
63
|
# performed. (Default: true)
|
64
64
|
#
|
65
|
-
# :minimal::
|
65
|
+
# :minimal:: If true, pass --no-install-recommends flag to
|
66
|
+
# apt-get.
|
67
|
+
#
|
68
|
+
# :update_required:: Passed to #dist_update
|
66
69
|
#
|
67
70
|
# Options are also passed to the sudo calls.
|
68
71
|
def dist_install( *args )
|
@@ -73,11 +76,30 @@ module SyncWrap
|
|
73
76
|
chk = opts[ :check_install ]
|
74
77
|
chk = check_install? if chk.nil?
|
75
78
|
dist_if_not_installed?( args, chk != false, opts ) do
|
76
|
-
|
79
|
+
dist_update( opts )
|
77
80
|
sudo( "apt-get -yq install #{(flags + args).join ' '}", opts )
|
78
81
|
end
|
79
82
|
end
|
80
83
|
|
84
|
+
# Conditionally run "apt-get update" to resynchronize the package
|
85
|
+
# index files from their sources. Normally this is handled
|
86
|
+
# automatically by #dist_install, but it can also be called
|
87
|
+
# directly, for example when a new source is added.
|
88
|
+
#
|
89
|
+
# ==== Options
|
90
|
+
#
|
91
|
+
# :update_required:: If true, always perform update. If specified
|
92
|
+
# as false, do nothing. If unspecified, run on
|
93
|
+
# the first call per Context only.
|
94
|
+
#
|
95
|
+
# Options are also passed to the sudo calls.
|
96
|
+
def dist_update( opts = {} )
|
97
|
+
req = opts[ :update_required ]
|
98
|
+
if ( req != false ) && ( first_apt? || req )
|
99
|
+
sudo( "apt-get -yqq update", opts )
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
81
103
|
# Uninstall the specified package names. A trailing hash is
|
82
104
|
# interpreted as options and passed to the sudo calls.
|
83
105
|
def dist_uninstall( *pkgs )
|
@@ -93,7 +115,7 @@ module SyncWrap
|
|
93
115
|
# If chk is true, then wrap block in a sudo bash conditional
|
94
116
|
# testing if any specified pkgs are not installed. Otherwise just
|
95
117
|
# yield to block.
|
96
|
-
def dist_if_not_installed?( pkgs, chk, opts, &block )
|
118
|
+
def dist_if_not_installed?( pkgs, chk = true, opts = {}, &block )
|
97
119
|
if chk
|
98
120
|
qry = "dpkg-query -W -f '${db:Status-Status}\\n' #{pkgs.join ' '}"
|
99
121
|
cnt = qry + " | grep -c -E '^installed$'"
|
@@ -104,9 +126,11 @@ module SyncWrap
|
|
104
126
|
end
|
105
127
|
end
|
106
128
|
|
107
|
-
|
129
|
+
# Wrap block in a sudo bash conditional testing if the single
|
130
|
+
# specified pkg is installed.
|
131
|
+
def dist_if_installed?( pkg, opts = {}, &block )
|
108
132
|
qry = "dpkg-query -W -f '${db:Status-Status}\\n' #{pkg}"
|
109
|
-
tst = qry + " | grep -q 'installed'"
|
133
|
+
tst = qry + " | grep -q -E '^installed$'"
|
110
134
|
cond = "if #{tst}; then"
|
111
135
|
sudo( cond, opts.merge( close: 'fi' ), &block )
|
112
136
|
end
|
@@ -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
|
@@ -35,15 +35,22 @@ module SyncWrap
|
|
35
35
|
DEFAULT_VERSION = '1.7.26'
|
36
36
|
|
37
37
|
# A set of known cryptographic hashes, keyed by version
|
38
|
-
# string.
|
39
|
-
#
|
40
|
-
KNOWN_HASHES = {
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
38
|
+
# string. We prefer sha256 but sha1 is what is published for
|
39
|
+
# 1.7.x.
|
40
|
+
KNOWN_HASHES = {
|
41
|
+
'1.7.22' => '6b9e310a04ad8173d0d6dbe299da04c0ef85fc15',
|
42
|
+
'1.7.23' => '2b5e796feeed2bcfab02f8bf2ff3d77ca318e310',
|
43
|
+
'1.7.24' => '0c321d2192768dfec419bee6b44c7190f4db32e1',
|
44
|
+
'1.7.25' => 'cd15aef419f97cff274491e53fcfb8b88ec36785',
|
45
|
+
'1.7.26' => 'cca25a1ffb8b75a8d4a4d4667e7f6b20341c2b74',
|
46
|
+
'1.7.27' => '4a24fe103d3735b23cc58668dec711857125a6f3',
|
47
|
+
'9.1.12.0' =>
|
48
|
+
'ddb23c95f4b3cc3fc1cc57b81cb4ceee776496ede402b9a6eb0622cf15e1a597',
|
49
|
+
}
|
45
50
|
|
46
51
|
# JRuby version to install (default: DEFAULT_VERSION)
|
52
|
+
#
|
53
|
+
# Example values: '1.7.26', '9.1.12.0'
|
47
54
|
attr_accessor :jruby_version
|
48
55
|
|
49
56
|
# A cryptographic hash value (hexadecimal, some standard length)
|
@@ -144,6 +151,10 @@ module SyncWrap
|
|
144
151
|
|
145
152
|
alias :jruby_gem_install :gem_install
|
146
153
|
|
154
|
+
def jruby_gem_home_prop?
|
155
|
+
version_lt?( jruby_version, [9] )
|
156
|
+
end
|
157
|
+
|
147
158
|
protected
|
148
159
|
|
149
160
|
def min_deps_supported?
|