poolparty 1.3.4 → 1.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. data/Rakefile +2 -2
  2. data/VERSION.yml +1 -1
  3. data/bin/cloud-bootstrap +1 -0
  4. data/bin/cloud-configure +1 -0
  5. data/bin/cloud-contract +1 -0
  6. data/bin/cloud-misc +34 -0
  7. data/bin/cloud-setup +36 -0
  8. data/bin/cloud-ssh +4 -1
  9. data/config/jeweler.rb +4 -3
  10. data/examples/monitored_cloud.rb +1 -1
  11. data/examples/thrift/thrift_example.rb +5 -3
  12. data/examples/vmware.rb +28 -0
  13. data/lib/cloud_providers/cloud_provider_instance.rb +14 -5
  14. data/lib/cloud_providers/connections.rb +1 -1
  15. data/lib/core/file.rb +12 -0
  16. data/lib/core/object.rb +2 -2
  17. data/lib/dependency_resolvers/base.rb +1 -1
  18. data/lib/dependency_resolvers/chef.rb +9 -7
  19. data/lib/dependency_resolvers/proxy_object.rb +11 -3
  20. data/lib/mixins/askable.rb +16 -7
  21. data/lib/poolparty/base.rb +8 -7
  22. data/lib/poolparty/cloud.rb +77 -7
  23. data/lib/poolparty/default.rb +1 -0
  24. data/lib/poolparty/installer.rb +8 -4
  25. data/lib/poolparty/installers/ec2.rb +75 -5
  26. data/lib/poolparty/installers/vmware.rb +17 -5
  27. data/lib/poolparty/plugin.rb +1 -5
  28. data/lib/poolparty/plugins/apache.rb +10 -7
  29. data/lib/poolparty/plugins/apache2/base.conf.erb +2 -2
  30. data/lib/poolparty/plugins/apache2/browser_fixes.conf.erb +1 -1
  31. data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
  32. data/lib/poolparty/plugins/collectd/templates/collectd.conf.erb +369 -0
  33. data/lib/poolparty/plugins/collectd.rb +24 -0
  34. data/lib/poolparty/plugins/hermes.rb +89 -0
  35. data/lib/poolparty/pool.rb +33 -3
  36. data/lib/poolparty/resource.rb +32 -18
  37. data/lib/poolparty/resources/directory.rb +5 -1
  38. data/lib/poolparty/resources/exec.rb +2 -2
  39. data/lib/poolparty/resources/file.rb +8 -2
  40. data/lib/poolparty/resources/gem_package.rb +2 -2
  41. data/lib/poolparty/resources/line.rb +23 -6
  42. data/lib/poolparty/resources/mount.rb +2 -2
  43. data/lib/poolparty/resources/package.rb +2 -2
  44. data/lib/poolparty/resources/service.rb +2 -2
  45. data/lib/poolparty/resources/user.rb +2 -2
  46. data/lib/poolparty/resources/variable.rb +4 -3
  47. data/lib/poolparty.rb +5 -3
  48. data/lib/proto/command_interface_handler.rb +17 -1
  49. data/lib/proto/gen-py/cloudthrift/CommandInterface.pyc +0 -0
  50. data/lib/proto/gen-py/cloudthrift/__init__.pyc +0 -0
  51. data/lib/proto/gen-py/cloudthrift/constants.pyc +0 -0
  52. data/lib/proto/gen-py/cloudthrift/ttypes.pyc +0 -0
  53. data/lib/proto/gen-py/thrift/Thrift.pyc +0 -0
  54. data/lib/proto/gen-py/thrift/__init__.pyc +0 -0
  55. data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.pyc +0 -0
  56. data/lib/proto/gen-py/thrift/protocol/TProtocol.pyc +0 -0
  57. data/lib/proto/gen-py/thrift/protocol/__init__.pyc +0 -0
  58. data/lib/proto/gen-py/thrift/transport/TSocket.pyc +0 -0
  59. data/lib/proto/gen-py/thrift/transport/TTransport.pyc +0 -0
  60. data/lib/proto/gen-py/thrift/transport/__init__.pyc +0 -0
  61. data/test/lib/dependency_resolvers/chef_test.rb +92 -100
  62. data/test/lib/poolparty/base_test.rb +13 -0
  63. data/test/lib/poolparty/cloud_test.rb +50 -2
  64. data/test/lib/poolparty/monitor_test.rb +2 -2
  65. data/test/lib/poolparty/resource_test.rb +5 -0
  66. data/test/lib/poolparty/resources/line_test.rb +3 -3
  67. data/test/lib/poolparty/resources/service_test.rb +1 -1
  68. data/test/lib/poolparty/resources/variable_test.rb +33 -10
  69. data/vendor/gems/net-ssh/CHANGELOG.rdoc +127 -0
  70. data/vendor/gems/net-ssh/Manifest +104 -0
  71. data/vendor/gems/net-ssh/README.rdoc +110 -0
  72. data/vendor/gems/net-ssh/Rakefile +26 -0
  73. data/vendor/gems/net-ssh/THANKS.rdoc +16 -0
  74. data/vendor/gems/net-ssh/lib/net/ssh/authentication/agent.rb +176 -0
  75. data/vendor/gems/net-ssh/lib/net/ssh/authentication/constants.rb +18 -0
  76. data/vendor/gems/net-ssh/lib/net/ssh/authentication/key_manager.rb +193 -0
  77. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/abstract.rb +60 -0
  78. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/hostbased.rb +71 -0
  79. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/keyboard_interactive.rb +66 -0
  80. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/password.rb +39 -0
  81. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/publickey.rb +92 -0
  82. data/vendor/gems/net-ssh/lib/net/ssh/authentication/pageant.rb +183 -0
  83. data/vendor/gems/net-ssh/lib/net/ssh/authentication/session.rb +134 -0
  84. data/vendor/gems/net-ssh/lib/net/ssh/buffer.rb +340 -0
  85. data/vendor/gems/net-ssh/lib/net/ssh/buffered_io.rb +149 -0
  86. data/vendor/gems/net-ssh/lib/net/ssh/config.rb +181 -0
  87. data/vendor/gems/net-ssh/lib/net/ssh/connection/channel.rb +625 -0
  88. data/vendor/gems/net-ssh/lib/net/ssh/connection/constants.rb +33 -0
  89. data/vendor/gems/net-ssh/lib/net/ssh/connection/session.rb +596 -0
  90. data/vendor/gems/net-ssh/lib/net/ssh/connection/term.rb +178 -0
  91. data/vendor/gems/net-ssh/lib/net/ssh/errors.rb +85 -0
  92. data/vendor/gems/net-ssh/lib/net/ssh/key_factory.rb +102 -0
  93. data/vendor/gems/net-ssh/lib/net/ssh/known_hosts.rb +129 -0
  94. data/vendor/gems/net-ssh/lib/net/ssh/loggable.rb +61 -0
  95. data/vendor/gems/net-ssh/lib/net/ssh/packet.rb +102 -0
  96. data/vendor/gems/net-ssh/lib/net/ssh/prompt.rb +93 -0
  97. data/vendor/gems/net-ssh/lib/net/ssh/proxy/errors.rb +14 -0
  98. data/vendor/gems/net-ssh/lib/net/ssh/proxy/http.rb +94 -0
  99. data/vendor/gems/net-ssh/lib/net/ssh/proxy/socks4.rb +70 -0
  100. data/vendor/gems/net-ssh/lib/net/ssh/proxy/socks5.rb +129 -0
  101. data/vendor/gems/net-ssh/lib/net/ssh/ruby_compat.rb +7 -0
  102. data/vendor/gems/net-ssh/lib/net/ssh/service/forward.rb +267 -0
  103. data/vendor/gems/net-ssh/lib/net/ssh/test/channel.rb +129 -0
  104. data/vendor/gems/net-ssh/lib/net/ssh/test/extensions.rb +152 -0
  105. data/vendor/gems/net-ssh/lib/net/ssh/test/kex.rb +44 -0
  106. data/vendor/gems/net-ssh/lib/net/ssh/test/local_packet.rb +51 -0
  107. data/vendor/gems/net-ssh/lib/net/ssh/test/packet.rb +81 -0
  108. data/vendor/gems/net-ssh/lib/net/ssh/test/remote_packet.rb +38 -0
  109. data/vendor/gems/net-ssh/lib/net/ssh/test/script.rb +157 -0
  110. data/vendor/gems/net-ssh/lib/net/ssh/test/socket.rb +59 -0
  111. data/vendor/gems/net-ssh/lib/net/ssh/test.rb +89 -0
  112. data/vendor/gems/net-ssh/lib/net/ssh/transport/algorithms.rb +384 -0
  113. data/vendor/gems/net-ssh/lib/net/ssh/transport/cipher_factory.rb +80 -0
  114. data/vendor/gems/net-ssh/lib/net/ssh/transport/constants.rb +30 -0
  115. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/abstract.rb +78 -0
  116. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/md5.rb +12 -0
  117. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/md5_96.rb +11 -0
  118. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/none.rb +15 -0
  119. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/sha1.rb +13 -0
  120. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/sha1_96.rb +11 -0
  121. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac.rb +31 -0
  122. data/vendor/gems/net-ssh/lib/net/ssh/transport/identity_cipher.rb +55 -0
  123. data/vendor/gems/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +208 -0
  124. data/vendor/gems/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +77 -0
  125. data/vendor/gems/net-ssh/lib/net/ssh/transport/kex.rb +13 -0
  126. data/vendor/gems/net-ssh/lib/net/ssh/transport/openssl.rb +128 -0
  127. data/vendor/gems/net-ssh/lib/net/ssh/transport/packet_stream.rb +230 -0
  128. data/vendor/gems/net-ssh/lib/net/ssh/transport/server_version.rb +60 -0
  129. data/vendor/gems/net-ssh/lib/net/ssh/transport/session.rb +276 -0
  130. data/vendor/gems/net-ssh/lib/net/ssh/transport/state.rb +201 -0
  131. data/vendor/gems/net-ssh/lib/net/ssh/verifiers/lenient.rb +30 -0
  132. data/vendor/gems/net-ssh/lib/net/ssh/verifiers/null.rb +12 -0
  133. data/vendor/gems/net-ssh/lib/net/ssh/verifiers/strict.rb +53 -0
  134. data/vendor/gems/net-ssh/lib/net/ssh/version.rb +62 -0
  135. data/vendor/gems/net-ssh/lib/net/ssh.rb +215 -0
  136. data/vendor/gems/net-ssh/net-ssh.gemspec +33 -0
  137. data/vendor/gems/net-ssh/setup.rb +1585 -0
  138. data/vendor/gems/net-ssh/test/authentication/methods/common.rb +28 -0
  139. data/vendor/gems/net-ssh/test/authentication/methods/test_abstract.rb +51 -0
  140. data/vendor/gems/net-ssh/test/authentication/methods/test_hostbased.rb +114 -0
  141. data/vendor/gems/net-ssh/test/authentication/methods/test_keyboard_interactive.rb +98 -0
  142. data/vendor/gems/net-ssh/test/authentication/methods/test_password.rb +50 -0
  143. data/vendor/gems/net-ssh/test/authentication/methods/test_publickey.rb +127 -0
  144. data/vendor/gems/net-ssh/test/authentication/test_agent.rb +205 -0
  145. data/vendor/gems/net-ssh/test/authentication/test_key_manager.rb +105 -0
  146. data/vendor/gems/net-ssh/test/authentication/test_session.rb +93 -0
  147. data/vendor/gems/net-ssh/test/common.rb +106 -0
  148. data/vendor/gems/net-ssh/test/configs/eqsign +3 -0
  149. data/vendor/gems/net-ssh/test/configs/exact_match +8 -0
  150. data/vendor/gems/net-ssh/test/configs/wild_cards +14 -0
  151. data/vendor/gems/net-ssh/test/connection/test_channel.rb +452 -0
  152. data/vendor/gems/net-ssh/test/connection/test_session.rb +488 -0
  153. data/vendor/gems/net-ssh/test/test_all.rb +6 -0
  154. data/vendor/gems/net-ssh/test/test_buffer.rb +336 -0
  155. data/vendor/gems/net-ssh/test/test_buffered_io.rb +63 -0
  156. data/vendor/gems/net-ssh/test/test_config.rb +84 -0
  157. data/vendor/gems/net-ssh/test/test_key_factory.rb +67 -0
  158. data/vendor/gems/net-ssh/test/transport/hmac/test_md5.rb +39 -0
  159. data/vendor/gems/net-ssh/test/transport/hmac/test_md5_96.rb +25 -0
  160. data/vendor/gems/net-ssh/test/transport/hmac/test_none.rb +34 -0
  161. data/vendor/gems/net-ssh/test/transport/hmac/test_sha1.rb +34 -0
  162. data/vendor/gems/net-ssh/test/transport/hmac/test_sha1_96.rb +25 -0
  163. data/vendor/gems/net-ssh/test/transport/kex/test_diffie_hellman_group1_sha1.rb +146 -0
  164. data/vendor/gems/net-ssh/test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb +92 -0
  165. data/vendor/gems/net-ssh/test/transport/test_algorithms.rb +302 -0
  166. data/vendor/gems/net-ssh/test/transport/test_cipher_factory.rb +171 -0
  167. data/vendor/gems/net-ssh/test/transport/test_hmac.rb +34 -0
  168. data/vendor/gems/net-ssh/test/transport/test_identity_cipher.rb +40 -0
  169. data/vendor/gems/net-ssh/test/transport/test_packet_stream.rb +435 -0
  170. data/vendor/gems/net-ssh/test/transport/test_server_version.rb +57 -0
  171. data/vendor/gems/net-ssh/test/transport/test_session.rb +315 -0
  172. data/vendor/gems/net-ssh/test/transport/test_state.rb +173 -0
  173. metadata +116 -4
  174. data/bin/install-poolparty +0 -20
