rubber 2.12.2 → 2.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +27 -0
  3. data/lib/rubber/cli.rb +0 -1
  4. data/lib/rubber/cloud/aws_table_store.rb +1 -1
  5. data/lib/rubber/cloud/fog_storage.rb +1 -1
  6. data/lib/rubber/cloud/vsphere.rb +23 -1
  7. data/lib/rubber/commands/vulcanize.rb +1 -1
  8. data/lib/rubber/dns/aws.rb +4 -3
  9. data/lib/rubber/generator.rb +6 -2
  10. data/lib/rubber/instance.rb +48 -6
  11. data/lib/rubber/recipes/rubber.rb +8 -0
  12. data/lib/rubber/recipes/rubber/deploy.rb +9 -3
  13. data/lib/rubber/recipes/rubber/instances.rb +1 -0
  14. data/lib/rubber/recipes/rubber/setup.rb +10 -2
  15. data/lib/rubber/recipes/rubber/static_ips.rb +1 -1
  16. data/lib/rubber/recipes/rubber/utils.rb +8 -2
  17. data/lib/rubber/version.rb +1 -1
  18. data/templates/apache/config/rubber/deploy-apache.rb +1 -1
  19. data/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +8 -0
  20. data/templates/apache/config/rubber/rubber-apache.yml +2 -2
  21. data/templates/base/config/rubber/deploy-util.rb +3 -3
  22. data/templates/base/config/rubber/rubber.yml +8 -3
  23. data/templates/cassandra/config/rubber/deploy-cassandra.rb +2 -2
  24. data/templates/collectd/config/rubber/role/collectd/collectd-ping.conf +11 -2
  25. data/templates/collectd/config/rubber/role/collectd/thresholds.conf +1 -1
  26. data/templates/collectd/script/collectd/role/redis/redis_info.rb +0 -1
  27. data/templates/cruise/config/rubber/role/cruise/my.cnf +1 -1
  28. data/templates/graphite/config/rubber/deploy-graphite.rb +125 -69
  29. data/templates/graphite/config/rubber/role/graphite_server/carbon.conf +150 -26
  30. data/templates/graphite/config/rubber/role/graphite_server/graphite-carbon-default.conf +8 -0
  31. data/templates/graphite/config/rubber/role/graphite_server/graphite_server-upstart.conf +3 -0
  32. data/templates/graphite/config/rubber/role/graphite_server/storage-schemas.conf +2 -1
  33. data/templates/graphite/config/rubber/role/graphite_web/crontab +1 -1
  34. data/templates/graphite/config/rubber/role/graphite_web/dashboard.conf +1 -1
  35. data/templates/graphite/config/rubber/role/graphite_web/dashboard.html +1 -1
  36. data/templates/graphite/config/rubber/role/graphite_web/graphite.wsgi +4 -1
  37. data/templates/graphite/config/rubber/role/graphite_web/local_settings.py +171 -41
  38. data/templates/graphite/config/rubber/role/graphite_web/uwsgi.ini +6 -3
  39. data/templates/graphite/config/rubber/rubber-graphite.yml +7 -1
  40. data/templates/graphite/templates.rb +9 -0
  41. data/templates/graylog/config/rubber/common/graylog-rsyslog.conf +1 -1
  42. data/templates/graylog/config/rubber/role/graylog_server/graylog2.conf +2 -2
  43. data/templates/jenkins/config/rubber/role/jenkins/jenkins-apache-vhost.conf +5 -0
  44. data/templates/memcached/config/rubber/role/memcached/memcached.conf +1 -1
  45. data/templates/mysql/config/rubber/deploy-mysql.rb +2 -2
  46. data/templates/mysql/config/rubber/role/db/my.cnf +1 -1
  47. data/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +3 -3
  48. data/templates/mysql_cluster/config/rubber/role/mysql_sql/my.cnf +1 -1
  49. data/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +12 -0
  50. data/templates/passenger/config/rubber/rubber-passenger.yml +1 -1
  51. data/templates/passenger_nginx/config/rubber/role/passenger_nginx/nginx.conf +1 -1
  52. data/templates/percona/config/rubber/deploy-percona.rb +2 -2
  53. data/templates/percona/config/rubber/role/db/my.cnf +1 -1
  54. data/templates/postgresql/config/rubber/deploy-postgresql.rb +4 -8
  55. data/templates/postgresql/config/rubber/role/postgresql/pg_hba.conf +1 -1
  56. data/templates/postgresql/config/rubber/role/postgresql/postgresql.conf +1 -1
  57. data/templates/redis/config/rubber/role/redis/redis.conf +1 -1
  58. data/templates/torquebox/config/rubber/role/app/torquebox-apache-vhost.conf +12 -0
  59. metadata +4 -2
