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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MDA2NGNlZDk5MmRkNDA0MDAxNGE2NDA0ZWQ3OGU2YTNjZjk1MTM1NA==
5
- data.tar.gz: !binary |-
6
- ZmEzMGY2M2MxZWEzNmJmNjVhMGFhMDM0NTkyMjIxNjhlMThlYTQ1ZA==
2
+ SHA1:
3
+ metadata.gz: 2c4258ca5cb60403937721b99ec018fbc18289e8
4
+ data.tar.gz: 12029e8a5da62543709508ca3ab3a0bad90711c2
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- OWMyYThiN2Q1NzMzN2YxMzI0YzAwNGJjZTA1MDExYmIxOGU3OTA1YTliYjZj
10
- ZjUzMWQzMDQ5NTA0MGE2MzYzZmEyNTk5ZmRiNzg0YmM0MTBkNTFkNDQxNzUy
11
- YTZkYzZlMjhhZThkODE2OTQwZDBjYzQyMDUzOGNkMzljZTc3Zjc=
12
- data.tar.gz: !binary |-
13
- OTJlZjM2OWY5ZjNhNzIyODMwMTdlMmIwMjgzODBiMjJkNGNlODFkM2RmNzFj
14
- M2IxMzFiYmQ1ZmJhODgwZDVhMWVmZDBlOWUwMDdmOTRhMWE2MjliZDRhZjk4
15
- NzhkMDAyNDVkYTNkYjRjNzAyOWZkNDhlYThjMDYyYjZiYWVhMDk=
6
+ metadata.gz: 4fcf05069560e9995661d80808fad36ee659bbb9197d84cfc2de947cda864380bd6cd3458a5e08132bd2094da9a4e1fda4250d655d483790f1326fee1bb1a58e
7
+ data.tar.gz: 908822b562a073403269b707434d624cbed21414282ee59ef79d8248eccd832320b873cfa48d9bf6efd95b464e94c374544953135dc7b1ecb17801c25b9edc05
@@ -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', '~> 3.3.2'
32
- gem.add_dependency 'facter', '~> 1.7.3'
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
@@ -1,8 +1,9 @@
1
1
  {
2
2
  :puppet_version => '3.3.0',
3
- :mcollective_version => 2.2,
4
- :puppetlabs_el5_rpm_repo => 'http://yum.puppetlabs.com/el/5/products/i386/puppetlabs-release-5-7.noarch.rpm',
5
- :puppetlabs_el6_rpm_repo => 'http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-7.noarch.rpm',
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 Facter.osfamily == 'Debian'
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-#{Facter.lsbdistcodename}.deb"
36
+ shell "wget http://apt.puppetlabs.com/puppetlabs-release-#{@distcodename}.deb"
30
37
  puts "Installing Puppet Labs repository..."
31
- shell "dpkg -i puppetlabs-release-#{Facter.lsbdistcodename}.deb"
38
+ shell "dpkg -i puppetlabs-release-#{@distcodename}.deb"
32
39
  shell "apt-get update"
33
- shell "rm puppetlabs-release-#{Facter.lsbdistcodename}.deb"
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 Facter.osfamily == 'RedHat'
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 Facter.operatingsystemmajrelease
50
+ case @osmajrelease
44
51
  when "5"
45
52
  shell "rpm -ivh #{CONFIG[:puppetlabs_el5_rpm_repo]}"
46
- Facter.architecture == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_i686_repo]}")
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
- Facter.architecture == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_i686_repo]}")
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 "#{Facter.operatingsystem} #{Facter.operatingsystemmajrelease} is not supported. Exiting now..."
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
- shell "chmod +x /etc/init.d/ec2-run-user-data"
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
- FileUtils.cp_r(Dir.glob("#{base_dir}/mcollective_additions/plugins/v#{CONFIG[:mcollective_version]}/*"), "/usr/share/mcollective/plugins/mcollective")
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("#{base_dir}/mcollective_additions/server.cfg", "/etc/mcollective", :remove_destination => true)
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("#{base_dir}/mcollective_additions/#{Facter.osfamily.downcase}.mcollective.init", "/etc/init.d/mcollective", :remove_destination => true)
147
- shell "chmod +x /etc/init.d/mcollective"
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
@@ -1,3 +1,3 @@
1
1
  module DtkNodeAgent
2
- VERSION="0.6.1"
2
+ VERSION="0.6.2"
3
3
  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.1
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-08 00:00:00.000000000 Z
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.3.2
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.3.2
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: 1.7.3
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: 1.7.3
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.2.2
237
+ rubygems_version: 2.4.1
223
238
  signing_key:
224
239
  specification_version: 4
225
240
  summary: DTK Node Agent gem.