@@ -4,7 +4,8 @@ module PoolParty
4
4
 
5
5
  def steps
6
6
  [
7
- :todo
7
+ :find_ec2_directory, :ask_for_access_key, :ask_for_private_access_key,
8
+ :show_env_setup
8
9
  ]
9
10
  end
10
11
 
@@ -16,15 +17,84 @@ module PoolParty
16
17
  "Ec2 installer"
17
18
  end
18
19
 
19
- def todo
20
+ def find_ec2_directory
21
+ msg = "We found the following vmware files in the default vmware directory.\nChoose one of these to use as your vmrun file or select other\n<line>"
22
+
23
+ directories = {}
24
+ default_ec2_directories.each_with_index do |file,idx|
25
+ directories.merge!(idx+1 => file)
26
+ end
27
+
28
+ base = choose(msg, directories)
29
+ @ec2_directory = base == :other ? ask_for_ec2_directory : base
30
+ end
31
+
32
+ def ask_for_access_key
33
+ access_key_help =<<-EOV
34
+ EC2 uses an access key to identify you and allows you to start and stop instances.
35
+ EOV
36
+
37
+ access_key = <<-EOE
38
+ What is your access key?
39
+ EOE
40
+ ask_with_help :message => access_key, :help => access_key_help do |k|
41
+ @access_key = k
42
+ end
43
+ end
44
+
45
+ def ask_for_private_access_key
46
+ private_access_key_help =<<-EOV
47
+ EC2 uses a private access key to identify you and allows you to start and stop instances.
48
+ EOV
49
+
50
+ private_access_key = <<-EOE
51
+ What is your private access key?
52
+ EOE
53
+ ask_with_help :message => private_access_key, :help => private_access_key_help do |k|
54
+ @secret_access_key = k
55
+ end
56
+ end
57
+
58
+
59
+ def ask_for_ec2_directory
60
+ ec2_directory_help =<<-EOV
61
+ Ec2 needs to know where you store your certificates and private keys. Amazon expects these to be in the ~/.ec2 directory. We suggest a subdirectory of the ~/.ec2 directory so you can separate ec2 accounts.
62
+ EOV
63
+
64
+ ec2_directory_msg = <<-EOE
65
+ What's path to your ec2 directory with your cert and pk files?
66
+ EOE
67
+ ask_with_help :message => ec2_directory_msg, :help => ec2_directory_help
68
+ end
69
+
70
+
71
+ def show_env_setup
20
72
  colored_say <<-EOE