@@ -0,0 +1,8 @@
1
+ <%
2
+ is_old_ubuntu = %w[10.04 12.04].include?(rubber_instance.os_version)
3
+
4
+ @path = '/etc/default/graphite-carbon'
5
+ @skip = is_old_ubuntu
6
+ %>
7
+ # Change to true, to enable carbon-cache on boot
8
+ CARBON_CACHE_ENABLED=true
@@ -1,6 +1,9 @@
1
1
  <%
2
2
  @path = "/etc/init/graphite-server.conf"
3
3
  @backup = false
4
+
5
+ is_old_ubuntu = %w[10.04 12.04].include?(rubber_instance.os_version)
6
+ @skip = ! is_old_ubuntu
4
7
  %>
5
8
  description "graphite server"
6
9
 
@@ -1,5 +1,6 @@
1
1
  <%
2
- @path = '/opt/graphite/conf/storage-schemas.conf'
2
+ is_old_ubuntu = %w[10.04 12.04].include?(rubber_instance.os_version)
3
+ @path = is_old_ubuntu ? "#{rubber_env.graphite_dir}/conf/storage-schemas.conf" : '/etc/carbon/storage-schemas.conf'
3
4
  %>
4
5
 
5
6
  # Schema definitions for whisper files. Entries are scanned in order,
@@ -5,4 +5,4 @@
5
5
  %>
6
6
 
7
7
  # Backup graphite web UI db every day
8
- 0 1 * * * <%= Rubber.root %>/script/rubber cron --task util:backup --directory /mnt/graphite_backups --name graphite --command "nice zip \%dir\%/\%name\%_<%= rubber_env.host %>_\%time_stamp\%.zip /opt/graphite/storage/*.db"
8
+ 0 1 * * * <%= Rubber.root %>/script/rubber cron --task util:backup --directory /mnt/graphite_backups --name graphite --command "nice zip #{dir}/#{name}_<%= rubber_env.host %>_#{time_stamp}.zip <%= rubber_env.graphite_storage_dir %>/*.db"
@@ -1,5 +1,5 @@
1
1
  <%
2
- @path = '/opt/graphite/conf/dashboard.conf'
2
+ @path = "#{rubber_env.graphite_dir}/conf/dashboard.conf"
3
3
  %>
4
4
  # This configuration file controls the behavior of the Dashboard UI, available
5
5
  # at http://my-graphite-server/dashboard/.
@@ -1,6 +1,6 @@
1
1
  <!--
2
2
  <%
3
- @path = "/opt/graphite/webapp/content/dashboard.html"
3
+ @path = "#{rubber_env.graphite_dir}/webapp/content/dashboard.html"
4
4
  %>
5
5
 
6
6
  Simple graphite dashboard cycler for use on a large display - e.g. googletv/chrome on a wall mounted TV
@@ -1,5 +1,8 @@
1
1
  <%
2
- @path = '/opt/graphite/conf/graphite.wsgi'
2
+ is_old_ubuntu = %w[10.04 12.04].include?(rubber_instance.os_version)
3
+
4
+ @path = "#{rubber_env.graphite_dir}/conf/graphite.wsgi"
5
+ @skip = ! is_old_ubuntu
3
6
  %>
