dtk-node-agent 0.6.1 → 0.6.2
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 +5 -13
- data/dtk-node-agent.gemspec +3 -2
- data/lib/config/install.config +6 -5
- data/lib/dtk-node-agent/installer.rb +37 -19
- data/lib/dtk-node-agent/version.rb +1 -1
- data/mcollective_additions/redhat.mcollective.service +14 -0
- metadata +38 -23
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZmEzMGY2M2MxZWEzNmJmNjVhMGFhMDM0NTkyMjIxNjhlMThlYTQ1ZA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2c4258ca5cb60403937721b99ec018fbc18289e8
|
4
|
+
data.tar.gz: 12029e8a5da62543709508ca3ab3a0bad90711c2
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
ZjUzMWQzMDQ5NTA0MGE2MzYzZmEyNTk5ZmRiNzg0YmM0MTBkNTFkNDQxNzUy
|
11
|
-
YTZkYzZlMjhhZThkODE2OTQwZDBjYzQyMDUzOGNkMzljZTc3Zjc=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OTJlZjM2OWY5ZjNhNzIyODMwMTdlMmIwMjgzODBiMjJkNGNlODFkM2RmNzFj
|
14
|
-
M2IxMzFiYmQ1ZmJhODgwZDVhMWVmZDBlOWUwMDdmOTRhMWE2MjliZDRhZjk4
|
15
|
-
NzhkMDAyNDVkYTNkYjRjNzAyOWZkNDhlYThjMDYyYjZiYWVhMDk=
|
6
|
+
metadata.gz: 4fcf05069560e9995661d80808fad36ee659bbb9197d84cfc2de947cda864380bd6cd3458a5e08132bd2094da9a4e1fda4250d655d483790f1326fee1bb1a58e
|
7
|
+
data.tar.gz: 908822b562a073403269b707434d624cbed21414282ee59ef79d8248eccd832320b873cfa48d9bf6efd95b464e94c374544953135dc7b1ecb17801c25b9edc05
|
data/dtk-node-agent.gemspec
CHANGED
@@ -28,13 +28,14 @@ Gem::Specification.new do |gem|
|
|
28
28
|
gem.require_paths = ["lib"]
|
29
29
|
gem.version = DtkNodeAgent::PROD_VERSION || "#{DtkNodeAgent::VERSION}.#{ARGV[3]}".chomp(".")
|
30
30
|
|
31
|
-
gem.add_dependency 'puppet', '
|
32
|
-
gem.add_dependency 'facter', '~>
|
31
|
+
gem.add_dependency 'puppet', '3.6.2'
|
32
|
+
gem.add_dependency 'facter', '~> 2.2.0'
|
33
33
|
gem.add_dependency 'grit', '~> 2.5.0'
|
34
34
|
gem.add_dependency 'stomp', '~> 1.3.1'
|
35
35
|
gem.add_dependency 'sshkeyauth', '~> 0.0.11'
|
36
36
|
gem.add_dependency 'serverspec', '~> 1.1.0'
|
37
37
|
gem.add_dependency 'specinfra', '~> 1.0.4'
|
38
38
|
gem.add_dependency 'posix-spawn', '0.3.8'
|
39
|
+
gem.add_dependency 'ruby-debug', '~> 0.10.4'
|
39
40
|
|
40
41
|
end
|
data/lib/config/install.config
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
{
|
2
2
|
:puppet_version => '3.3.0',
|
3
|
-
|
4
|
-
:puppetlabs_el5_rpm_repo => 'http://yum.puppetlabs.com/
|
5
|
-
|
3
|
+
:mcollective_version => 2.2,
|
4
|
+
:puppetlabs_el5_rpm_repo => 'http://yum.puppetlabs.com/puppetlabs-release-el-5.noarch.rpm',
|
5
|
+
:puppetlabs_el6_rpm_repo => 'http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm',
|
6
|
+
:puppetlabs_el7_rpm_repo => 'http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm',
|
6
7
|
:rpm_forge_el5_X86_64_repo => 'http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm',
|
7
8
|
:rpm_forge_el5_i686_repo => 'http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el5.rf.i386.rpm',
|
8
9
|
:rpm_forge_el6_X86_64_repo => 'http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm',
|
@@ -10,7 +11,7 @@
|
|
10
11
|
:puppet_omnibus_deb64 => 'http://dtk-storage.s3.amazonaws.com/puppet-omnibus_2.7.23-fpm0_amd64.deb',
|
11
12
|
:puppet_omnibus_rpm64 => 'http://dtk-storage.s3.amazonaws.com/puppet-omnibus-2.7.23.fpm0-1.x86_64.rpm',
|
12
13
|
:upgrades => {
|
13
|
-
:redhat => ['openssl', 'bash'],
|
14
|
-
:debian => ['openssl', 'bash']
|
14
|
+
:redhat => ['openssl', 'bash', 'emacs-nox', 'vim-enhanced'],
|
15
|
+
:debian => ['openssl', 'bash', 'emacs23-nox', 'vim']
|
15
16
|
}
|
16
17
|
}
|
@@ -1,13 +1,20 @@
|
|
1
1
|
module DTK
|
2
2
|
module NodeAgent
|
3
3
|
class Installer
|
4
|
+
require 'facter'
|
4
5
|
|
5
6
|
# read configuration
|
6
7
|
CONFIG = eval(File.open(File.expand_path('../config/install.config', File.dirname(__FILE__))) {|f| f.read })
|
7
8
|
|
9
|
+
# set OS facts
|
10
|
+
@osfamily = Facter.value('osfamily').downcase
|
11
|
+
@osname = Facter.value('operatingsystem')
|
12
|
+
@osmajrelease = Facter.value('operatingsystemmajrelease')
|
13
|
+
@osarch = Facter.value('architecture')
|
14
|
+
@distcodename = Facter.value('lsbdistcodename')
|
15
|
+
|
8
16
|
def self.run(argv)
|
9
17
|
require 'optparse'
|
10
|
-
require 'facter'
|
11
18
|
require 'fileutils'
|
12
19
|
require 'dtk-node-agent/version'
|
13
20
|
|
@@ -18,7 +25,7 @@ module DTK
|
|
18
25
|
exit(1)
|
19
26
|
end
|
20
27
|
|
21
|
-
if
|
28
|
+
if @osfamily == 'debian'
|
22
29
|
# set up apt and install packages
|
23
30
|
shell "apt-get update --fix-missing"
|
24
31
|
shell "apt-get install -y build-essential wget curl git"
|
@@ -26,43 +33,43 @@ module DTK
|
|
26
33
|
Array(CONFIG[:upgrades][:debian]).each do |package|
|
27
34
|
shell "apt-get install -y #{package}"
|
28
35
|
end
|
29
|
-
shell "wget http://apt.puppetlabs.com/puppetlabs-release-#{
|
36
|
+
shell "wget http://apt.puppetlabs.com/puppetlabs-release-#{@distcodename}.deb"
|
30
37
|
puts "Installing Puppet Labs repository..."
|
31
|
-
shell "dpkg -i puppetlabs-release-#{
|
38
|
+
shell "dpkg -i puppetlabs-release-#{@distcodename}.deb"
|
32
39
|
shell "apt-get update"
|
33
|
-
shell "rm puppetlabs-release-#{
|
40
|
+
shell "rm puppetlabs-release-#{@distcodename}.deb"
|
34
41
|
# install mcollective
|
35
42
|
puts "Installing MCollective..."
|
36
43
|
shell "apt-get -y install mcollective"
|
37
|
-
elsif
|
44
|
+
elsif @osfamily == 'redhat'
|
38
45
|
shell "yum -y install yum-utils wget bind-utils"
|
39
46
|
# install upgrades
|
40
47
|
Array(CONFIG[:upgrades][:redhat]).each do |package|
|
41
48
|
shell "yum -y update #{package}"
|
42
49
|
end
|
43
|
-
case
|
50
|
+
case @osmajrelease
|
44
51
|
when "5"
|
45
52
|
shell "rpm -ivh #{CONFIG[:puppetlabs_el5_rpm_repo]}"
|
46
|
-
|
53
|
+
@osarch == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_i686_repo]}")
|
47
54
|
when "6", "n/a"
|
48
55
|
shell "rpm -ivh #{CONFIG[:puppetlabs_el6_rpm_repo]}"
|
49
|
-
|
56
|
+
@osarch == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_i686_repo]}")
|
50
57
|
shell "yum-config-manager --disable rpmforge-release"
|
51
58
|
shell "yum-config-manager --enable rpmforge-extras"
|
59
|
+
when "7"
|
60
|
+
shell "rpm -ivh #{CONFIG[:puppetlabs_el7_rpm_repo]}"
|
52
61
|
else
|
53
|
-
puts "#{
|
62
|
+
puts "#{@osname} #{@osmajrelease} is not supported. Exiting now..."
|
54
63
|
exit(1)
|
55
64
|
end
|
56
65
|
puts "Installing MCollective..."
|
57
66
|
shell "yum -y install mcollective"
|
58
|
-
shell "chkconfig mcollective on"
|
59
67
|
shell "yum -y install git"
|
60
68
|
# install ec2-run-user-data init script
|
61
69
|
# but only if the machine is running on AWS
|
62
70
|
if `host instance-data.ec2.internal`.include? 'has address'
|
63
71
|
FileUtils.cp("#{base_dir}/src/etc/init.d/ec2-run-user-data", "/etc/init.d/ec2-run-user-data") unless File.exist?("/etc/init.d/ec2-run-user-data")
|
64
|
-
|
65
|
-
shell "chkconfig --level 345 ec2-run-user-data on"
|
72
|
+
set_init("ec2-run-user-data")
|
66
73
|
end
|
67
74
|
else
|
68
75
|
puts "Unsuported OS for automatic agent installation. Exiting now..."
|
@@ -137,20 +144,31 @@ module DTK
|
|
137
144
|
FileUtils.cp_r(Dir.glob("#{base_dir}/puppet_additions/modules/r8"), "/etc/puppet/modules")
|
138
145
|
# copy mcollective plugins
|
139
146
|
FileUtils.cp_r(Dir.glob("/usr/libexec/mcollective/mcollective/*"), "/usr/share/mcollective/plugins/mcollective") if File.directory?("/usr/libexec/mcollective/")
|
140
|
-
|
141
|
-
|
147
|
+
mco_add_dir = "#{base_dir}/mcollective_additions"
|
148
|
+
mco_plugin_dir = "#{mco_add_dir}/plugins/v#{CONFIG[:mcollective_version]}"
|
149
|
+
FileUtils.cp_r(Dir.glob("#{mco_plugin_dir}/*"), "/usr/share/mcollective/plugins/mcollective")
|
142
150
|
# copy mcollective config
|
143
|
-
FileUtils.cp_r("#{
|
144
|
-
|
151
|
+
FileUtils.cp_r("#{mco_add_dir}/server.cfg", "/etc/mcollective", :remove_destination => true)
|
145
152
|
# copy compatible mcollective init script
|
146
|
-
FileUtils.cp_r("#{
|
147
|
-
|
153
|
+
FileUtils.cp_r("#{mco_add_dir}/#{@osfamily}.mcollective.init", "/etc/init.d/mcollective", :remove_destination => true)
|
154
|
+
FileUtils.cp_r("#{mco_add_dir}/#{@osfamily}.mcollective.service", "/usr/lib/systemd/system/mcollective.service", :remove_destination => true) if File.exist?("/usr/lib/systemd/system/mcollective.service")
|
155
|
+
set_init("mcollective")
|
148
156
|
end
|
149
157
|
|
150
158
|
def self.base_dir
|
151
159
|
File.expand_path('../..', File.dirname(__FILE__))
|
152
160
|
end
|
153
161
|
|
162
|
+
def self.set_init(script)
|
163
|
+
shell "chmod +x /etc/init.d/#{script}"
|
164
|
+
if @osfamily == 'debian'
|
165
|
+
shell "update-rc.d #{script} defaults"
|
166
|
+
elsif @osfamily == 'redhat'
|
167
|
+
shell "chkconfig --level 345 #{script} on"
|
168
|
+
shell "systemctl daemon-reload" if @osmajrelease == '7'
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
154
172
|
end
|
155
173
|
end
|
156
174
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
[Unit]
|
2
|
+
Description=The Marionette Collective
|
3
|
+
After=network.target
|
4
|
+
|
5
|
+
[Service]
|
6
|
+
Type=forking
|
7
|
+
StandardOutput=syslog
|
8
|
+
StandardError=syslog
|
9
|
+
ExecStart=/usr/sbin/mcollectived --config=/etc/mcollective/server.cfg --pidfile=/var/run/mcollective.pid
|
10
|
+
ExecReload=/bin/kill -USR1 $MAINPID
|
11
|
+
PIDFile=/var/run/mcollective.pid
|
12
|
+
|
13
|
+
[Install]
|
14
|
+
WantedBy=multi-user.target
|
metadata
CHANGED
@@ -1,111 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dtk-node-agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rich PELAVIN
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.6.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.6.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: facter
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.2.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: grit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 2.5.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 2.5.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: stomp
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 1.3.1
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.3.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sshkeyauth
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 0.0.11
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.0.11
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: serverspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 1.1.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 1.1.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: specinfra
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ~>
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 1.0.4
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - ~>
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.0.4
|
111
111
|
- !ruby/object:Gem::Dependency
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - '='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 0.3.8
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: ruby-debug
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.10.4
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.10.4
|
125
139
|
description: The DTK Node Agent runs on your nodes that you wish to manage using your
|
126
140
|
DTK Server. It comes pre-installed on all nodes created/managed by hosted DTK Server
|
127
141
|
accounts.
|
@@ -190,6 +204,7 @@ files:
|
|
190
204
|
- mcollective_additions/plugins/v2.2/security/sshkey.rb
|
191
205
|
- mcollective_additions/plugins/v2.2/util/puppetrunner.rb
|
192
206
|
- mcollective_additions/redhat.mcollective.init
|
207
|
+
- mcollective_additions/redhat.mcollective.service
|
193
208
|
- mcollective_additions/server.cfg
|
194
209
|
- puppet_additions/modules/r8/lib/puppet/type/r8_export_file.rb
|
195
210
|
- puppet_additions/modules/r8/manifests/export_variable.rb
|
@@ -209,17 +224,17 @@ require_paths:
|
|
209
224
|
- lib
|
210
225
|
required_ruby_version: !ruby/object:Gem::Requirement
|
211
226
|
requirements:
|
212
|
-
- -
|
227
|
+
- - ">="
|
213
228
|
- !ruby/object:Gem::Version
|
214
229
|
version: '0'
|
215
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
231
|
requirements:
|
217
|
-
- -
|
232
|
+
- - ">="
|
218
233
|
- !ruby/object:Gem::Version
|
219
234
|
version: '0'
|
220
235
|
requirements: []
|
221
236
|
rubyforge_project:
|
222
|
-
rubygems_version: 2.
|
237
|
+
rubygems_version: 2.4.1
|
223
238
|
signing_key:
|
224
239
|
specification_version: 4
|
225
240
|
summary: DTK Node Agent gem.
|