dust-deploy 0.9.1 → 0.9.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.
- data/changelog.md +9 -0
- data/lib/dust/recipes/repositories.rb +18 -1
- data/lib/dust/recipes/ruby_rvm.rb +2 -0
- data/lib/dust/recipes/unattended_upgrades.rb +1 -0
- data/lib/dust/server.rb +9 -4
- data/lib/dust/version.rb +1 -1
- metadata +12 -12
data/changelog.md
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
Changelog
|
2
2
|
=============
|
3
3
|
|
4
|
+
0.9.2
|
5
|
+
------------
|
6
|
+
|
7
|
+
- adds openssl dev packages as dependency for ruby_rvm recipe
|
8
|
+
- improves @node.package_installed?, was failing for apt systems recently
|
9
|
+
- sudo uses sh -c for executing commands, this prevents problems when > < || | && ; is used
|
10
|
+
- repositories recipe now can handle keyring .deb files with the 'key' option
|
11
|
+
|
12
|
+
|
4
13
|
0.9.1
|
5
14
|
------------
|
6
15
|
|
@@ -102,7 +102,24 @@ class Repositories < Recipe
|
|
102
102
|
# add the repository key
|
103
103
|
if repo['key']
|
104
104
|
::Dust.print_msg "adding #{name} repository key"
|
105
|
-
|
105
|
+
|
106
|
+
# if the key is a .deb, download and install it
|
107
|
+
if repo['key'].match /\.deb$/
|
108
|
+
ret = @node.exec 'mktemp --tmpdir dust.XXXXXXXXXX'
|
109
|
+
if ret[:exit_code] != 0
|
110
|
+
puts
|
111
|
+
::Dust.print_failed 'could not create temporary file on server'
|
112
|
+
return false
|
113
|
+
end
|
114
|
+
|
115
|
+
tmpfile = ret[:stdout].chomp
|
116
|
+
|
117
|
+
::Dust.print_result @node.exec("wget -q -O #{tmpfile} '#{repo['key']}' && dpkg -i #{tmpfile}")[:exit_code]
|
118
|
+
|
119
|
+
# if not, just download and add the key
|
120
|
+
else
|
121
|
+
::Dust.print_result @node.exec("wget -q -O- '#{repo['key']}' |apt-key add -")[:exit_code]
|
122
|
+
end
|
106
123
|
end
|
107
124
|
end
|
108
125
|
end
|
@@ -10,6 +10,7 @@ class RubyRvm < Recipe
|
|
10
10
|
if @node.uses_apt?
|
11
11
|
return unless @node.install_package 'dh-autoreconf'
|
12
12
|
return unless @node.install_package 'build-essential'
|
13
|
+
@node.install_package 'libssl-dev'
|
13
14
|
@node.install_package 'libyaml-dev'
|
14
15
|
@node.install_package 'libxml2-dev'
|
15
16
|
@node.install_package 'libxslt1-dev'
|
@@ -19,6 +20,7 @@ class RubyRvm < Recipe
|
|
19
20
|
elsif @node.uses_rpm?
|
20
21
|
return unless @node.install_package 'gcc'
|
21
22
|
return unless @node.install_package 'make'
|
23
|
+
@node.install_package 'openssl-devel'
|
22
24
|
@node.install_package 'libyaml-devel'
|
23
25
|
@node.install_package 'libxml2-devel'
|
24
26
|
@node.install_package 'libxslt-devel'
|
data/lib/dust/server.rb
CHANGED
@@ -64,11 +64,14 @@ module Dust
|
|
64
64
|
|
65
65
|
# request a terminal (sudo needs it)
|
66
66
|
# and prepend "sudo"
|
67
|
+
# command is wrapped in ", escapes " in the command string
|
68
|
+
# and then executed using "sh -c", so that
|
69
|
+
# the use of > < && || | and ; doesn't screw things up
|
67
70
|
if @node['sudo']
|
68
71
|
channel.request_pty
|
69
|
-
command = "sudo #{command}"
|
72
|
+
command = "sudo sh -c \"#{command.gsub('"','\\"')}\""
|
70
73
|
end
|
71
|
-
|
74
|
+
|
72
75
|
channel.exec command do |ch, success|
|
73
76
|
abort "FAILED: couldn't execute command (ssh.channel.exec)" unless success
|
74
77
|
|
@@ -260,7 +263,7 @@ module Dust
|
|
260
263
|
|
261
264
|
packages.each do |package|
|
262
265
|
if uses_apt?
|
263
|
-
return Dust.print_ok '', options
|
266
|
+
return Dust.print_ok '', options if exec("dpkg -l #{package} |grep '^ii'")[:exit_code] == 0
|
264
267
|
elsif uses_emerge?
|
265
268
|
return Dust.print_ok '', options unless exec("qlist -I #{package}")[:stdout].empty?
|
266
269
|
elsif uses_rpm?
|
@@ -288,7 +291,9 @@ module Dust
|
|
288
291
|
elsif uses_rpm?
|
289
292
|
exec "yum install -y #{package}"
|
290
293
|
else
|
291
|
-
|
294
|
+
puts
|
295
|
+
return Dust.print_failed "install_package only supports apt, emerge and yum systems at the moment",
|
296
|
+
{ :quiet => options[:quiet], :indent => options[:indent] + 1 }
|
292
297
|
end
|
293
298
|
|
294
299
|
# check if package actually was installed
|
data/lib/dust/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dust-deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: net-ssh
|
16
|
-
requirement: &
|
16
|
+
requirement: &70357952436820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70357952436820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: net-scp
|
27
|
-
requirement: &
|
27
|
+
requirement: &70357952436280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70357952436280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: net-sftp
|
38
|
-
requirement: &
|
38
|
+
requirement: &70357952435600 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70357952435600
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: thor
|
49
|
-
requirement: &
|
49
|
+
requirement: &70357952434660 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70357952434660
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: ipaddress
|
60
|
-
requirement: &
|
60
|
+
requirement: &70357952434240 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70357952434240
|
69
69
|
description: when puppet and chef suck because you want to be in control and sprinkle
|
70
70
|
just cannot do enough for you
|
71
71
|
email:
|