4
7
  import os, sys
5
8
  sys.path.append('/opt/graphite/webapp')
@@ -1,31 +1,128 @@
1
1
  <%
2
- @path = '/opt/graphite/webapp/graphite/local_settings.py'
2
+ is_old_ubuntu = %w[10.04 12.04].include?(rubber_instance.os_version)
3
+
4
+ @path = is_old_ubuntu ? "#{rubber_env.graphite_dir}/webapp/graphite/local_settings.py" : '/etc/graphite/local_settings.py'
3
5
  %>
4
- # Edit this file to override the default graphite settings, do not edit settings.py!!!
6
+ ## Graphite local_settings.py
7
+ # Edit this file to customize the default Graphite webapp settings
8
+ #
9
+ # Additional customizations to Django settings can be added to this file as well
10
+
11
+ #####################################
12
+ # General Configuration #
13
+ #####################################
14
+ <% unless is_old_ubuntu %>
15
+ # Set this to a long, random unique string to use as a secret key for this
16
+ # install. This key is used for salting of hashes used in auth tokens,
17
+ # CRSF middleware, cookie storage, etc. This should be set identically among
18
+ # instances if used behind a load balancer.
19
+ SECRET_KEY = '<%= rubber_env.graphite_web_secret %>'
20
+ <% end %>
5
21
 
6
- # Turn on debugging and restart apache if you ever see an "Internal Server Error" page
7
- #DEBUG = True
22
+ # In Django 1.5+ set this to the list of hosts your graphite instances is
23
+ # accessible as. See:
24
+ # https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-ALLOWED_HOSTS
25
+ ALLOWED_HOSTS = [ '*' ]
8
26
 
9
- # Set your local timezone (django will *try* to figure this out automatically)
27
+ # Set your local timezone (Django's default is America/Chicago)
10
28
  # If your graphs appear to be offset by a couple hours then this probably
11
29
  # needs to be explicitly set to your local timezone.
12
30
  TIME_ZONE = 'America/New_York'
13
31
 
14
- # Uncomment these to enable more performance-related logging
15
- #LOG_RENDERING_PERFORMANCE = True
16
- #LOG_CACHE_PERFORMANCE = True
32
+ # Override this to provide documentation specific to your Graphite deployment
33
+ #DOCUMENTATION_URL = "http://graphite.readthedocs.org/"
34
+
35
+ # Logging
36
+ # True see: https://answers.launchpad.net/graphite/+question/159731
37
+ LOG_RENDERING_PERFORMANCE = True
38
+ LOG_CACHE_PERFORMANCE = True
39
+ LOG_METRIC_ACCESS = True
40
+
41
+ # Enable full debug page display on exceptions (Internal Server Error pages)
42
+ DEBUG = True
43
+
44
+ # If using RRD files and rrdcached, set to the address or socket of the daemon
45
+ #FLUSHRRDCACHED = 'unix:/var/run/rrdcached.sock'
46
+
47
+ # This lists the memcached servers that will be used by this webapp.
48
+ # If you have a cluster of webapps you should ensure all of them
49
+ # have the *exact* same value for this setting. That will maximize cache
50
+ # efficiency. Setting MEMCACHE_HOSTS to be empty will turn off use of
51
+ # memcached entirely.
52
+ #
53
+ # You should not use the loopback address (127.0.0.1) here if using clustering
54
+ # as every webapp in the cluster should use the exact same values to prevent
55
+ # unneeded cache misses. Set to [] to disable caching of images and fetched data
56
+ #MEMCACHE_HOSTS = ['10.10.10.10:11211', '10.10.10.11:11211', '10.10.10.12:11211']
57
+ #DEFAULT_CACHE_DURATION = 60 # Cache images and data for 1 minute
58
+
59
+
60
+ #####################################
61
+ # Filesystem Paths #
62
+ #####################################
63
+ # Change only GRAPHITE_ROOT if your install is merely shifted from /opt/graphite
64
+ # to somewhere else
65
+ <% if is_old_ubuntu %>
66
+ #GRAPHITE_ROOT = '/opt/graphite'
67
+ <% else %>
68
+ GRAPHITE_ROOT = '/usr/share/graphite-web'
69
+ <% end %>
70
+
71
+ # Most installs done outside of a separate tree such as /opt/graphite will only
72
+ # need to change these three settings. Note that the default settings for each
73
+ # of these is relative to GRAPHITE_ROOT
74
+ <% if is_old_ubuntu %>
75
+ #CONF_DIR = '/opt/graphite/conf'
76
+ #STORAGE_DIR = '/opt/graphite/storage'
77
+ #CONTENT_DIR = '/opt/graphite/webapp/content'
78
+ <% else %>
79
+ CONF_DIR = '/etc/graphite'
80
+ STORAGE_DIR = '<%= rubber_env.graphite_storage_dir %>'
81
+ CONTENT_DIR = '/usr/share/graphite-web/static'
82
+ <% end %>
17
83
 
