puppet-rundeck 0.0.2 → 0.0.3
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/README.rdoc +17 -12
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/puppet-rundeck.rb +13 -12
- metadata +26 -12
data/README.rdoc
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
Integrates Puppet with RunDeck.
|
4
4
|
|
5
|
-
It assumes you have Puppet stored configuration running.
|
6
|
-
|
7
5
|
Visiting the URL, for example localhost:8144, should return
|
8
|
-
a list of all
|
9
|
-
facts for use with RunDeck.
|
6
|
+
a list of all nodes on the Puppet master and populates the
|
7
|
+
appropriate facts for use with RunDeck.
|
8
|
+
|
9
|
+
Note: Version 0.0.2 required stored configuration to be enabled. Later versions do not.
|
10
10
|
|
11
11
|
== Prerequisites
|
12
12
|
|
13
13
|
Requires:
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
- Puppet
|
16
|
+
- Builder (2.0.0 and later)
|
17
17
|
|
18
18
|
== Installation
|
19
19
|
|
@@ -31,13 +31,13 @@ Then browse to appropriate URL, by default `localhost:8144`
|
|
31
31
|
|
32
32
|
$ curl localhost:8144
|
33
33
|
|
34
|
-
A list of the current
|
34
|
+
A list of the current hosts and appropriate facts to configure them on RunDeck will be returned in XML.
|
35
35
|
|
36
36
|
For example:
|
37
37
|
|
38
38
|
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE project PUBLIC "-//DTO Labs Inc.//DTD Resources Document 1.0//EN" "project.dtd">
|
39
39
|
<project>
|
40
|
-
<
|
40
|
+
<node name="pelin.lovedthanlost.net"
|
41
41
|
type="Node"
|
42
42
|
description="pelin.lovedthanlost.net"
|
43
43
|
osArch="Linux"
|
@@ -46,14 +46,19 @@ For example:
|
|
46
46
|
osVersion="14"
|
47
47
|
tags="nil"
|
48
48
|
username="root"
|
49
|
-
hostname="pelin.lovedthanlost.net"
|
49
|
+
hostname="pelin.lovedthanlost.net"/>
|
50
50
|
</project>
|
51
51
|
|
52
|
+
To use with RunDeck specify the target URL as the value of the `project.resources.url` option in the
|
53
|
+
`project.properties` file for your project, for example:
|
54
|
+
|
55
|
+
project.resources.url = http://localhost:8144
|
56
|
+
|
52
57
|
You can specify some configuration options:
|
53
58
|
|
54
|
-
|
55
|
-
|
56
|
-
|
59
|
+
* -c or --config to override the default Puppet configuration file (defaults to `/etc/puppet/puppet.conf`)
|
60
|
+
* -u or --username the user for RunDeck to SSH as, defaults to current user
|
61
|
+
* -p or --port the port to start `puppet-rundeck` on, default to 8144
|
57
62
|
|
58
63
|
== Credits
|
59
64
|
|
data/Rakefile
CHANGED
@@ -12,6 +12,7 @@ begin
|
|
12
12
|
gem.email = "james@puppetlabs.com"
|
13
13
|
gem.homepage = "http://github.com/jamtur01/puppet-rundeck"
|
14
14
|
gem.authors = ["James Turnbull"]
|
15
|
+
gem.add_dependency "sinatra"
|
15
16
|
gem.add_dependency "puppet", ">= 0.24.8"
|
16
17
|
gem.add_dependency "builder", ">= 2.0.0"
|
17
18
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/lib/puppet-rundeck.rb
CHANGED
@@ -26,11 +26,11 @@ class PuppetRundeck < Sinatra::Base
|
|
26
26
|
class << self
|
27
27
|
attr_accessor :config_file
|
28
28
|
attr_accessor :username
|
29
|
+
attr_accessor :source
|
29
30
|
|
30
31
|
def configure
|
31
32
|
Puppet[:config] = PuppetRundeck.config_file
|
32
33
|
Puppet.parse_config
|
33
|
-
Puppet::Rails.connect
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -41,21 +41,22 @@ class PuppetRundeck < Sinatra::Base
|
|
41
41
|
|
42
42
|
get '/' do
|
43
43
|
response = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE project PUBLIC "-//DTO Labs Inc.//DTD Resources Document 1.0//EN" "project.dtd"><project>'
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
Puppet::Node::Facts.terminus_class = :yaml
|
45
|
+
Puppet[:clientyamldir] = "$yamldir"
|
46
|
+
nodes = Puppet::Node::Facts.search("*")
|
47
|
+
nodes.each do |n|
|
48
|
+
puts "Processing #{n.name}"
|
48
49
|
response << <<-EOH
|
49
|
-
<node name="#{xml_escape(
|
50
|
+
<node name="#{xml_escape(n.name)}"
|
50
51
|
type="Node"
|
51
|
-
description="#{xml_escape(
|
52
|
-
osArch="#{xml_escape(
|
53
|
-
osFamily="#{xml_escape(
|
54
|
-
osName="#{xml_escape(
|
55
|
-
osVersion="#{xml_escape(
|
52
|
+
description="#{xml_escape(n.name)}"
|
53
|
+
osArch="#{xml_escape(n.values["kernel"])}"
|
54
|
+
osFamily="#{xml_escape(n.values["kernel"])}"
|
55
|
+
osName="#{xml_escape(n.values["operatingsystem"])}"
|
56
|
+
osVersion="#{xml_escape(n.values["operatingsystemrelease"])}"
|
56
57
|
tags="nil"
|
57
58
|
username="#{xml_escape(PuppetRundeck.username)}"
|
58
|
-
hostname="#{xml_escape(
|
59
|
+
hostname="#{xml_escape(n.values["fqdn"])}"/>
|
59
60
|
EOH
|
60
61
|
end
|
61
62
|
response << "</project>"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-rundeck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- James Turnbull
|
@@ -15,13 +15,27 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-01-11 00:00:00 -08:00
|
19
19
|
default_executable: puppet-rundeck
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
22
|
+
name: sinatra
|
23
23
|
prerelease: false
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: puppet
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
25
39
|
none: false
|
26
40
|
requirements:
|
27
41
|
- - ">="
|
@@ -33,11 +47,11 @@ dependencies:
|
|
33
47
|
- 8
|
34
48
|
version: 0.24.8
|
35
49
|
type: :runtime
|
36
|
-
version_requirements: *
|
50
|
+
version_requirements: *id002
|
37
51
|
- !ruby/object:Gem::Dependency
|
38
52
|
name: builder
|
39
53
|
prerelease: false
|
40
|
-
requirement: &
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
55
|
none: false
|
42
56
|
requirements:
|
43
57
|
- - ">="
|
@@ -49,11 +63,11 @@ dependencies:
|
|
49
63
|
- 0
|
50
64
|
version: 2.0.0
|
51
65
|
type: :runtime
|
52
|
-
version_requirements: *
|
66
|
+
version_requirements: *id003
|
53
67
|
- !ruby/object:Gem::Dependency
|
54
68
|
name: rspec
|
55
69
|
prerelease: false
|
56
|
-
requirement: &
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
57
71
|
none: false
|
58
72
|
requirements:
|
59
73
|
- - ">="
|
@@ -65,11 +79,11 @@ dependencies:
|
|
65
79
|
- 9
|
66
80
|
version: 1.2.9
|
67
81
|
type: :development
|
68
|
-
version_requirements: *
|
82
|
+
version_requirements: *id004
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: yard
|
71
85
|
prerelease: false
|
72
|
-
requirement: &
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
73
87
|
none: false
|
74
88
|
requirements:
|
75
89
|
- - ">="
|
@@ -79,7 +93,7 @@ dependencies:
|
|
79
93
|
- 0
|
80
94
|
version: "0"
|
81
95
|
type: :development
|
82
|
-
version_requirements: *
|
96
|
+
version_requirements: *id005
|
83
97
|
description: Provides a resource endpoint for RunDeck from a Puppet Server
|
84
98
|
email: james@puppetlabs.com
|
85
99
|
executables:
|