capistrano-memcached 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 08c7994a3efaa51855d4ef96394c6a77eb523e54
4
+ data.tar.gz: f3c50b41488b2e626b010480a77dc13ab24f11f6
5
+ SHA512:
6
+ metadata.gz: 76e4cdd71f4d5f6acd2204f71006c30cdbd0fa8dc67a6f8a929cd12da99439333cbcfd2f244ed38f2b7557fa0c6467fca663bd882d7ea98bc4cd4ff05f9d100a
7
+ data.tar.gz: b80880afb79a280c72b10442e969ff1f25c6105cf2f9f6d1c1accb733709fef7755740023e89cd92a0d8a0e1f9e09ccc1a735b7592c2a9604aa6bb7df93d6ac1
data/README.md CHANGED
@@ -17,7 +17,7 @@ see below for all available tasks
17
17
  `capistrano-memcached` works only with Capistrano 3!
18
18
 
19
19
  This project was heavily inspired (i.e. copied and reworked) by
20
- [capistrano-nginx-unicorn](https://github.com/bruno-/capistrano-nginx-unicorn).
20
+ [capistrano-nginx-unicorn](https://github.com/bruno-/capistrano-nginx-unicorn) and [capistrano-recipes](https://github.com/mattdbridges/capistrano-recipes).
21
21
 
22
22
  ### Installation
23
23
 
@@ -77,7 +77,9 @@ Location of memcached log file.
77
77
  The port memcached listens on.
78
78
 
79
79
  * `set :memcached_ip, "127.0.0.1" # default listen only on localhost (for security) `<br/>
80
- The IP memcached listens on.
80
+ The IP memcached listens on. If set to `:all`, memcached will listen on all IP addresses.
81
+ This parameter is one of the only security measures that memcached has, so make sure
82
+ it's listening on a firewalled interface.
81
83
 
82
84
  * `set :memcached_roles, [:app]`<br/>
83
85
  The roles on which memcached will be installed. `memcached.yml` will be available to all :app roles.
@@ -103,7 +105,8 @@ You can also provide path, where to generate templates:
103
105
 
104
106
 
105
107
  ### TODO
106
- * SASL authentication setup for memcached when running on multiple servers.
108
+ * Configure memcached server and clients for distributed setup.
109
+ * SASL authentication setup for memcached when running on multiple servers.
107
110
 
108
111
  ### More Capistrano automation?
109
112
 
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Memcached
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
@@ -9,11 +9,12 @@ namespace :load do
9
9
  set :memcached_memory_limit, 128
10
10
  set :memcached_log_file, "/var/log/memcached.log"
11
11
  set :memcached_port, 11211
12
- set :memcached_ip, "127.0.0.1" # listen only on localhost (for security)
12
+ set :memcached_ip, "127.0.0.1" # listen only on localhost by default (for security)
13
13
 
14
14
  # this is where memcached will be installed. A handy memcached.yml file will be created on all :app roles in
15
15
  # shared/config
16
16
  set :memcached_roles, [:app]
17
+ set :memcached_client_roles, [:app]
17
18
  set :memcached_user, "memcache"
18
19
 
19
20
  set :memcached_app_config, -> { memcached_default_app_config_file }
@@ -22,42 +23,38 @@ namespace :load do
22
23
  end
23
24
 
24
25
  namespace :memcached do
26
+ %w[start stop restart].each do |command|
27
+ desc "#{command} Memcached"
28
+ task command do
29
+ on roles fetch(:memcached_roles) do
30
+ sudo :service, "memcached #{command}"
31
+ end
32
+ end
33
+ end
25
34
 
26
35
  desc "Setup Memcached config file"
27
36
  task :setup do
28
37
  on roles fetch(:memcached_roles) do
29
38
  sudo "useradd #{fetch(:memcached_user)}; true" # create user, but don't fail if it already exists
30
- sudo "apt-get", "-y install memcached"
31
-
32
39
  sudo_upload! mem_template("memcached.erb"), memcached_config_file
33
- invoke "memcached:restart"
34
40
  end
35
41
  end
42
+ after 'memcached:setup', 'memcached:restart'
36
43
 
37
44
  desc 'Setup Memcached app configuration'
38
45
  task :setup_app_config do
39
- on roles :app do
46
+ on roles fetch(:memcached_client_roles) do
40
47
  execute :mkdir, '-pv', File.dirname(fetch(:memcached_app_config))
41
48
  upload! mem_template('memcached.yml.erb'), fetch(:memcached_app_config)
42
49
  end
43
50
  end
44
51
 
45
52
  task :memcached_yml_symlink do
46
- on roles :app do
53
+ on roles fetch(:memcached_client_roles) do
47
54
  set :linked_files, fetch(:linked_files, []).push("config/memcached.yml")
48
55
  end
49
56
  end
50
-
51
57
  before 'deploy:symlink:linked_files', 'memcached:memcached_yml_symlink'
52
-
53
- %w[start stop restart].each do |command|
54
- desc "#{command} Memcached"
55
- task command do
56
- on roles fetch(:memcached_roles) do
57
- sudo :service, "memcached #{command}"
58
- end
59
- end
60
- end
61
58
  end
62
59
 
63
60
  desc 'Server setup tasks'
@@ -1,15 +1,51 @@
1
- # run as a daemon
1
+ # memcached default config file.
2
+ # Adapted by capistrano-memcached gem: https://github.com/capistrano-plugins/capistrano-memcached
3
+ # Last change: <%= Time.now.to_s %>
4
+ # 2003 - Jay Bonci <jaybonci@debian.org>
5
+ # This configuration file is read by the start-memcached script provided as
6
+ # part of the Debian GNU/Linux distribution.
7
+
8
+ # Run memcached as a daemon. This command is implied, and is not needed for the
9
+ # daemon to run. See the README.Debian that comes with this package for more
10
+ # information.
2
11
  -d
3
12
 
13
+ # Log memcached's output to /var/log/memcached
4
14
  logfile <%= fetch(:memcached_log_file) %>
5
15
 
6
- # memory limit
16
+ # Be verbose
17
+ # -v
18
+
19
+ # Be even more verbose (print client commands as well)
20
+ # -vv
21
+
22
+ # Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
23
+ # Note that the daemon will grow to this size, but does not start out holding this much
24
+ # memory
7
25
  -m <%= fetch(:memcached_memory_limit) %>
8
26
 
9
- # port
27
+ # Default connection port is 11211
10
28
  -p <%= fetch(:memcached_port) %>
11
29
 
12
- # user
30
+ # Run the daemon as root. The start-memcached will default to running as root if no
31
+ # -u command is present in this config file
13
32
  -u <%= fetch(:memcached_user) %>
14
33
 
15
- -l <%= fetch(:memcached_ip) %>
34
+ # Specify which IP address to listen on. The default is to listen on all IP addresses
35
+ # This parameter is one of the only security measures that memcached has, so make sure
36
+ # it's listening on a firewalled interface.
37
+ <% unless fetch(:memcached_ip) == :all %>
38
+ -l <%= fetch(:memcached_ip) %>
39
+ <% end %>
40
+
41
+ # Limit the number of simultaneous incoming connections. The daemon default is 1024
42
+ # -c 1024
43
+
44
+ # Lock down all paged memory. Consult with the README and homepage before you do this
45
+ # -k
46
+
47
+ # Return error when memory is exhausted (rather than removing items)
48
+ # -M
49
+
50
+ # Maximize core file limit
51
+ # -r
@@ -1,2 +1,9 @@
1
1
  <%= fetch(:stage) %>:
2
- host: '127.0.0.1:11211'
2
+ host:
3
+ <% if fetch(:memcached_ip) == :all %>
4
+ <% roles(fetch(:memcached_roles)).each do |role| %>
5
+ - '<%= role.hostname %>:<%= fetch(:memcached_port)%>'
6
+ <% end %>
7
+ <% else %>
8
+ '<%=fetch(:memcached_ip)%>:<%=fetch(:memcached_port)%>'
9
+ <% end %>
metadata CHANGED
@@ -1,82 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-memcached
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 1.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ruben Stranders
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-09-26 00:00:00.000000000 Z
11
+ date: 2015-01-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: capistrano
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.1'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '3.1'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: sshkit
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: 1.2.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: 1.2.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
- description: ! 'Capistrano tasks for automatic and sensible memcached configuration.
63
-
55
+ description: |
56
+ Capistrano tasks for automatic and sensible memcached configuration.
64
57
  Enables zero downtime deployments of Rails applications. Configs can be
65
-
66
58
  copied to the application using generators and easily customized.
67
-
68
59
  Works *only* with Capistrano 3+.
69
-
70
60
  Heavily inspired (i.e. copied and reworked) by https://github.com/bruno-/capistrano-unicorn-nginx
71
-
72
- '
73
61
  email:
74
62
  - r.stranders@gmail.com
75
63
  executables: []
76
64
  extensions: []
77
65
  extra_rdoc_files: []
78
66
  files:
79
- - .gitignore
67
+ - ".gitignore"
80
68
  - Gemfile
81
69
  - LICENSE.md
82
70
  - README.md
@@ -94,26 +82,25 @@ files:
94
82
  - lib/generators/capistrano/memcached/templates/memcached.yml.erb
95
83
  homepage: https://github.com/rhomeister/capistrano-memcached
96
84
  licenses: []
85
+ metadata: {}
97
86
  post_install_message:
98
87
  rdoc_options: []
99
88
  require_paths:
100
89
  - lib
101
90
  required_ruby_version: !ruby/object:Gem::Requirement
102
- none: false
103
91
  requirements:
104
- - - ! '>='
92
+ - - ">="
105
93
  - !ruby/object:Gem::Version
106
94
  version: '0'
107
95
  required_rubygems_version: !ruby/object:Gem::Requirement
108
- none: false
109
96
  requirements:
110
- - - ! '>='
97
+ - - ">="
111
98
  - !ruby/object:Gem::Version
112
99
  version: '0'
113
100
  requirements: []
114
101
  rubyforge_project:
115
- rubygems_version: 1.8.23
102
+ rubygems_version: 2.2.2
116
103
  signing_key:
117
- specification_version: 3
104
+ specification_version: 4
118
105
  summary: Capistrano tasks for automatic and sensible memcached configuration.
119
106
  test_files: []