18
- # Override this if you need to provide documentation specific to your graphite deployment
19
- #DOCUMENTATION_URL = "http://wiki.mycompany.com/graphite"
84
+ # To further or fully customize the paths, modify the following. Note that the
85
+ # default settings for each of these are relative to CONF_DIR and STORAGE_DIR
86
+ #
87
+ ## Webapp config files
88
+ #DASHBOARD_CONF = '/opt/graphite/conf/dashboard.conf'
89
+ #GRAPHTEMPLATES_CONF = '/opt/graphite/conf/graphTemplates.conf'
20
90
 
21
- # Enable email-related features
22
- #SMTP_SERVER = "mail.mycompany.com"
91
+ ## Data directories
92
+ # NOTE: If any directory is unreadable in DATA_DIRS it will break metric browsing
93
+ <% if is_old_ubuntu %>
94
+ #WHISPER_DIR = '/opt/graphite/storage/whisper'
95
+ #RRD_DIR = '/opt/graphite/storage/rrd'
96
+ #DATA_DIRS = [WHISPER_DIR, RRD_DIR] # Default: set from the above variables
97
+ #LOG_DIR = '/opt/graphite/storage/log/webapp'
98
+ #INDEX_FILE = '/opt/graphite/storage/index' # Search index file
99
+ <% else %>
100
+ #WHISPER_DIR = '/var/lib/graphite/whisper'
101
+ #RRD_DIR = '/opt/graphite/storage/rrd'
102
+ #DATA_DIRS = [WHISPER_DIR, RRD_DIR] # Default: set from the above variables
103
+ LOG_DIR = '/var/log/graphite'
104
+ #INDEX_FILE = '/var/lib/graphite/search_index' # Search index file
105
+ <% end %>
106
+
107
+ #####################################
108
+ # Email Configuration #
109
+ #####################################
110
+ # This is used for emailing rendered Graphs
111
+ # Default backend is SMTP
112
+ #EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
113
+ #EMAIL_HOST = 'localhost'
114
+ #EMAIL_PORT = 25
115
+ #EMAIL_HOST_USER = ''
116
+ #EMAIL_HOST_PASSWORD = ''
117
+ #EMAIL_USE_TLS = False
118
+ # To drop emails on the floor, enable the Dummy backend:
119
+ #EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'
23
120
 
24
121
 
25
122
  #####################################
26
- # LDAP Authentication Configuration #
123
+ # Authentication Configuration #
27
124
  #####################################
28
- # LDAP / ActiveDirectory authentication setup
125
+ ## LDAP / ActiveDirectory authentication setup
29
126
  #USE_LDAP_AUTH = True
30
127
  #LDAP_SERVER = "ldap.mycompany.com"