21
- <line>
22
- <red>Not implemented yet</red>
23
- <line>
73
+ <line>
74
+
75
+ Setup your environment:
76
+
77
+ export EC2_ACCESS_KEY=#{@access_key}
78
+ export EC2_SECRET_KEY=#{@secret_access_key}
79
+
80
+ export EC2_PRIVATE_KEY=$(ls #{@ec2_directory}/pk-*.pem)
81
+ export EC2_CERT=$(ls #{@ec2_directory}/cert-*.pem)
82
+
83
+ <line>
24
84
  EOE
25
85
  exit 0
26
86
  end
27
87
 
88
+ private
89
+
90
+ def default_ec2_directories
91
+ @default_ec2_directories ||= find_default_ec2_directories rescue nil
92
+ end
93
+
94
+ def find_default_ec2_directories
95
+ Dir["#{::File.expand_path("~")}/.ec2/*"].reject {|f| File.file?(f) }
96
+ end
97
+
28
98
  end
29
99
  end
30
100
  end
@@ -59,9 +59,14 @@ Awesome. What's the path to your vmwarevm file?
59
59
  ip_help =<<-EOV
60
60
  Right now, vmrun, the remoter base needs an explicitly set ip. Log into your vm and type ifconfig. Copy and paste that here.
61
61
  EOV
62
- @ip = ask_with_help :message => "Now, what's the ip of your vm?", :help => ip_help
62
+ @ip = ask_with_help :message => "what's the ip of your vm?", :help => ip_help
63
63
 
64
- puts @ip
64
+ if @ip =~ /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/
65
+ @ip
66
+ else
67
+ colored_say "<red>You must enter a valid ip</red>"
68
+ get_vm_ip
69
+ end
65
70
  end
66
71
 
67
72
  def get_key
@@ -70,9 +75,16 @@ Finally, we'll set somethings up here shortly, but first we'll need to know wher
70
75
  at ~/.ssh/id_rsa.pub. If this is true, then just press enter. Otherwise, enter the path of your public key.
71
76
  EOV
72
77
 
73
- ask_with_help :message => "What keypair would you like to use? (default: ~/.ssh/id_rsa.pub)",
74
- :help => key_help do |k|
75
- @key = k.empty? ? ::File.expand_path("~/.ssh/id_rsa.pub") : k
78
+ ask_with_help :message => "What keypair would you like to use? (default: ~/.ssh/id_rsa.pub)", :help => key_help do |responded_key|
79
+ responded_key = "~/.ssh/id_rsa.pub" if responded_key.empty?
80
+
81
+ @key = File.expand_path(responded_key)
82
+ if File.file?(@key)
83
+ @key
84
+ else
85
+ colored_say "<red>You must enter a valid path to a keyfile</red>"
86
+ get_key
87
+ end
76
88
  end
77
89
  end
78
90
 
@@ -2,11 +2,7 @@
2
2
  Simply a stub class for documentation purposes
3
3
  Plugins are all resources
4
4
  =end
5
- module PoolParty
6
- class Plugin
7
- end
8
- end
9
5
 
10
- %w(apache git rails).each do |plugin|
6
+ %w(apache git rails collectd hermes).each do |plugin|
11
7
  require "plugins/#{plugin}"
12
8
  end
@@ -1,4 +1,5 @@
1
1
  module PoolParty
2
+
2
3
  module Resources
3
4
 
4
5
  class Apache < Resource
@@ -49,12 +50,12 @@ module PoolParty
49
50
  passenger_configs
50
51
 
51
52
  has_exec "install_passenger_script" do
52
- command 'echo -en \"\\\\n\\\\n\\\\n\\\\n\" | passenger-install-apache2-module'
53
+ command "passenger-install-apache2-module --auto"
53
54
  notifies get_exec("restart-apache2"), :run
54
55
  requires get_exec("restart-apache2")
55
56
  requires get_package("apache2")
56
57
  requires get_gem_package("passenger")
57
- not_if "test -f /etc/apache2/mods-available/passenger.conf && test -s /etc/apache2/mods-available/passenger.conf"
58
+ not_if "test -f /etc/apache2/mods-available/passenger.conf && test -s /etc/apache2/mods-available/passenger.conf "
58
59
  creates lambda { "@node[:apache][:passenger_module_path]" }
59
60
  end
60
61
 
@@ -156,14 +157,16 @@ PassengerRuby <%= @node[:languages][:ruby][:ruby_bin] %>
156
157
  end
157
158
 
158
159
  def install_site(name, opts={})
159
- opts.merge!(:name => "/etc/apache2/sites-available/#{name}")
160
+ sitename = name
161
+
162
+ opts.merge!(:name => "/etc/apache2/sites-available/#{sitename}")
160
163
  has_directory(:name => "/etc/apache2/sites-available")
161
164
  has_file(opts) unless opts[:no_file]
162
- has_exec(:name => "/usr/sbin/a2ensite #{name}") do
165
+ has_exec(:name => "/usr/sbin/a2ensite #{sitename}") do
163
166
  notifies get_exec("reload-apache2"), :run
164
167
  requires get_exec("reload-apache2")
165
- requires get_file("/etc/apache2/sites-available/#{name}")
166
- not_if "/bin/sh -c '[ -L /etc/apache2/sites-enabled/#{name} ] && [ /etc/apache2/sites-enabled/#{name} -ef /etc/apache2/sites-available/#{name} ]'"
168
+ requires get_file("/etc/apache2/sites-available/#{sitename}")
169
+ not_if "/bin/sh -c '[ -L /etc/apache2/sites-enabled/#{sitename} ] && [ /etc/apache2/sites-enabled/#{sitename} -ef /etc/apache2/sites-available/#{sitename} ]'"
167
170
  end
168
171
  end
169
172
 
@@ -201,4 +204,4 @@ end
201
204
  $:.unshift(File.dirname(__FILE__))
202
205
  %w(php5 virtual_host passenger_site).each do |lib|
203
206
  require "apache2/#{lib}"
204
- end
207
+ end
@@ -162,10 +162,10 @@ LogFormat "%h %l %u %t \"%r\" %>s %b" common
162
162
  LogFormat "%{Referer}i -> %U" referer
163
163
  LogFormat "%{User-agent}i" agent
164
164
 
165
- DocumentRoot /var/www
165
+ #DocumentRoot /var/www
166
166
 
167
167
  # Listen <%= @node[:apache][:port] %>
168
- NameVirtualHost *:<%= @node[:apache][:port] %>
168
+ #NameVirtualHost *:<%= @node[:apache][:port] %>
169
169
 
170
170
 
171
171
  # NEW CONFIG FILE
@@ -23,4 +23,4 @@
23
23
  BrowserMatch "^gnome-vfs/1.0" redirect-carefully
24
24
  BrowserMatch "^XML Spy" redirect-carefully
25
25
  BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
26
- </IfModule>
26
+ </IfModule>
@@ -32,9 +32,9 @@ module PoolParty
32
32
  if !File.exists?("#{dir}/#{name}/current")
33
33
 
34
34
  # setup an initial symlink so apache will start even if there have not been any deploys yet
35
- has_site_directory "releases/initial/public"
35
+ #has_site_directory "releases/initial/public"
36
36
  #FIXME the following line is chef specific. It will fail with puppet
37
- # has_symlink(:target_file => "#{dir}/#{name}/current", :to => "#{dir}/#{name}/releases/initial")
37
+ has_link(:target_file => "#{dir}/#{name}/current", :to => "#{dir}/#{name}/releases/initial")
38
38
  end
39
39
  log_dir = "#{site_directory}/shared/log"
40
40
  appended_path "current"
@@ -0,0 +1,369 @@
1
+ # Config file for collectd(1).
2
+ #
3
+ # Some plugins need additional configuration and are disabled by default.
4
+ # Please read collectd.conf(5) for details.
5
+ #
6
+ # You should also read /usr/share/doc/collectd/README.Debian.plugins before
7
+ # enabling any more plugins.
8
+
9
+ #Hostname "localhost"
10
+ FQDNLookup true
11
+ #BaseDir "/var/lib/collectd"
12
+ #PluginDir "/usr/lib/collectd"
13
+ #TypesDB "/usr/lib/collectd/types.db" "/etc/collectd/my_types.db"
14
+ #Interval 10
15
+ #ReadThreads 5
16
+
17
+ #LoadPlugin logfile
18
+ LoadPlugin syslog
19
+
20
+ #<Plugin logfile>
21
+ # LogLevel "info"
22
+ # File STDOUT
23
+ # Timestamp true
24
+ #</Plugin>
25
+
26
+ <Plugin syslog>
27
+ LogLevel info
28
+ </Plugin>
29
+
30
+ #LoadPlugin apache
31
+ #LoadPlugin apcups
32
+ #LoadPlugin ascent
33
+ #LoadPlugin battery
34
+ LoadPlugin cpu
35
+ #LoadPlugin cpufreq
36
+ LoadPlugin csv
37
+ # LoadPlugin df
38
+ LoadPlugin disk
39
+ #LoadPlugin dns
40
+ #LoadPlugin email
41
+ #LoadPlugin entropy
42
+ #LoadPlugin exec
43
+ #LoadPlugin hddtemp
44
+ LoadPlugin interface
45
+ #LoadPlugin ipmi
46
+ LoadPlugin iptables
47
+ #LoadPlugin ipvs
48
+ #LoadPlugin irq
49
+ LoadPlugin libvirt
50
+ LoadPlugin load
51
+ #LoadPlugin mbmon
52
+ #LoadPlugin memcached
53
+ LoadPlugin memory
54
+ #LoadPlugin multimeter
55
+ #LoadPlugin mysql
56
+ #LoadPlugin netlink
57
+ LoadPlugin network
58
+ # LoadPlugin nfs
59
+ #LoadPlugin nginx
60
+ #LoadPlugin ntpd
61
+ #LoadPlugin nut
62
+ #LoadPlugin perl
63
+ #LoadPlugin ping
64
+ #LoadPlugin powerdns
65
+ # LoadPlugin processes
66
+ LoadPlugin rrdtool
67
+ #LoadPlugin sensors
68
+ #LoadPlugin serial
69
+ #LoadPlugin snmp
70
+ # LoadPlugin swap
71
+ #LoadPlugin tail
72
+ LoadPlugin tcpconns
73
+ #LoadPlugin teamspeak2
74
+ #LoadPlugin unixsock
75
+ LoadPlugin users
76
+ LoadPlugin uuid
77
+ #LoadPlugin vmem
78
+ #LoadPlugin vserver
79
+ #LoadPlugin wireless
80
+
81
+ #<Plugin apache>
82
+ # URL "http://localhost/status?auto"
83
+ # User "www-user"
84
+ # Password "secret"
85
+ # VerifyPeer false
86
+ # VerifyHost false
87
+ # CACert "/etc/ssl/ca.crt"
88
+ #</Plugin>
89
+
90
+ #<Plugin apcups>
91
+ # Host "localhost"
92
+ # Port "3551"
93
+ #</Plugin>
94
+
95
+ #<Plugin ascent>
96
+ # URL "http://localhost/ascent/status/"
97
+ # User "www-user"
98
+ # Password "secret"
99
+ # CACert "/etc/ssl/ca.crt"
100
+ #</Plugin>
101
+
102
+ #<Plugin csv>
103
+ # DataDir "/var/lib/collectd/csv"
104
+ # StoreRates false
105
+ #</Plugin>
106
+
107
+ #<Plugin df>
108
+ # Device "/dev/sda1"
109
+ # Device "192.168.0.2:/mnt/nfs"
110
+ # MountPoint "/home/eucalyptus"
111
+ # FSType "ext3"
112
+ # IgnoreSelected false
113
+ # </Plugin>
114
+
115
+ #<Plugin disk>
116
+ # Disk "hda"
117
+ # Disk "/sda[23]/"
118
+ # IgnoreSelected false
119
+ #</Plugin>
120
+
121
+ #<Plugin dns>
122
+ # Interface "eth0"
123
+ # IgnoreSource "192.168.0.1"
124
+ #</Plugin>
125
+
126
+ #<Plugin email>
127
+ # SocketGroup "collectd"
128
+ # SocketPerms "0770"
129
+ # MaxConns 5
130
+ #</Plugin>
131
+
132
+ #<Plugin exec>
133
+ # Exec user "/path/to/exec"
134
+ # Exec "user:group" "/path/to/exec"
135
+ # NotificationExec user "/path/to/exec"
136
+ #</Plugin>
137
+
138
+ #<Plugin hddtemp>
139
+ # Host "127.0.0.1"
140
+ # Port 7634
141
+ # TranslateDevicename false
142
+ #</Plugin>
143
+
144
+ #<Plugin interface>
145
+ # Interface "eth0"
146
+ # IgnoreSelected false
147
+ #</Plugin>
148
+
149
+ #<Plugin iptables>
150
+ # Chain "table" "chain"
151
+ #</Plugin>
152
+
153
+ #<Plugin irq>
154
+ # Irq 7
155
+ # Irq 8
156
+ # Irq 9
157
+ # IgnoreSelected true
158
+ #</Plugin>
159
+
160
+ <Plugin libvirt>
161
+ Connection "qemu:///system"
162
+ # Connection "xen:///"
163
+ RefreshInterval 10
164
+ # Domain "name"
165
+ # BlockDevice "name:device"
166
+ # InterfaceDevice "name:device"
167
+ # IgnoreSelected false
168
+ HostnameFormat hostname name
169
+ </Plugin>
170
+
171
+ #<Plugin mbmon>
172
+ # Host "127.0.0.1"
173
+ # Port 411
174
+ #</Plugin>
175
+
176
+ #<Plugin memcached>
177
+ # Host "127.0.0.1"
178
+ # Port "11211"
179
+ #</Plugin>
180
+
181
+ #<Plugin mysql>
182
+ # Host "database.serv.er"
183
+ # User "db_user"
184
+ # Password "secret"
185
+ # Database "db_name"
186
+ #</Plugin>
187
+
188
+ #<Plugin netlink>
189
+ # Interface "All"
190
+ # VerboseInterface "All"
191
+ # QDisc "eth0" "pfifo_fast-1:0"
192
+ # Class "ppp0" "htb-1:10"
193
+ # Filter "ppp0" "u32-1:0"
194
+ # IgnoreSelected false
195
+ #</Plugin>
196
+
197
+ <Plugin network>
198
+ <%= "Server #{@node[:collectd][:server]}" %>
199
+ Listen "<%= @node.ipaddress %>"
200
+ # Server "ff18::efc0:4a42" "25826"
201
+ # Server "239.192.74.66" "25826"
202
+ # Listen "ff18::efc0:4a42" "25826"
203
+ # Listen "239.192.74.66" "25826"
204
+ # TimeToLive "128"
205
+ # Forward false
206
+ # CacheFlush 1800
207
+ </Plugin>
208
+
209
+ #<Plugin nginx>
210
+ # URL "http://localhost/status?auto"
211
+ # User "www-user"
212
+ # Password "secret"
213
+ # VerifyPeer false
214
+ # VerifyHost false
215
+ # CACert "/etc/ssl/ca.crt"
216
+ #</Plugin>
217
+
218
+ #<Plugin ntpd>
219
+ # Host "localhost"
220
+ # Port 123
221
+ # ReverseLookups false
222
+ #</Plugin>
223
+
224
+ #<Plugin nut>
225
+ # UPS "upsname@hostname:port"
226
+ #</Plugin>
227
+
228
+ #<Plugin perl>
229
+ # IncludeDir "/my/include/path"
230
+ # BaseName "Collectd::Plugin"
231
+ # EnableDebugger ""
232
+ # LoadPlugin "foo"
233
+ # LoadPlugin "bar"
234
+ #</Plugin>
235
+
236
+ #<Plugin ping>
237
+ # Host "host.foo.bar"
238
+ # Host "host.baz.qux"
239
+ # TTL 255
240
+ #</Plugin>
241
+
242
+ #<Plugin powerdns>
243
+ # <Server "server_name">
244
+ # Collect "latency"
245
+ # Collect "udp-answers" "udp-queries"
246
+ # Socket "/var/run/pdns.controlsocket"
247
+ # </Server>
248
+ # <Recursor "recursor_name">
249
+ # Collect "questions"
250
+ # Collect "cache-hits" "cache-misses"
251
+ # Socket "/var/run/pdns_recursor.controlsocket"
252
+ # </Recursor>
253
+ # LocalSocket "/opt/collectd/var/run/collectd-powerdns"
254
+ #</Plugin>
255
+
256
+ #<Plugin processes>
257
+ # Process "name"
258
+ #</Plugin>
259
+
260
+ <Plugin rrdtool>
261
+ DataDir "/var/lib/collectd/rrd"
262
+ # CacheTimeout 120
263
+ # CacheFlush 900
264
+ #
265
+ # The following settings are rather advanced
266
+ # and should usually not be touched:
267
+ # StepSize 10
268
+ # HeartBeat 20
269
+ # RRARows 1200
270
+ # RRATimespan 158112000
271
+ # XFF 0.1
272
+ </Plugin>
273
+
274
+ #<Plugin sensors>
275
+ # Sensor "it8712-isa-0290/temperature-temp1"
276
+ # Sensor "it8712-isa-0290/fanspeed-fan3"
277
+ # Sensor "it8712-isa-0290/voltage-in8"
278
+ # IgnoreSelected false
279
+ #</Plugin>
280
+
281
+ # See /usr/share/doc/collectd/examples/snmp-data.conf.gz for a
282
+ # comprehensive sample configuration.
283
+ #<Plugin snmp>
284
+ # <Data "powerplus_voltge_input">
285
+ # Type "voltage"
286
+ # Table false
287
+ # Instance "input_line1"
288
+ # Values "SNMPv2-SMI::enterprises.6050.5.4.1.1.2.1"
289
+ # </Data>
290
+ # <Data "hr_users">
291
+ # Type "users"
292
+ # Table false
293
+ # Instance ""
294
+ # Values "HOST-RESOURCES-MIB::hrSystemNumUsers.0"
295
+ # </Data>
296
+ # <Data "std_traffic">
297
+ # Type "if_octets"
298
+ # Table true
299
+ # Instance "IF-MIB::ifDescr"
300
+ # Values "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
301
+ # </Data>
302
+ #
303
+ # <Host "some.switch.mydomain.org">
304
+ # Address "192.168.0.2"
305
+ # Version 1
306
+ # Community "community_string"
307
+ # Collect "std_traffic"
308
+ # Inverval 120
309
+ # </Host>
310
+ # <Host "some.server.mydomain.org">
311
+ # Address "192.168.0.42"
312
+ # Version 2
313
+ # Community "another_string"
314
+ # Collect "std_traffic" "hr_users"
315
+ # </Host>
316
+ # <Host "some.ups.mydomain.org">
317
+ # Address "192.168.0.3"
318
+ # Version 1
319
+ # Community "more_communities"
320
+ # Collect "powerplus_voltge_input"
321
+ # Interval 300
322
+ # </Host>
323
+ #</Plugin>
324
+
325
+ #<Plugin "tail">
326
+ # <File "/var/log/exim4/mainlog">
327
+ # Instance "exim"
328
+ # <Match>
329
+ # Regex "S=([1-9][0-9]*)"
330
+ # DSType "CounterAdd"
331
+ # Type "ipt_bytes"
332
+ # Instance "total"
333
+ # </Match>
334
+ # <Match>
335
+ # Regex "\\<R=local_user\\>"
336
+ # DSType "CounterInc"
337
+ # Type "counter"
338
+ # Instance "local_user"
339
+ # </Match>
340
+ # </File>
341
+ #</Plugin>
342
+
343
+ #<Plugin tcpconns>
344
+ # ListeningPorts false
345
+ # LocalPort "25"
346
+ # RemotePort "25"
347
+ #</Plugin>
348
+
349
+ #<Plugin teamspeak2>
350
+ # Host "127.0.0.1"
351
+ # Port "51234"
352
+ # Server "8767"
353
+ #</Plugin>
354
+
355
+ #<Plugin unixsock>
356
+ # SocketFile "/var/run/collectd-unixsock"
357
+ # SocketGroup "collectd"
358
+ # SocketPerms "0660"
359
+ #</Plugin>
360
+
361
+ #<Plugin uuid>
362
+ # UUIDFile "/etc/uuid"
363
+ #</Plugin>
364
+
365
+ #<Plugin vmem>
366
+ # Verbose false
367
+ #</Plugin>
368
+
369
+ Include "/etc/collectd/thresholds.conf"
@@ -0,0 +1,24 @@
1
+ module PoolParty
2
+ module Resources
3
+
4
+ class Collectd < Resource
5
+
6
+ PoolParty::Resources::FileResource.has_searchable_paths(:prepend_paths=> [File.dirname(__FILE__)+'/collectd/templates'])
7
+
8
+ def after_loaded
9
+ has_package 'collectd'
10
+ %w(rrdtool librrd-dev librrd-ruby libsensors-dev libsnmp-dev collectd collectd-dev).each{|pkg|
11
+ has_package pkg
12
+ }
13
+ has_gem_package "astro-collectd"
14
+
15
+ has_variable 'server', "localhost"
16
+ has_file '/etc/collectd/collectd.conf' do
17
+ template 'collectd.conf.erb'
18
+ end
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+ end