dtk-node-agent 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
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.