31
128
  #LDAP_PORT = 389
@@ -47,24 +144,45 @@ TIME_ZONE = 'America/New_York'
47
144
  #ldap.set_option(ldap.OPT_X_TLS_KEYFILE, "/etc/ssl/mykey.pem")
48
145
  # See http://www.python-ldap.org/ for further details on these options.
49
146
 
147
+ ## REMOTE_USER authentication. See: https://docs.djangoproject.com/en/dev/howto/auth-remote-user/
148
+ #USE_REMOTE_USER_AUTHENTICATION = True
149
+
150
+ # Override the URL for the login link (e.g. for django_openid_auth)
151
+ #LOGIN_URL = '/account/login'
152
+
50
153
 
51
154
  ##########################
52
155
  # Database Configuration #
53
156
  ##########################
54
157
  # By default sqlite is used. If you cluster multiple webapps you will need
55
- # to setup an external database (like mysql) and configure all the webapps
56
- # to use the same database. Note that this database is only used to store
57
- # django models like saved graphs, dashboards, user preferences, etc. Metric
58
- # data is not stored here.
158
+ # to setup an external database (such as MySQL) and configure all of the webapp
159
+ # instances to use the same database. Note that this database is only used to store
160
+ # Django models such as saved graphs, dashboards, user preferences, etc.
161
+ # Metric data is not stored here.
162
+ #
163
+ # DO NOT FORGET TO RUN 'manage.py syncdb' AFTER SETTING UP A NEW DATABASE
164
+ #
165
+ # The following built-in database engines are available:
166
+ # django.db.backends.postgresql # Removed in Django 1.4
167
+ # django.db.backends.postgresql_psycopg2
168
+ # django.db.backends.mysql
169
+ # django.db.backends.sqlite3
170
+ # django.db.backends.oracle
59
171
  #
60
- # DON'T FORGET TO RUN 'manage.py syncdb' AFTER SETTING UP A NEW DB!
172
+ # The default is 'django.db.backends.sqlite3' with file 'graphite.db'
173
+ # located in STORAGE_DIR
61
174
  #
62
- #DATABASE_ENGINE = 'mysql' # or 'postgres'
63
- #DATABASE_NAME = 'graphite'
64
- #DATABASE_USER = 'graphite'
65
- #DATABASE_PASSWORD = 'graphite-is-awesome'
66
- #DATABASE_HOST = 'mysql.mycompany.com'
67
- #DATABASE_PORT = '3306'
175
+ DATABASES = {
176
+ 'default': {
177
+ 'NAME': '<%= rubber_env.graphite_storage_dir %>/graphite.db',
178
+ 'ENGINE': 'django.db.backends.sqlite3',
179
+ 'USER': '',
180
+ 'PASSWORD': '',
181
+ 'HOST': '',
182
+ 'PORT': ''
183
+ }
184
+ }
185
+
68
186
 
69
187
 
70
188
  #########################
@@ -72,27 +190,39 @@ TIME_ZONE = 'America/New_York'
72
190
  #########################
73
191
  # (To avoid excessive DNS lookups you want to stick to using IP addresses only in this entire section)
74
192
  #
75
- # This should list the IP address (and optionally port) of each webapp in your cluster.
76
- # Strings are of the form "ip[:port]"
77
- # Usually this will be the same as MEMCACHE_HOSTS except for the port numbers.
78
- #
79
- #CLUSTER_SERVERS = []
193
+ # This should list the IP address (and optionally port) of the webapp on each
194
+ # remote server in the cluster. These servers must each have local access to
195
+ # metric data. Note that the first server to return a match for a query will be
196
+ # used.
197
+ #CLUSTER_SERVERS = ["10.0.2.2:80", "10.0.2.3:80"]
80
198
 
