safeguard-devise 0.0.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.
- checksums.yaml +15 -0
- data/.vagrant/machines/default/virtualbox/action_provision +1 -0
- data/.vagrant/machines/default/virtualbox/action_set_name +1 -0
- data/.vagrant/machines/default/virtualbox/id +1 -0
- data/Gemfile +25 -0
- data/Gemfile.lock +186 -0
- data/Rakefile +51 -0
- data/VERSION +1 -0
- data/Vagrantfile +128 -0
- data/app/controllers/devise/devise_safeguard_controller.rb +56 -0
- data/app/views/devise/verify_safeguard.html.erb +9 -0
- data/app/views/devise/verify_safeguard.html.haml +7 -0
- data/config/locales/pt-BR.yml +5 -0
- data/lib/devise-safeguard/controllers/helpers.rb +54 -0
- data/lib/devise-safeguard/hooks/safeguard_authenticatable.rb +7 -0
- data/lib/devise-safeguard/models/safeguard_authenticatable.rb +18 -0
- data/lib/devise-safeguard/rails.rb +7 -0
- data/lib/devise-safeguard/routes.rb +17 -0
- data/lib/generators/active_record/devise_safeguard_generator.rb +13 -0
- data/lib/generators/active_record/templates/migration.rb +15 -0
- data/lib/generators/devise_safeguard/devise_safeguard_generator.rb +30 -0
- data/lib/generators/devise_safeguard/install_generator.rb +44 -0
- data/lib/safeguard-devise.rb +24 -0
- data/puppet/manifests/default.pp +66 -0
- data/puppet/modules/elasticsearch/CHANGELOG +62 -0
- data/puppet/modules/elasticsearch/CONTRIBUTORS +20 -0
- data/puppet/modules/elasticsearch/LICENSE +13 -0
- data/puppet/modules/elasticsearch/Modulefile +9 -0
- data/puppet/modules/elasticsearch/README.md +147 -0
- data/puppet/modules/elasticsearch/Rakefile +5 -0
- data/puppet/modules/elasticsearch/manifests/config.pp +64 -0
- data/puppet/modules/elasticsearch/manifests/init.pp +208 -0
- data/puppet/modules/elasticsearch/manifests/java.pp +50 -0
- data/puppet/modules/elasticsearch/manifests/package.pp +84 -0
- data/puppet/modules/elasticsearch/manifests/params.pp +103 -0
- data/puppet/modules/elasticsearch/manifests/plugin.pp +97 -0
- data/puppet/modules/elasticsearch/manifests/python.pp +34 -0
- data/puppet/modules/elasticsearch/manifests/service.pp +114 -0
- data/puppet/modules/elasticsearch/manifests/template.pp +118 -0
- data/puppet/modules/elasticsearch/metadata.json +41 -0
- data/puppet/modules/elasticsearch/spec/classes/elasticsearch_init_spec.rb +596 -0
- data/puppet/modules/elasticsearch/spec/defines/template_spec.rb +66 -0
- data/puppet/modules/elasticsearch/spec/spec_helper.rb +2 -0
- data/puppet/modules/elasticsearch/templates/etc/default/elasticsearch.erb +5 -0
- data/puppet/modules/elasticsearch/templates/etc/elasticsearch/elasticsearch.yml.erb +93 -0
- data/puppet/modules/memcached/.gitignore +2 -0
- data/puppet/modules/memcached/Modulefile +8 -0
- data/puppet/modules/memcached/README.md +29 -0
- data/puppet/modules/memcached/manifests/init.pp +33 -0
- data/puppet/modules/memcached/manifests/params.pp +21 -0
- data/puppet/modules/memcached/templates/memcached.conf.erb +46 -0
- data/puppet/modules/memcached/templates/memcached_sysconfig.erb +5 -0
- data/puppet/modules/mysql/.fixtures.yml +3 -0
- data/puppet/modules/mysql/.gemfile +5 -0
- data/puppet/modules/mysql/LICENSE +201 -0
- data/puppet/modules/mysql/Modulefile +8 -0
- data/puppet/modules/mysql/README.md +124 -0
- data/puppet/modules/mysql/files/mysqltuner.pl +966 -0
- data/puppet/modules/mysql/lib/puppet/parser/functions/mysql_password.rb +15 -0
- data/puppet/modules/mysql/lib/puppet/provider/database/mysql.rb +42 -0
- data/puppet/modules/mysql/lib/puppet/provider/database_grant/mysql.rb +177 -0
- data/puppet/modules/mysql/lib/puppet/provider/database_user/mysql.rb +42 -0
- data/puppet/modules/mysql/lib/puppet/type/database.rb +17 -0
- data/puppet/modules/mysql/lib/puppet/type/database_grant.rb +75 -0
- data/puppet/modules/mysql/lib/puppet/type/database_user.rb +25 -0
- data/puppet/modules/mysql/manifests/backup.pp +68 -0
- data/puppet/modules/mysql/manifests/config.pp +122 -0
- data/puppet/modules/mysql/manifests/db.pp +77 -0
- data/puppet/modules/mysql/manifests/init.pp +24 -0
- data/puppet/modules/mysql/manifests/java.pp +24 -0
- data/puppet/modules/mysql/manifests/params.pp +91 -0
- data/puppet/modules/mysql/manifests/python.pp +26 -0
- data/puppet/modules/mysql/manifests/ruby.pp +28 -0
- data/puppet/modules/mysql/manifests/server/account_security.pp +13 -0
- data/puppet/modules/mysql/manifests/server/monitor.pp +19 -0
- data/puppet/modules/mysql/manifests/server/mysqltuner.pp +22 -0
- data/puppet/modules/mysql/manifests/server.pp +52 -0
- data/puppet/modules/mysql/templates/my.cnf.erb +42 -0
- data/puppet/modules/mysql/templates/my.cnf.pass.erb +6 -0
- data/puppet/modules/mysql/templates/mysqlbackup.sh.erb +23 -0
- data/puppet/modules/postgresql/GPL-3 +674 -0
- data/puppet/modules/postgresql/Modulefile +13 -0
- data/puppet/modules/postgresql/README.md +156 -0
- data/puppet/modules/postgresql/lib/puppet/provider/pg_database/debian_postgresql.rb +30 -0
- data/puppet/modules/postgresql/lib/puppet/provider/pg_database/default.rb +17 -0
- data/puppet/modules/postgresql/lib/puppet/provider/pg_user/debian_postgresql.rb +63 -0
- data/puppet/modules/postgresql/lib/puppet/provider/pg_user/default.rb +17 -0
- data/puppet/modules/postgresql/lib/puppet/type/pg_database.rb +29 -0
- data/puppet/modules/postgresql/lib/puppet/type/pg_user.rb +45 -0
- data/puppet/modules/postgresql/manifests/db.pp +20 -0
- data/puppet/modules/postgresql/manifests/init.pp +12 -0
- data/puppet/modules/postgresql/manifests/params.pp +15 -0
- data/puppet/modules/postgresql/manifests/server.pp +47 -0
- data/puppet/modules/postgresql/templates/pg_hba.conf.erb +105 -0
- data/puppet/modules/postgresql/templates/postgresql.conf.erb +559 -0
- data/puppet/modules/redis/CHANGELOG +41 -0
- data/puppet/modules/redis/Gemfile +7 -0
- data/puppet/modules/redis/Gemfile.lock +18 -0
- data/puppet/modules/redis/Modulefile +10 -0
- data/puppet/modules/redis/README.md +34 -0
- data/puppet/modules/redis/Rakefile +6 -0
- data/puppet/modules/redis/manifests/init.pp +153 -0
- data/puppet/modules/redis/manifests/params.pp +39 -0
- data/puppet/modules/redis/metadata.json +31 -0
- data/puppet/modules/redis/spec/spec_helper.rb +17 -0
- data/puppet/modules/redis/templates/redis.debian.conf.erb +217 -0
- data/puppet/modules/redis/templates/redis.logrotate.erb +9 -0
- data/puppet/modules/redis/templates/redis.rhel.conf.erb +547 -0
- data/puppet/modules/redis/tests/init.pp +8 -0
- data/puppet/upgrade-puppet.sh +16 -0
- data/safeguard-devise.gemspec +249 -0
- data/spec/controllers/safeguard_devise_controller_spec.rb +67 -0
- data/spec/devise/safeguard_authenticatable_spec.rb +71 -0
- data/spec/orm/active_record.rb +4 -0
- data/spec/routing/routes_spec.rb +13 -0
- data/spec/safeguard-devise-test-app/.gitignore +16 -0
- data/spec/safeguard-devise-test-app/Gemfile +14 -0
- data/spec/safeguard-devise-test-app/Gemfile.lock +119 -0
- data/spec/safeguard-devise-test-app/README.rdoc +28 -0
- data/spec/safeguard-devise-test-app/Rakefile +6 -0
- data/spec/safeguard-devise-test-app/app/assets/images/.keep +0 -0
- data/spec/safeguard-devise-test-app/app/assets/javascripts/application.js +13 -0
- data/spec/safeguard-devise-test-app/app/assets/stylesheets/application.css +13 -0
- data/spec/safeguard-devise-test-app/app/controllers/application_controller.rb +5 -0
- data/spec/safeguard-devise-test-app/app/controllers/concerns/.keep +0 -0
- data/spec/safeguard-devise-test-app/app/controllers/home_controller.rb +6 -0
- data/spec/safeguard-devise-test-app/app/helpers/application_helper.rb +2 -0
- data/spec/safeguard-devise-test-app/app/mailers/.keep +0 -0
- data/spec/safeguard-devise-test-app/app/models/.keep +0 -0
- data/spec/safeguard-devise-test-app/app/models/concerns/.keep +0 -0
- data/spec/safeguard-devise-test-app/app/models/user.rb +6 -0
- data/spec/safeguard-devise-test-app/app/views/devise/devise_safeguard/verify_safeguard.html.erb +9 -0
- data/spec/safeguard-devise-test-app/app/views/devise/devise_safeguard/verify_safeguard.html.haml +6 -0
- data/spec/safeguard-devise-test-app/app/views/home/index.html.erb +1 -0
- data/spec/safeguard-devise-test-app/app/views/layouts/application.html.erb +14 -0
- data/spec/safeguard-devise-test-app/bin/bundle +3 -0
- data/spec/safeguard-devise-test-app/bin/rails +4 -0
- data/spec/safeguard-devise-test-app/bin/rake +4 -0
- data/spec/safeguard-devise-test-app/config/application.rb +31 -0
- data/spec/safeguard-devise-test-app/config/boot.rb +4 -0
- data/spec/safeguard-devise-test-app/config/database.yml +25 -0
- data/spec/safeguard-devise-test-app/config/environment.rb +5 -0
- data/spec/safeguard-devise-test-app/config/environments/development.rb +29 -0
- data/spec/safeguard-devise-test-app/config/environments/production.rb +80 -0
- data/spec/safeguard-devise-test-app/config/environments/test.rb +36 -0
- data/spec/safeguard-devise-test-app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/safeguard-devise-test-app/config/initializers/devise.rb +259 -0
- data/spec/safeguard-devise-test-app/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/safeguard-devise-test-app/config/initializers/inflections.rb +16 -0
- data/spec/safeguard-devise-test-app/config/initializers/mime_types.rb +5 -0
- data/spec/safeguard-devise-test-app/config/initializers/secret_token.rb +12 -0
- data/spec/safeguard-devise-test-app/config/initializers/session_store.rb +3 -0
- data/spec/safeguard-devise-test-app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/safeguard-devise-test-app/config/locales/devise.en.yml +59 -0
- data/spec/safeguard-devise-test-app/config/locales/devise.safeguard.pt-BR.yml +5 -0
- data/spec/safeguard-devise-test-app/config/locales/en.yml +23 -0
- data/spec/safeguard-devise-test-app/config/routes.rb +59 -0
- data/spec/safeguard-devise-test-app/config.ru +4 -0
- data/spec/safeguard-devise-test-app/db/migrate/20140220191103_create_users.rb +9 -0
- data/spec/safeguard-devise-test-app/db/migrate/20140220191247_add_devise_to_users.rb +49 -0
- data/spec/safeguard-devise-test-app/db/migrate/20140220191522_devise_safeguard_add_to_users.rb +15 -0
- data/spec/safeguard-devise-test-app/db/schema.rb +37 -0
- data/spec/safeguard-devise-test-app/db/seeds.rb +7 -0
- data/spec/safeguard-devise-test-app/lib/assets/.keep +0 -0
- data/spec/safeguard-devise-test-app/lib/tasks/.keep +0 -0
- data/spec/safeguard-devise-test-app/log/.keep +0 -0
- data/spec/safeguard-devise-test-app/public/404.html +58 -0
- data/spec/safeguard-devise-test-app/public/422.html +58 -0
- data/spec/safeguard-devise-test-app/public/500.html +57 -0
- data/spec/safeguard-devise-test-app/public/favicon.ico +0 -0
- data/spec/safeguard-devise-test-app/public/robots.txt +5 -0
- data/spec/safeguard-devise-test-app/test/controllers/.keep +0 -0
- data/spec/safeguard-devise-test-app/test/fixtures/.keep +0 -0
- data/spec/safeguard-devise-test-app/test/fixtures/users.yml +9 -0
- data/spec/safeguard-devise-test-app/test/helpers/.keep +0 -0
- data/spec/safeguard-devise-test-app/test/integration/.keep +0 -0
- data/spec/safeguard-devise-test-app/test/mailers/.keep +0 -0
- data/spec/safeguard-devise-test-app/test/models/.keep +0 -0
- data/spec/safeguard-devise-test-app/test/models/user_test.rb +7 -0
- data/spec/safeguard-devise-test-app/test/test_helper.rb +15 -0
- data/spec/safeguard-devise-test-app/vendor/assets/javascripts/.keep +0 -0
- data/spec/safeguard-devise-test-app/vendor/assets/stylesheets/.keep +0 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/tests_helper/helpers.rb +34 -0
- metadata +381 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module DeviseSafeguard
|
|
2
|
+
module Generators
|
|
3
|
+
# Install Generator
|
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
|
5
|
+
source_root File.expand_path("../../templates", __FILE__)
|
|
6
|
+
|
|
7
|
+
class_option :haml, :type => :boolean, :required => false, :default => false, :desc => "Generate views in Haml"
|
|
8
|
+
class_option :sass, :type => :boolean, :required => false, :default => false, :desc => "Generate stylesheet in Sass"
|
|
9
|
+
|
|
10
|
+
desc "Install the devise safeguard extension"
|
|
11
|
+
|
|
12
|
+
def add_configs
|
|
13
|
+
inject_into_file "config/initializers/devise.rb", "\n" +
|
|
14
|
+
" # ==> Devise Safeguard Authentication Extension\n" +
|
|
15
|
+
" # How long should the user's device be remembered for.\n" +
|
|
16
|
+
" # config.safeguard_remember_device = 1.month\n\n", :before => /^end[\r\n]*$/
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def copy_locale
|
|
20
|
+
copy_file "../../../config/locales/pt-BR.yml", "config/locales/devise.safeguard.pt-BR.yml"
|
|
21
|
+
copy_file "../../../config/locales/en.yml", "config/locales/devise.safeguard.en.yml"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def copy_views
|
|
25
|
+
if options.haml?
|
|
26
|
+
copy_file '../../../app/views/devise/verify_safeguard.html.haml', 'app/views/devise/devise_safeguard/verify_safeguard.html.haml'
|
|
27
|
+
else
|
|
28
|
+
copy_file '../../../app/views/devise/verify_safeguard.html.erb', 'app/views/devise/devise_safeguard/verify_safeguard.html.erb'
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def copy_assets
|
|
33
|
+
if options.sass?
|
|
34
|
+
copy_file '../../../app/assets/stylesheets/devise_safeguard.sass', 'app/assets/stylesheets/devise_safeguard.sass'
|
|
35
|
+
else
|
|
36
|
+
copy_file '../../../app/assets/stylesheets/devise_safeguard.css', 'app/assets/stylesheets/devise_safeguard.css'
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def inject_assets_in_layout
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'active_support/concern'
|
|
2
|
+
require 'active_support/core_ext/integer/time'
|
|
3
|
+
require 'devise'
|
|
4
|
+
require 'safeguard-api'
|
|
5
|
+
module Devise
|
|
6
|
+
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
module DeviseSafeguard
|
|
10
|
+
module Controllers
|
|
11
|
+
autoload :Helpers, 'devise-safeguard/controllers/helpers'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module Views
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
require 'devise-safeguard/routes'
|
|
20
|
+
require 'devise-safeguard/rails'
|
|
21
|
+
require 'devise-safeguard/models/safeguard_authenticatable'
|
|
22
|
+
Devise::Models.config(self, :safeguard_remember_device)
|
|
23
|
+
|
|
24
|
+
Devise.add_module :safeguard_authenticatable, :model => 'devise-safeguard/models/safeguard_authenticatable', :controller => :devise_safeguard, :route => :safeguard
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
$ar_databases = ['activerecord_unittest', 'activerecord_unittest2']
|
|
2
|
+
$as_vagrant = 'sudo -u vagrant -H bash -l -c'
|
|
3
|
+
$home = '/home/vagrant'
|
|
4
|
+
|
|
5
|
+
Exec {
|
|
6
|
+
path => ['/usr/sbin', '/usr/bin', '/sbin', '/bin']
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
# --- Preinstall Stage ---------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
stage { 'preinstall':
|
|
12
|
+
before => Stage['main']
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
class apt_get_update {
|
|
16
|
+
exec { 'apt-get -y update':
|
|
17
|
+
unless => "test -e ${home}/.rvm"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
class { 'apt_get_update':
|
|
21
|
+
stage => preinstall
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
# --- Packages -----------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
package { 'curl':
|
|
27
|
+
ensure => installed
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
package { 'build-essential':
|
|
31
|
+
ensure => installed
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
package { 'git-core':
|
|
35
|
+
ensure => installed
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
# Nokogiri dependencies.
|
|
39
|
+
package { ['libxml2', 'libxml2-dev', 'libxslt1-dev']:
|
|
40
|
+
ensure => installed
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
# --- Ruby ---------------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
exec { 'install_rvm':
|
|
46
|
+
command => "${as_vagrant} 'curl -L https://get.rvm.io | bash -s stable'",
|
|
47
|
+
creates => "${home}/.rvm/bin/rvm",
|
|
48
|
+
require => Package['curl']
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
exec { 'install_ruby':
|
|
52
|
+
# We run the rvm executable directly because the shell function assumes an
|
|
53
|
+
# interactive environment, in particular to display messages or ask questions.
|
|
54
|
+
# The rvm executable is more suitable for automated installs.
|
|
55
|
+
#
|
|
56
|
+
# Thanks to @mpapis for this tip.
|
|
57
|
+
|
|
58
|
+
command => "${as_vagrant} '${home}/.rvm/bin/rvm install 1.9.3 --latest-binary --autolibs=enabled && rvm --fuzzy alias create default 1.9.3'",
|
|
59
|
+
creates => "${home}/.rvm/bin/ruby",
|
|
60
|
+
require => Exec['install_rvm']
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
exec { "${as_vagrant} 'gem install bundler --no-rdoc --no-ri'":
|
|
64
|
+
creates => "${home}/.rvm/bin/bundle",
|
|
65
|
+
require => Exec['install_ruby']
|
|
66
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
0.1.3 ( Sep 06, 2013 )
|
|
2
|
+
Exec path settings has been updated to fix warnings ( PR #37, #47 )
|
|
3
|
+
Adding define to install python bindings ( PR #43 )
|
|
4
|
+
Scope deprecation fixes ( PR #41 )
|
|
5
|
+
feature to install plugins ( PR #40 )
|
|
6
|
+
|
|
7
|
+
0.1.2 ( Jun 21, 2013 )
|
|
8
|
+
Update rake file to ignore the param inherit
|
|
9
|
+
Added missing documentation to the template define
|
|
10
|
+
Fix for template define to allow multiple templates ( PR #36 by Bruce Morrison )
|
|
11
|
+
|
|
12
|
+
0.1.1 ( Jun 14, 2013 )
|
|
13
|
+
Add Oracle Linux to the OS list ( PR #25 by Stas Alekseev )
|
|
14
|
+
Respect the restart_on_change on the defaults ( PR #29 by Simon Effenberg )
|
|
15
|
+
Make sure the config can be empty as advertised in the readme
|
|
16
|
+
Remove dependency cycle when the defaults file is updated ( PR #31 by Bruce Morrison )
|
|
17
|
+
Enable retry on the template insert in case ES isn't started yet ( PR #32 by Bruce Morrison )
|
|
18
|
+
Update templates to avoid deprecation notice with Puppet 3.2.x
|
|
19
|
+
Update template define to avoid auto insert issue with ES
|
|
20
|
+
Update spec tests to reflect changes to template define
|
|
21
|
+
|
|
22
|
+
0.1.0 ( May 09, 2013 )
|
|
23
|
+
Populate .gitignore ( PR #19 by Igor Galić )
|
|
24
|
+
Add ability to install initfile ( PR #20 by Justin Lambert )
|
|
25
|
+
Add ability to manage default file* service parameters ( PR #21 by Mathieu Bornoz )
|
|
26
|
+
Providing complete containment of the module ( PR #24 by Brian Lalor )
|
|
27
|
+
Add ability to specify package version ( PR #25 by Justin Lambert )
|
|
28
|
+
Adding license file
|
|
29
|
+
|
|
30
|
+
0.0.7 ( Mar 23, 2013 )
|
|
31
|
+
Ensure config directory is created and managed ( PR #13 by Martin Seener )
|
|
32
|
+
Dont backup package if it changes
|
|
33
|
+
Create explicit dependency on template directory ( PR #16 by Igor Galić )
|
|
34
|
+
Make the config directory variable ( PR #17 by Igor Galić and PR #18 by Vincent Janelle )
|
|
35
|
+
Fixing template define
|
|
36
|
+
|
|
37
|
+
0.0.6 ( Mar 05, 2013 )
|
|
38
|
+
Fixing issue with configuration not printing out arrays
|
|
39
|
+
New feature to write the config hash shorter
|
|
40
|
+
Updated readme to reflect the new feature
|
|
41
|
+
Adding spec tests for config file generation
|
|
42
|
+
|
|
43
|
+
0.0.5 ( Mar 03, 2013 )
|
|
44
|
+
Option to disable restart on config file change ( PR #10 by Chris Boulton )
|
|
45
|
+
|
|
46
|
+
0.0.4 ( Mar 02, 2013 )
|
|
47
|
+
Fixed a major issue with the config template ( Issue #9 )
|
|
48
|
+
|
|
49
|
+
0.0.3 ( Mar 02, 2013 )
|
|
50
|
+
Adding spec tests
|
|
51
|
+
Fixed init issue on Ubuntu ( Issue #6 by Marcus Furlong )
|
|
52
|
+
Fixed config template problem ( Issue #8 by surfchris )
|
|
53
|
+
New feature to manage templates
|
|
54
|
+
|
|
55
|
+
0.0.2 ( Feb 16, 2013 )
|
|
56
|
+
Feature to supply a package instead of being dependent on the repository
|
|
57
|
+
Feature to install java in case one doesn't manage it externally
|
|
58
|
+
Adding RedHat and Amazon as Operating systems
|
|
59
|
+
fixed a typo - its a shard not a shared :) ( PR #5 by Martin Seener )
|
|
60
|
+
|
|
61
|
+
0.0.1 ( Jan 13, 2013 )
|
|
62
|
+
Initial release of the module
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
The following is a list of people who have contributed ideas, code, bug
|
|
2
|
+
reports, or in general have helped this puppet module along its way.
|
|
3
|
+
|
|
4
|
+
Project Owner
|
|
5
|
+
* Richard Pijnenburg (electrical)
|
|
6
|
+
|
|
7
|
+
Contributors:
|
|
8
|
+
Martin Seener (martinseener)
|
|
9
|
+
Marcus Furlong (furlongm)
|
|
10
|
+
Chris Boulton (chrisboulton)
|
|
11
|
+
Igor Galić (igalic)
|
|
12
|
+
Vincent Janelle (vjanelle)
|
|
13
|
+
Mathieu Bornoz (mbornoz)
|
|
14
|
+
Justin Lambert (jlambert121)
|
|
15
|
+
Brian Lalor (blalor)
|
|
16
|
+
Stas Alekseev (salekseev)
|
|
17
|
+
Simon Effenberg (Savar)
|
|
18
|
+
Bruce Morrison (brucem)
|
|
19
|
+
deanmalmgren
|
|
20
|
+
Matteo Sessa (msessa-cotd)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Copyright 2012-2013 Richard Pijnenburg
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
name 'ispavailability-elasticsearch'
|
|
2
|
+
version '0.1.3'
|
|
3
|
+
source 'https://github.com/elasticsearch/puppet-elasticsearch'
|
|
4
|
+
author 'ispavailability'
|
|
5
|
+
license 'Apache License, Version 2.0'
|
|
6
|
+
summary 'Module for managing and configuring Elasticsearch nodes'
|
|
7
|
+
description 'Module for managing and configuring Elasticsearch nodes'
|
|
8
|
+
project_page 'https://github.com/elasticsearch/puppet-elasticsearch'
|
|
9
|
+
dependency 'puppetlabs/stdlib', '>= 3.0.0'
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# puppet-elasticsearch
|
|
2
|
+
|
|
3
|
+
A puppet module for managing elasticsearch nodes
|
|
4
|
+
|
|
5
|
+
http://www.elasticsearch.org/
|
|
6
|
+
|
|
7
|
+
[](https://travis-ci.org/elasticsearch/puppet-elasticsearch)
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
Installation, make sure service is running and will be started at boot time:
|
|
12
|
+
|
|
13
|
+
class { 'elasticsearch': }
|
|
14
|
+
|
|
15
|
+
Install a certain version:
|
|
16
|
+
|
|
17
|
+
class { 'elasticsearch':
|
|
18
|
+
version => '0.90.3'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
Removal/decommissioning:
|
|
22
|
+
|
|
23
|
+
class { 'elasticsearch':
|
|
24
|
+
ensure => 'absent',
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
Install everything but disable service(s) afterwards:
|
|
28
|
+
|
|
29
|
+
class { 'elasticsearch':
|
|
30
|
+
status => 'disabled',
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
Disable automated restart of Elasticsearch on config file change:
|
|
34
|
+
|
|
35
|
+
class { 'elasticsearch':
|
|
36
|
+
restart_on_change => false
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
For the config variable a hash needs to be passed:
|
|
40
|
+
|
|
41
|
+
class { 'elasticsearch':
|
|
42
|
+
config => {
|
|
43
|
+
'node' => {
|
|
44
|
+
'name' => 'elasticsearch001'
|
|
45
|
+
},
|
|
46
|
+
'index' => {
|
|
47
|
+
'number_of_replicas' => '0',
|
|
48
|
+
'number_of_shards' => '5'
|
|
49
|
+
},
|
|
50
|
+
'network' => {
|
|
51
|
+
'host' => $::ipaddress
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
Short write up of the config hash is also possible.
|
|
57
|
+
|
|
58
|
+
Instead of writing the full hash representation:
|
|
59
|
+
|
|
60
|
+
class { 'elasticsearch':
|
|
61
|
+
config => {
|
|
62
|
+
'cluster' => {
|
|
63
|
+
'name' => 'ClusterName',
|
|
64
|
+
'routing' => {
|
|
65
|
+
'allocation' => {
|
|
66
|
+
'awareness' => {
|
|
67
|
+
'attributes' => 'rack'
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
You can write the dotted key naming:
|
|
76
|
+
|
|
77
|
+
class { 'elasticsearch':
|
|
78
|
+
config => {
|
|
79
|
+
'cluster' => {
|
|
80
|
+
'name' => 'ClusterName',
|
|
81
|
+
'routing.allocation.awareness.attributes' => 'rack'
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
## Defaults file
|
|
87
|
+
|
|
88
|
+
You can populate the defaults file ( /etc/defaults/elasticsearch or /etc/sysconfig/elasticsearch )
|
|
89
|
+
|
|
90
|
+
class { 'elasticsearch':
|
|
91
|
+
service_settings => { 'ES_USER' => 'elasticsearch', 'ES_GROUP' => 'elasticsearch' }
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
## Manage templates
|
|
95
|
+
|
|
96
|
+
### Add a new template
|
|
97
|
+
|
|
98
|
+
elasticsearch::template { 'templatename':
|
|
99
|
+
file => 'puppet:///path/to/template.json'
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
### Delete a template
|
|
103
|
+
|
|
104
|
+
elasticsearch::template { 'templatename':
|
|
105
|
+
delete => true
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
### Replace a template
|
|
109
|
+
|
|
110
|
+
elasticsearch::template { 'templatename':
|
|
111
|
+
file => 'puppet:///path/to/template.json',
|
|
112
|
+
replace => true
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
### Host
|
|
116
|
+
|
|
117
|
+
Default it uses localhost:9200 as host. you can change this with the 'host' and 'port' variables
|
|
118
|
+
|
|
119
|
+
elasticsearch::template { 'templatename':
|
|
120
|
+
host => $::ipaddress,
|
|
121
|
+
port => 9200
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
## Bindings / clients
|
|
125
|
+
|
|
126
|
+
Install [a variety of python bindings](http://www.elasticsearch.org/guide/clients/):
|
|
127
|
+
|
|
128
|
+
elasticsearch::python { "rawes": }
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
## Plugins
|
|
132
|
+
|
|
133
|
+
Install [a variety of plugins](http://www.elasticsearch.org/guide/clients/):
|
|
134
|
+
|
|
135
|
+
### From official repository:
|
|
136
|
+
|
|
137
|
+
elasticsearch::plugin{'mobz/elasticsearch-head':
|
|
138
|
+
module_dir => 'head'
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
### From custom url:
|
|
142
|
+
|
|
143
|
+
elasticsearch::plugin{ 'elasticsearch-jetty':
|
|
144
|
+
module_dir => 'elasticsearch-jetty',
|
|
145
|
+
url => 'https://oss-es-plugins.s3.amazonaws.com/elasticsearch-jetty/elasticsearch-jetty-0.90.0.zip'
|
|
146
|
+
}
|
|
147
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# == Class: elasticsearch::config
|
|
2
|
+
#
|
|
3
|
+
# This class exists to coordinate all configuration related actions,
|
|
4
|
+
# functionality and logical units in a central place.
|
|
5
|
+
#
|
|
6
|
+
#
|
|
7
|
+
# === Parameters
|
|
8
|
+
#
|
|
9
|
+
# This class does not provide any parameters.
|
|
10
|
+
#
|
|
11
|
+
#
|
|
12
|
+
# === Examples
|
|
13
|
+
#
|
|
14
|
+
# This class may be imported by other classes to use its functionality:
|
|
15
|
+
# class { 'elasticsearch::config': }
|
|
16
|
+
#
|
|
17
|
+
# It is not intended to be used directly by external resources like node
|
|
18
|
+
# definitions or other modules.
|
|
19
|
+
#
|
|
20
|
+
#
|
|
21
|
+
# === Authors
|
|
22
|
+
#
|
|
23
|
+
# * Richard Pijnenburg <mailto:richard@ispavailability.com>
|
|
24
|
+
#
|
|
25
|
+
class elasticsearch::config {
|
|
26
|
+
|
|
27
|
+
include elasticsearch
|
|
28
|
+
|
|
29
|
+
Exec {
|
|
30
|
+
path => [ '/bin', '/usr/bin', '/usr/local/bin' ],
|
|
31
|
+
cwd => '/',
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
$settings = $elasticsearch::config
|
|
35
|
+
|
|
36
|
+
$notify_elasticsearch = $elasticsearch::restart_on_change ? {
|
|
37
|
+
false => undef,
|
|
38
|
+
default => Class['elasticsearch::service'],
|
|
39
|
+
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
file { $elasticsearch::confdir:
|
|
43
|
+
ensure => directory,
|
|
44
|
+
owner => 'root',
|
|
45
|
+
group => 'root',
|
|
46
|
+
mode => '0644',
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
file { "${elasticsearch::confdir}/elasticsearch.yml":
|
|
50
|
+
ensure => file,
|
|
51
|
+
content => template("${module_name}/etc/elasticsearch/elasticsearch.yml.erb"),
|
|
52
|
+
owner => 'root',
|
|
53
|
+
group => 'root',
|
|
54
|
+
mode => '0644',
|
|
55
|
+
require => [ Class['elasticsearch::package'], File[$elasticsearch::confdir] ],
|
|
56
|
+
notify => $notify_elasticsearch,
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
exec { 'mkdir_templates':
|
|
60
|
+
command => "mkdir -p ${elasticsearch::confdir}/templates_import",
|
|
61
|
+
creates => "${elasticsearch::confdir}/templates_import"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# == Class: elasticsearch
|
|
2
|
+
#
|
|
3
|
+
# This class is able to install or remove elasticsearch on a node.
|
|
4
|
+
# It manages the status of the related service.
|
|
5
|
+
#
|
|
6
|
+
# === Parameters
|
|
7
|
+
#
|
|
8
|
+
# [*config*]
|
|
9
|
+
# Hash. Hash that defines the configuration.
|
|
10
|
+
#
|
|
11
|
+
# [*ensure*]
|
|
12
|
+
# String. Controls if the managed resources shall be <tt>present</tt> or
|
|
13
|
+
# <tt>absent</tt>. If set to <tt>absent</tt>:
|
|
14
|
+
# * The managed software packages are being uninstalled.
|
|
15
|
+
# * Any traces of the packages will be purged as good as possible. This may
|
|
16
|
+
# include existing configuration files. The exact behavior is provider
|
|
17
|
+
# dependent. Q.v.:
|
|
18
|
+
# * Puppet type reference: {package, "purgeable"}[http://j.mp/xbxmNP]
|
|
19
|
+
# * {Puppet's package provider source code}[http://j.mp/wtVCaL]
|
|
20
|
+
# * System modifications (if any) will be reverted as good as possible
|
|
21
|
+
# (e.g. removal of created users, services, changed log settings, ...).
|
|
22
|
+
# * This is thus destructive and should be used with care.
|
|
23
|
+
# Defaults to <tt>present</tt>.
|
|
24
|
+
#
|
|
25
|
+
# [*autoupgrade*]
|
|
26
|
+
# Boolean. If set to <tt>true</tt>, any managed package gets upgraded
|
|
27
|
+
# on each Puppet run when the package provider is able to find a newer
|
|
28
|
+
# version than the present one. The exact behavior is provider dependent.
|
|
29
|
+
# Q.v.:
|
|
30
|
+
# * Puppet type reference: {package, "upgradeable"}[http://j.mp/xbxmNP]
|
|
31
|
+
# * {Puppet's package provider source code}[http://j.mp/wtVCaL]
|
|
32
|
+
# Defaults to <tt>false</tt>.
|
|
33
|
+
#
|
|
34
|
+
# [*status*]
|
|
35
|
+
# String to define the status of the service. Possible values:
|
|
36
|
+
# * <tt>enabled</tt>: Service is running and will be started at boot time.
|
|
37
|
+
# * <tt>disabled</tt>: Service is stopped and will not be started at boot
|
|
38
|
+
# time.
|
|
39
|
+
# * <tt>running</tt>: Service is running but will not be started at boot time.
|
|
40
|
+
# You can use this to start a service on the first Puppet run instead of
|
|
41
|
+
# the system startup.
|
|
42
|
+
# * <tt>unmanaged</tt>: Service will not be started at boot time and Puppet
|
|
43
|
+
# does not care whether the service is running or not. For example, this may
|
|
44
|
+
# be useful if a cluster management software is used to decide when to start
|
|
45
|
+
# the service plus assuring it is running on the desired node.
|
|
46
|
+
# Defaults to <tt>enabled</tt>. The singular form ("service") is used for the
|
|
47
|
+
# sake of convenience. Of course, the defined status affects all services if
|
|
48
|
+
# more than one is managed (see <tt>service.pp</tt> to check if this is the
|
|
49
|
+
# case).
|
|
50
|
+
#
|
|
51
|
+
# [*restart_on_change*]
|
|
52
|
+
# Boolean that determines if ElasticSearch should be automatically restarted
|
|
53
|
+
# whenever the configuration changes. Disabling automatic restarts on config
|
|
54
|
+
# changes may be desired in an environment where you need to ensure restarts
|
|
55
|
+
# occur in a controlled/rolling manner rather than during a Puppet run.
|
|
56
|
+
#
|
|
57
|
+
# Defaults to <tt>true</tt>, which will restart ElasticSearch on any config
|
|
58
|
+
# change. Setting to <tt>false</tt> disables the automatic restart.
|
|
59
|
+
#
|
|
60
|
+
# [*confdir*]
|
|
61
|
+
# Path to directory containing the elasticsearch configuration.
|
|
62
|
+
# Use this setting if your packages deviate from the norm (/etc/elasticsearch)
|
|
63
|
+
#
|
|
64
|
+
# [*plugindir*]
|
|
65
|
+
# Path to directory containing the elasticsearch plugins
|
|
66
|
+
# Use this setting if your packages deviate from the norm (/usr/share/elasticsearch/plugins)
|
|
67
|
+
#
|
|
68
|
+
# [*plugintool*]
|
|
69
|
+
# Path to directory containing the elasticsearch plugin installation script
|
|
70
|
+
# Use this setting if your packages deviate from the norm (/usr/share/elasticsearch/bin/plugin)
|
|
71
|
+
#
|
|
72
|
+
# [*service_settings*]
|
|
73
|
+
# A hash to define the default service settings. Values must be consistent
|
|
74
|
+
# with those defined in the init script and overwritten from the default
|
|
75
|
+
# file (/etc/default/elasticsearch or /etc/sysconfig/elasticsearch).
|
|
76
|
+
#
|
|
77
|
+
# [*initfile*]
|
|
78
|
+
# Source file to be used as the elasticsearch init script.
|
|
79
|
+
#
|
|
80
|
+
# [*version*]
|
|
81
|
+
# String to set the specific version you want to install.
|
|
82
|
+
# Defaults to <tt>false</tt>.
|
|
83
|
+
#
|
|
84
|
+
#
|
|
85
|
+
# The default values for the parameters are set in elasticsearch::params. Have
|
|
86
|
+
# a look at the corresponding <tt>params.pp</tt> manifest file if you need more
|
|
87
|
+
# technical information about them.
|
|
88
|
+
#
|
|
89
|
+
#
|
|
90
|
+
# === Examples
|
|
91
|
+
#
|
|
92
|
+
# * Installation, make sure service is running and will be started at boot time:
|
|
93
|
+
# class { 'elasticsearch': }
|
|
94
|
+
#
|
|
95
|
+
# * Removal/decommissioning:
|
|
96
|
+
# class { 'elasticsearch':
|
|
97
|
+
# ensure => 'absent',
|
|
98
|
+
# }
|
|
99
|
+
#
|
|
100
|
+
# * Install everything but disable service(s) afterwards
|
|
101
|
+
# class { 'elasticsearch':
|
|
102
|
+
# status => 'disabled',
|
|
103
|
+
# }
|
|
104
|
+
#
|
|
105
|
+
# * For the config variable a hash needs to be passed:
|
|
106
|
+
#
|
|
107
|
+
# class { 'elasticsearch':
|
|
108
|
+
# config => {
|
|
109
|
+
# 'node' => {
|
|
110
|
+
# 'name' => 'elasticsearch001'
|
|
111
|
+
# },
|
|
112
|
+
# 'index' => {
|
|
113
|
+
# 'number_of_replicas' => '0',
|
|
114
|
+
# 'number_of_shards' => '5'
|
|
115
|
+
# },
|
|
116
|
+
# 'network' => {
|
|
117
|
+
# 'host' => $::ipaddress
|
|
118
|
+
# }
|
|
119
|
+
# }
|
|
120
|
+
# }
|
|
121
|
+
#
|
|
122
|
+
# === Authors
|
|
123
|
+
#
|
|
124
|
+
# * Richard Pijnenburg <mailto:richard@ispavailability.com>
|
|
125
|
+
#
|
|
126
|
+
class elasticsearch(
|
|
127
|
+
$config = {},
|
|
128
|
+
$ensure = $elasticsearch::params::ensure,
|
|
129
|
+
$autoupgrade = $elasticsearch::params::autoupgrade,
|
|
130
|
+
$status = $elasticsearch::params::status,
|
|
131
|
+
$restart_on_change = $elasticsearch::params::restart_on_change,
|
|
132
|
+
$confdir = $elasticsearch::params::confdir,
|
|
133
|
+
$plugindir = $elasticsearch::params::plugindir,
|
|
134
|
+
$plugintool = $elasticsearch::params::plugintool,
|
|
135
|
+
$service_settings = $elasticsearch::params::service_settings,
|
|
136
|
+
$pkg_source = undef,
|
|
137
|
+
$version = false,
|
|
138
|
+
$java_install = false,
|
|
139
|
+
$java_package = undef,
|
|
140
|
+
$initfile = undef
|
|
141
|
+
) inherits elasticsearch::params {
|
|
142
|
+
|
|
143
|
+
#### Validate parameters
|
|
144
|
+
|
|
145
|
+
# ensure
|
|
146
|
+
if ! ($ensure in [ 'present', 'absent' ]) {
|
|
147
|
+
fail("\"${ensure}\" is not a valid ensure parameter value")
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
# autoupgrade
|
|
151
|
+
validate_bool($autoupgrade)
|
|
152
|
+
|
|
153
|
+
# service status
|
|
154
|
+
if ! ($status in [ 'enabled', 'disabled', 'running', 'unmanaged' ]) {
|
|
155
|
+
fail("\"${status}\" is not a valid status parameter value")
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
# Config
|
|
159
|
+
validate_hash($config)
|
|
160
|
+
validate_bool($restart_on_change)
|
|
161
|
+
|
|
162
|
+
#### Manage actions
|
|
163
|
+
anchor {'elasticsearch::begin': }
|
|
164
|
+
anchor {'elasticsearch::end': }
|
|
165
|
+
|
|
166
|
+
# package(s)
|
|
167
|
+
class { 'elasticsearch::package': }
|
|
168
|
+
|
|
169
|
+
# config
|
|
170
|
+
class { 'elasticsearch::config': }
|
|
171
|
+
|
|
172
|
+
# service(s)
|
|
173
|
+
class { 'elasticsearch::service': }
|
|
174
|
+
|
|
175
|
+
if $java_install == true {
|
|
176
|
+
# Install java
|
|
177
|
+
class { 'elasticsearch::java': }
|
|
178
|
+
|
|
179
|
+
# ensure we first java java and then manage the service
|
|
180
|
+
Anchor['elasticsearch::begin']
|
|
181
|
+
-> Class['elasticsearch::java']
|
|
182
|
+
-> Class['elasticsearch::service']
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
#### Manage relationships
|
|
186
|
+
|
|
187
|
+
if $ensure == 'present' {
|
|
188
|
+
# we need the software before configuring it
|
|
189
|
+
Anchor['elasticsearch::begin']
|
|
190
|
+
-> Class['elasticsearch::package']
|
|
191
|
+
-> Class['elasticsearch::config']
|
|
192
|
+
|
|
193
|
+
# we need the software before running a service
|
|
194
|
+
Class['elasticsearch::package'] -> Class['elasticsearch::service']
|
|
195
|
+
Class['elasticsearch::config'] -> Class['elasticsearch::service']
|
|
196
|
+
|
|
197
|
+
Class['elasticsearch::service']
|
|
198
|
+
-> Anchor['elasticsearch::end']
|
|
199
|
+
} else {
|
|
200
|
+
|
|
201
|
+
# make sure all services are getting stopped before software removal
|
|
202
|
+
Anchor['elasticsearch::begin']
|
|
203
|
+
-> Class['elasticsearch::service']
|
|
204
|
+
-> Class['elasticsearch::package']
|
|
205
|
+
-> Anchor['elasticsearch::end']
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
}
|