81
- # This lists all the memcached servers that will be used by this webapp.
82
- # If you have a cluster of webapps you want to make sure all of them
83
- # have the *exact* same value for this setting. That will maximize cache
84
- # efficiency. Setting MEMCACHE_HOSTS to be empty will turn off use of
85
- # memcached entirely.
86
- #
87
- # You should not use the loopback address 127.0.0.1 here because every webapp in
88
- # the cluster should use the exact same value and should list every member in the
89
- # cluster.
90
- #MEMCACHE_HOSTS = ['10.10.10.10:11211', '10.10.10.11:11211', '10.10.10.12:11211']
199
+ ## These are timeout values (in seconds) for requests to remote webapps
200
+ #REMOTE_STORE_FETCH_TIMEOUT = 6 # Timeout to fetch series data
201
+ #REMOTE_STORE_FIND_TIMEOUT = 2.5 # Timeout for metric find requests
202
+ #REMOTE_STORE_RETRY_DELAY = 60 # Time before retrying a failed remote webapp
203
+ #REMOTE_FIND_CACHE_DURATION = 300 # Time to cache remote metric find results
204
+
205
+ ## Remote rendering settings
206
+ # Set to True to enable rendering of Graphs on a remote webapp
207
+ #REMOTE_RENDERING = True
208
+ # List of IP (and optionally port) of the webapp on each remote server that
209
+ # will be used for rendering. Note that each rendering host should have local
210
+ # access to metric data or should have CLUSTER_SERVERS configured
211
+ #RENDERING_HOSTS = []
212
+ #REMOTE_RENDER_CONNECT_TIMEOUT = 1.0
91
213
 
92
214
  # If you are running multiple carbon-caches on this machine (typically behind a relay using
93
215
  # consistent hashing), you'll need to list the ip address, cache query port, and instance name of each carbon-cache
94
216
  # instance on the local machine (NOT every carbon-cache in the entire cluster). The default cache query port is 7002
95
217
  # and a common scheme is to use 7102 for instance b, 7202 for instance c, etc.
96
218
  #
97
- # You *should* use 127.0.0.1 here.
219
+ # You *should* use 127.0.0.1 here in most cases
98
220
  #CARBONLINK_HOSTS = ["127.0.0.1:7002:a", "127.0.0.1:7102:b", "127.0.0.1:7202:c"]
221
+ #CARBONLINK_TIMEOUT = 1.0
222
+
223
+ #####################################
224
+ # Additional Django Settings #
225
+ #####################################
226
+ # Uncomment the following line for direct access to Django settings such as
227
+ # MIDDLEWARE_CLASSES or APPS
228
+ #from graphite.app_settings import *
@@ -1,16 +1,19 @@
1
1
  <%
2
- @path = '/opt/graphite/conf/uwsgi.ini'
2
+ @path = "#{rubber_env.graphite_dir}/conf/uwsgi.ini"
3
+
4
+ is_old_ubuntu = %w[10.04 12.04].include?(rubber_instance.os_version)
5
+ log_dir = is_old_ubuntu ? "#{rubber_env.graphite_storage_dir}/log/webapp" : '/var/log/graphite'
3
6
  %>
4
7
 
5
8
  [uwsgi]
6
9
  http=:<%= rubber_env.graphite_web_port %>
7
10
  chdir=/opt/graphite/webapp
8
- wsgi-file=/opt/graphite/conf/graphite.wsgi
11
+ wsgi-file=<%= is_old_ubuntu ? '/opt/graphite/conf/graphite.wsgi' : '/usr/share/graphite-web/graphite.wsgi' %>
9
12
  master=True
10
13
  pidfile=/var/run/graphite-web.pid
11
14
  processes=4
12
15
  die-on-term=True
13
16
  vacuum=True
14
17
  max-requests=5000
15
- daemonize=/opt/graphite/storage/log/webapp/webapp.log
18
+ daemonize=<%= log_dir %>/webapp.log
16
19
  plugins=python,http
@@ -20,6 +20,12 @@ web_tools_proxies:
20
20
 
21
21
  roles:
22
22
  graphite_web:
23
- packages: [python-django, python-django-tagging, python-cairo, python-memcache, memcached, uwsgi, uwsgi-plugin-python, uwsgi-plugin-http, sqlite3, bzr, zip]
23
+ os_packages:
24
+ '10.04': [python-django, python-django-tagging, python-cairo, python-memcache, memcached, uwsgi, uwsgi-plugin-python, uwsgi-plugin-http, sqlite3, bzr, zip]
25
+ '12.04': [python-django, python-django-tagging, python-cairo, python-memcache, memcached, uwsgi, uwsgi-plugin-python, uwsgi-plugin-http, sqlite3, bzr, zip]
26
+ '14.04': [uwsgi, uwsgi-plugin-python, graphite-web]
27
+ graphite_server:
28
+ os_packages:
29
+ '14.04': [graphite-carbon]
24
30
  collectd:
25
31
  packages: [libperl-dev]
@@ -0,0 +1,9 @@
1
+ require 'securerandom'
2
+
3
+ extra_config = <<-EXTRA
4
+ # This was auto-generated by Rubber and is unique to your machine. Feel free to regenerate if you'd like.
5
+ # You may want to move this to your rubber-secret.yml to keep it out of version control.
6
+ graphite_web_secret: #{SecureRandom.hex(96)}
7
+ EXTRA
8
+
9
+ append_to_file 'config/rubber/rubber-graphite.yml', "\n#{extra_config}"
@@ -3,7 +3,7 @@
3
3
  @post = "/usr/sbin/service rsyslog restart"
4
4
 
5
5
  graylog_server = rubber_instances.for_role("graylog_server").first
6
- is_graylog_instance = rubber_instances[rubber_env.host].role_names.include?('graylog_server')
6
+ is_graylog_instance = rubber_instance.role_names.include?('graylog_server')
7
7
  %>
8
8
 
9
9
  <% if graylog_server %>
@@ -34,12 +34,12 @@ root_password_sha2 = <%= root_password_sha2 %>
34
34
  plugin_dir = plugin
35
35
 
36
36
  # REST API listen URI. Must be reachable by other graylog2-server nodes if you run a cluster.
37
- rest_listen_uri = http://<%= rubber_instances[rubber_env.host].internal_ip %>:12900/
37
+ rest_listen_uri = http://<%= rubber_instance.internal_ip %>:12900/
38
38
 
39
39
  # REST API transport address. Defaults to first non-loopback IPv4 system address and port 12900.
40
40
  # This will be promoted in the cluster discovery APIs and other nodes may try to connect on this
41
41
  # address. (see rest_listen_uri)
42
- rest_transport_uri = http://<%= rubber_instances[rubber_env.host].internal_ip %>:12900/
42
+ rest_transport_uri = http://<%= rubber_instance.internal_ip %>:12900/
43
43
 
44
44
  # Enable CORS headers for REST api. This is necessary for JS-clients accessing the server directly.
45
45
  # If these are disabled, modern browsers will not be able to retrieve resources from the server.
@@ -1,5 +1,10 @@
1
1
  <%
2
+ is_old_ubuntu = %w[10.04 12.04].include?(rubber_instance.os_version)
3
+
4
+ # Apache 2.2 requires no extension while Apache 2.4 requires the '.conf' extension.
2
5
  @path = "/etc/apache2/sites-available/#{rubber_env.app_name}-jenkins"
6
+ @path << '.conf' unless is_old_ubuntu
7
+
3
8
  @post = "a2enmod rewrite && a2enmod ssl && a2enmod proxy_http && a2ensite #{rubber_env.app_name}-jenkins"
4
9
  %>
5
10
 
@@ -1,7 +1,7 @@
1
1
  <%
2
2
  @path = "/etc/memcached.conf"
3
3
  max_mem = rubber_env.memcached_max_mem
4
- max_mem = max_mem[rubber_instances[rubber_env.host].image_type.split('.')[1]] if max_mem.is_a?(Hash)
4
+ max_mem = max_mem[rubber_instance.image_type.split('.')[1]] if max_mem.is_a?(Hash)
5
5
  %>
6
6
 
7
7
  # memcached default config file
@@ -29,7 +29,7 @@ namespace :rubber do
29
29
 
30
30
  master_instances = rubber_instances.for_role("mysql_master") & rubber_instances.filtered
31
31
  master_instances.each do |ic|
32
- task_name = "_bootstrap_mysql_master_#{ic.full_name}".to_sym()
32
+ task_name = "_bootstrap_mysql_master_#{ic.full_name}".to_sym
33
33
  task task_name, :hosts => ic.full_name do
34
34
  env = rubber_cfg.environment.bind("mysql_master", ic.name)
35
35
  exists = capture("echo $(ls #{env.db_data_dir}/ 2> /dev/null)")
@@ -52,7 +52,7 @@ namespace :rubber do
52
52
 
53
53
  slave_instances = rubber_instances.for_role("mysql_slave") & rubber_instances.filtered
54
54
  slave_instances.each do |ic|
55
- task_name = "_bootstrap_mysql_slave_#{ic.full_name}".to_sym()
55
+ task_name = "_bootstrap_mysql_slave_#{ic.full_name}".to_sym
56
56
  task task_name, :hosts => ic.full_name do
57
57
  env = rubber_cfg.environment.bind("mysql_slave", ic.name)
58
58
  exists = capture("echo $(ls #{env.db_data_dir}/ 2> /dev/null)")
@@ -6,7 +6,7 @@
6
6
  @post = "mkdir -p #{log_dir}; chown mysql:adm #{log_dir}; chmod 2750 #{log_dir}"
7
7
  %>
8
8
 
9
- # Generated by rubber for host <%= rubber_instances[rubber_env.host].external_ip %>
9
+ # Generated by rubber for host <%= rubber_instance.external_ip %>
10
10
  #
11
11
  # The MySQL database server configuration file.
12
12
  #
@@ -56,7 +56,7 @@ namespace :rubber do
56
56
  # been boostrapped for that role before
57
57
 
58
58
  rubber_instances.for_role("mysql_mgm").each do |ic|
59
- task_name = "_bootstrap_mysql_mgm_#{ic.full_name}".to_sym()
59
+ task_name = "_bootstrap_mysql_mgm_#{ic.full_name}".to_sym
60
60
  task task_name, :hosts => ic.full_name do
61
61
  exists = capture("if grep -c rubber.*mysql_mgm /etc/mysql/ndb_mgmd.cnf &> /dev/null; then echo exists; fi")
62
62
  if exists.strip.size == 0
@@ -68,7 +68,7 @@ namespace :rubber do
68
68
  end
69
69
 
70
70
  rubber_instances.for_role("mysql_data").each do |ic|
71
- task_name = "_bootstrap_mysql_data_#{ic.full_name}".to_sym()
71
+ task_name = "_bootstrap_mysql_data_#{ic.full_name}".to_sym
72
72
  task task_name, :hosts => ic.full_name do
73
73
  exists = capture("if grep -c rubber.*mysql_data /etc/mysql/my.cnf &> /dev/null; then echo exists; fi")
74
74
  if exists.strip.size == 0
@@ -80,7 +80,7 @@ namespace :rubber do
80
80
  end
81
81
 
82
82
  rubber_instances.for_role("mysql_sql").each do |ic|
83
- task_name = "_bootstrap_mysql_sql_#{ic.full_name}".to_sym()
83
+ task_name = "_bootstrap_mysql_sql_#{ic.full_name}".to_sym
84
84
  task task_name, :hosts => ic.full_name do
85
85
  exists = capture("if grep -c rubber.*mysql_sql /etc/mysql/my.cnf &> /dev/null; then echo exists; fi")
86
86
  if exists.strip.size == 0