taperole 1.8.2 → 2.0.0

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +13 -0
  4. data/Gemfile.lock +4 -2
  5. data/README.md +6 -6
  6. data/lib/taperole/commands/ansible.rb +2 -2
  7. data/lib/taperole/core/ansible_runner.rb +1 -1
  8. data/lib/taperole/core/installer.rb +4 -4
  9. data/lib/taperole/version.rb +1 -1
  10. data/requirements.yml +0 -3
  11. data/roles/backend_checkout/tasks/main.yml +0 -1
  12. data/roles/backend_install_essentials/meta/main.yml +0 -1
  13. data/roles/backend_install_essentials/tasks/main.yml +0 -10
  14. data/roles/deployer_user/tasks/main.yml +2 -2
  15. data/roles/dev_keys/tasks/main.yml +1 -1
  16. data/roles/letsencrypt/tasks/main.yml +19 -0
  17. data/roles/nginx/tasks/main.yml +31 -8
  18. data/roles/nginx/templates/nginx.conf.j2 +84 -0
  19. data/roles/nginx/templates/{nginx_unicorn.j2 → nginx_puma.j2} +34 -13
  20. data/roles/puma_activate/tasks/main.yml +27 -0
  21. data/roles/puma_install/tasks/main.yml +29 -0
  22. data/roles/puma_install/templates/puma.rb.j2 +26 -0
  23. data/roles/puma_install/templates/puma_init.j2 +75 -0
  24. data/roles/puma_install/templates/puma_monit.j2 +6 -0
  25. data/spec/commands/installer_spec.rb +3 -3
  26. data/taperole.gemspec +1 -0
  27. data/templates/base/deploy.example.yml +1 -1
  28. data/templates/base/omnibox.example.yml +3 -2
  29. data/templates/base/tape_vars.example.yml +6 -1
  30. data/templates/static_html/omnibox.example.yml +1 -0
  31. data/templates/static_html/tape_vars.example.yml +6 -1
  32. data/test/base_docker_box/Dockerfile +3 -3
  33. data/test/rails/Dockerfile +3 -3
  34. data/test/rails/start_rails.sh +6 -4
  35. data/test/rails/tape_vars.yml +7 -2
  36. data/vars/defaults.yml +7 -6
  37. metadata +24 -26
  38. data/roles/backend_install_essentials/templates/memcached.j2 +0 -7
  39. data/roles/unicorn_activate/defaults/main.yml +0 -3
  40. data/roles/unicorn_activate/tasks/main.yml +0 -16
  41. data/roles/unicorn_install/tasks/main.yml +0 -21
  42. data/roles/unicorn_install/templates/unicorn.rb.j2 +0 -47
  43. data/roles/unicorn_install/templates/unicorn_init.j2 +0 -70
  44. data/roles/unicorn_install/templates/unicorn_monit.j2 +0 -5
  45. data/vendor/geerlingguy.memcached/.gitignore +0 -1
  46. data/vendor/geerlingguy.memcached/.travis.yml +0 -34
  47. data/vendor/geerlingguy.memcached/README.md +0 -53
  48. data/vendor/geerlingguy.memcached/defaults/main.yml +0 -9
  49. data/vendor/geerlingguy.memcached/handlers/main.yml +0 -3
  50. data/vendor/geerlingguy.memcached/meta/.galaxy_install_info +0 -1
  51. data/vendor/geerlingguy.memcached/meta/main.yml +0 -24
  52. data/vendor/geerlingguy.memcached/tasks/main.yml +0 -29
  53. data/vendor/geerlingguy.memcached/tasks/setup-Debian.yml +0 -6
  54. data/vendor/geerlingguy.memcached/tasks/setup-RedHat.yml +0 -3
  55. data/vendor/geerlingguy.memcached/templates/memcached-Debian.conf.j2 +0 -27
  56. data/vendor/geerlingguy.memcached/templates/memcached-RedHat.conf.j2 +0 -19
  57. data/vendor/geerlingguy.memcached/tests/inventory +0 -1
  58. data/vendor/geerlingguy.memcached/tests/test.yml +0 -5
  59. data/vendor/geerlingguy.memcached/vars/Debian.yml +0 -3
  60. data/vendor/geerlingguy.memcached/vars/RedHat.yml +0 -3
@@ -64,7 +64,7 @@ describe Taperole::Commands::Installer do
64
64
  end
65
65
 
66
66
  it 'creates the dev_keys directory' do
67
- expect(root).to include('dev_keys')
67
+ expect(taperole).to include('dev_keys')
68
68
  end
69
69
  end
70
70
 
@@ -77,7 +77,7 @@ describe Taperole::Commands::Installer do
77
77
  FileUtils.touch("#{Dir.pwd}/taperole/rake.yml")
78
78
  FileUtils.touch("#{Dir.pwd}/taperole/roles")
79
79
  FileUtils.touch("#{Dir.pwd}/taperole/hosts")
80
- FileUtils.touch("#{Dir.pwd}/dev_keys")
80
+ FileUtils.touch("#{Dir.pwd}/taperole/dev_keys")
81
81
  FileUtils.touch("#{Dir.pwd}/Vagrantfile")
82
82
  end
83
83
  let(:command) { :uninstall }
@@ -107,7 +107,7 @@ describe Taperole::Commands::Installer do
107
107
  end
108
108
 
109
109
  it 'removes dev_keys' do
110
- expect(root).to_not include('dev_keys')
110
+ expect(taperole).to_not include('dev_keys')
111
111
  end
112
112
 
113
113
  it 'removes Vagrantfile' do
data/taperole.gemspec CHANGED
@@ -18,5 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.add_runtime_dependency 'colorize', '~> 0.8.1'
19
19
  spec.add_development_dependency 'rspec-expectations', '~> 3.5'
20
20
  spec.add_development_dependency 'rspec', '~> 3.5'
21
+ spec.add_development_dependency 'rake', '12.0.0'
21
22
  spec.require_paths = ['lib']
22
23
  end
@@ -12,7 +12,7 @@
12
12
  - backend_checkout
13
13
  - backend_config
14
14
  - database_load
15
- - unicorn_activate
15
+ - puma_activate
16
16
  - frontend_deploy
17
17
  # - delayed_job
18
18
  # - whenever
@@ -28,14 +28,15 @@
28
28
  - dev_keys
29
29
  - monit_install
30
30
  - postgres
31
+ - letsencrypt
31
32
  - nginx
32
33
  - backend_install_essentials
33
34
  - frontend_install_essentials
34
35
  - backend_checkout
35
- - unicorn_install
36
+ - puma_install
36
37
  - backend_config
37
38
  - database_load
38
- - unicorn_activate
39
+ - puma_activate
39
40
  - frontend_deploy
40
41
  # - delayed_job
41
42
  # - whenever
@@ -1,5 +1,10 @@
1
1
  app_name:
2
2
 
3
+ letsencrypt:
4
+ enabled: false
5
+ hostname: # REQUIRED should be example.com or subdomain.example.com (do not include the www)
6
+ email: # REQUIRED
7
+
3
8
  # Rails App Configs
4
9
  be_app_repo:
5
10
 
@@ -7,7 +12,7 @@ be_app_repo:
7
12
  # Uncomment if you want to deploy a JS/HTML App
8
13
  # fe_app_repo:
9
14
  # fe_app_branch: master
10
- # fe_build_command: gulp build
15
+ # fe_build_command: npm run build
11
16
 
12
17
  slack_webhook_url:
13
18
 
@@ -25,6 +25,7 @@
25
25
  - deployer_user
26
26
  - frontend_install_essentials
27
27
  - monit_install
28
+ - letsencrypt
28
29
  - nginx
29
30
  - frontend_deploy
30
31
  - monit_activate # Run Last
@@ -1,6 +1,11 @@
1
1
  app_name:
2
2
 
3
+ letsencrypt:
4
+ enabled: false
5
+ hostname: # REQUIRED should be example.com or subdomain.example.com (do not include the www)
6
+ email: # REQUIRED
7
+
3
8
  # App Configs
4
9
  fe_app_repo:
5
10
  fe_app_branch: master
6
- fe_build_command: gulp build
11
+ fe_build_command: npm run build
@@ -11,9 +11,9 @@ RUN apt-get install -y python-dev git aptitude sudo wget make zlib1g-dev libssl-
11
11
 
12
12
  # Install Ruby
13
13
  WORKDIR /tmp
14
- RUN wget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
15
- RUN tar -xvzf ruby-2.3.0.tar.gz
16
- WORKDIR /tmp/ruby-2.3.0
14
+ RUN wget http://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.gz
15
+ RUN tar -xvzf ruby-2.4.0.tar.gz
16
+ WORKDIR /tmp/ruby-2.4.0
17
17
  RUN ./configure --prefix=/usr/local
18
18
  RUN make
19
19
  RUN make install
@@ -13,8 +13,8 @@ RUN gem install slack-notifier
13
13
  RUN gem install taperole # gem installs from local directory first, then remote
14
14
 
15
15
  # Configure tape
16
- RUN git clone https://github.com/smashingboxes/taperole_vanilla_4.git
17
- WORKDIR /taperole/taperole_vanilla_4
16
+ RUN git clone https://github.com/BrandonMathis/vanilla-rails-app.git
17
+ WORKDIR /taperole/vanilla-rails-app
18
18
  RUN echo 'n' | tape installer install
19
19
  ADD ./test/rails/tape_vars.yml taperole/tape_vars.yml
20
20
 
@@ -25,7 +25,7 @@ RUN sed -i '/ufw/d' taperole/omnibox.yml
25
25
  # Run Tape
26
26
  RUN echo '[omnibox]' > taperole/hosts
27
27
  RUN echo 'localhost ansible_connection=local be_app_env=production be_app_branch=master' >> taperole/hosts
28
- RUN tape ansible everything
28
+ RUN tape ansible provision
29
29
  RUN chown deployer:users /home/deployer -R
30
30
  ADD test/rails/start_rails.sh /
31
31
 
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env bash
2
- rm -rf /tmp/*.sock
2
+ rm -rf /home/deployer/vanilla/pids/puma.pid
3
+ rm -rf /home/deployer/vanilla/pids/puma.state
4
+ rm -rf /home/deployer/vanilla/tmp/*.sock
3
5
  service postgresql start
4
- service monit start
5
- monit start all
6
- sleep 10
6
+ monit start puma
7
+ monit start nginx
8
+ sleep 2
7
9
  curl https://localhost --insecure
@@ -1,7 +1,12 @@
1
- app_name: vanilla_4
1
+ app_name: vanilla
2
+
3
+ letsencrypt:
4
+ enabled: false
5
+ hostname: # REQUIRED should be example.com or subdomain.example.com (do not include the www)
6
+ email: # REQUIRED
2
7
 
3
8
  # Rails App Configs
4
- be_app_repo: https://github.com/smashingboxes/taperole_vanilla_4.git
9
+ be_app_repo: https://github.com/BrandonMathis/vanilla-rails-app.git
5
10
 
6
11
  # HTML/JS App Configs
7
12
  # Uncomment if you want to deploy a JS/HTML App
data/vars/defaults.yml CHANGED
@@ -14,8 +14,11 @@ deployer_user:
14
14
  # Path where this playbook is being run from
15
15
  local_dir: "{{lookup('env', 'PWD')}}"
16
16
 
17
- unicorn_workers: "{{ansible_processor_cores * 2}}"
18
- unicorn_sockfile: /tmp/unicorn_{{ app_name }}.sock
17
+ # Puma Configs
18
+ puma_workers: "{{ansible_processor_cores}}"
19
+ puma_pidfile: "{{be_app_path}}/pids/puma.pid"
20
+ puma_state_path: "{{be_app_path}}/pids/puma.state"
21
+ puma_sockfile: "{{ be_app_path }}/tmp/puma_{{ app_name }}.sock"
19
22
 
20
23
  swap_file:
21
24
  path: /swp
@@ -24,14 +27,12 @@ swap_file:
24
27
  # echo 'password' | md5
25
28
  database_password: 286755fad04869ca523320acce0dc6a4
26
29
 
27
- enabled_delayed_job: false
28
-
29
30
  precompile_assets: true
30
31
 
31
32
  # Sets server_name in the nginx sites-enabled file
32
33
  app_url: false
33
34
 
34
- fe_build_command: gulp build
35
+ fe_build_command: npm run build
35
36
 
36
37
  allowed_ports:
37
38
  - 80
@@ -69,7 +70,7 @@ backup_profiles:
69
70
  rbenv:
70
71
  env: system
71
72
  version: v1.0.0
72
- ruby_version: 2.3.1
73
+ ruby_version: 2.4.0
73
74
 
74
75
  rbenv_group: root
75
76
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taperole
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Forrest
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-03-08 00:00:00.000000000 Z
13
+ date: 2017-03-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: slack-notifier
@@ -82,6 +82,20 @@ dependencies:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
84
  version: '3.5'
85
+ - !ruby/object:Gem::Dependency
86
+ name: rake
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - '='
90
+ - !ruby/object:Gem::Version
91
+ version: 12.0.0
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - '='
97
+ - !ruby/object:Gem::Version
98
+ version: 12.0.0
85
99
  description: General purpose server provisioning and application deployment toolkit
86
100
  email:
87
101
  - jack@smashingboxes.com
@@ -126,7 +140,6 @@ files:
126
140
  - roles/backend_install_essentials/meta/main.yml
127
141
  - roles/backend_install_essentials/tasks/main.yml
128
142
  - roles/backend_install_essentials/templates/gemrc.j2
129
- - roles/backend_install_essentials/templates/memcached.j2
130
143
  - roles/database_load/defaults/main.yml
131
144
  - roles/database_load/tasks/db_reset.yml
132
145
  - roles/database_load/tasks/main.yml
@@ -146,16 +159,23 @@ files:
146
159
  - roles/general/tasks/main.yml
147
160
  - roles/general/tasks/swapfile.yml
148
161
  - roles/imagemagick/tasks/main.yml
162
+ - roles/letsencrypt/tasks/main.yml
149
163
  - roles/monit_activate/tasks/main.yml
150
164
  - roles/monit_install/tasks/main.yml
151
165
  - roles/monit_install/templates/monitrc.j2
152
166
  - roles/monit_install/templates/web_interface.j2
153
167
  - roles/nginx/handlers/main.yml
154
168
  - roles/nginx/tasks/main.yml
169
+ - roles/nginx/templates/nginx.conf.j2
155
170
  - roles/nginx/templates/nginx_monit.j2
156
- - roles/nginx/templates/nginx_unicorn.j2
171
+ - roles/nginx/templates/nginx_puma.j2
157
172
  - roles/node/tasks/main.yml
158
173
  - roles/postgres/meta/main.yml
174
+ - roles/puma_activate/tasks/main.yml
175
+ - roles/puma_install/tasks/main.yml
176
+ - roles/puma_install/templates/puma.rb.j2
177
+ - roles/puma_install/templates/puma_init.j2
178
+ - roles/puma_install/templates/puma_monit.j2
159
179
  - roles/redis/meta/main.yml
160
180
  - roles/redis/tasks/main.yml
161
181
  - roles/redis/templates/rc.local.j2
@@ -174,12 +194,6 @@ files:
174
194
  - roles/sidekiq/tasks/main.yml
175
195
  - roles/sidekiq/templates/sidekiq.j2
176
196
  - roles/ufw/tasks/main.yml
177
- - roles/unicorn_activate/defaults/main.yml
178
- - roles/unicorn_activate/tasks/main.yml
179
- - roles/unicorn_install/tasks/main.yml
180
- - roles/unicorn_install/templates/unicorn.rb.j2
181
- - roles/unicorn_install/templates/unicorn_init.j2
182
- - roles/unicorn_install/templates/unicorn_monit.j2
183
197
  - roles/whenever/tasks/main.yml
184
198
  - spec/commands/installer_spec.rb
185
199
  - spec/spec_helper.rb
@@ -287,22 +301,6 @@ files:
287
301
  - vendor/ansible-sysfs/tests/test.yml
288
302
  - vendor/ansible-sysfs/tests/vagrant.yml
289
303
  - vendor/ansible-sysfs/vars/main.yml
290
- - vendor/geerlingguy.memcached/.gitignore
291
- - vendor/geerlingguy.memcached/.travis.yml
292
- - vendor/geerlingguy.memcached/README.md
293
- - vendor/geerlingguy.memcached/defaults/main.yml
294
- - vendor/geerlingguy.memcached/handlers/main.yml
295
- - vendor/geerlingguy.memcached/meta/.galaxy_install_info
296
- - vendor/geerlingguy.memcached/meta/main.yml
297
- - vendor/geerlingguy.memcached/tasks/main.yml
298
- - vendor/geerlingguy.memcached/tasks/setup-Debian.yml
299
- - vendor/geerlingguy.memcached/tasks/setup-RedHat.yml
300
- - vendor/geerlingguy.memcached/templates/memcached-Debian.conf.j2
301
- - vendor/geerlingguy.memcached/templates/memcached-RedHat.conf.j2
302
- - vendor/geerlingguy.memcached/tests/inventory
303
- - vendor/geerlingguy.memcached/tests/test.yml
304
- - vendor/geerlingguy.memcached/vars/Debian.yml
305
- - vendor/geerlingguy.memcached/vars/RedHat.yml
306
304
  - vendor/jnv.unattended-upgrades/.gitignore
307
305
  - vendor/jnv.unattended-upgrades/.travis.yml
308
306
  - vendor/jnv.unattended-upgrades/LICENSE
@@ -1,7 +0,0 @@
1
- check process memcached with pidfile /var/run/memcached.pid
2
- start program = "/etc/init.d/memcached start"
3
- stop program = "/etc/init.d/memcached stop"
4
- if failed host 127.0.0.1 port 11211 then restart
5
- if cpu > 70% for 2 cycles then alert
6
- if cpu > 98% for 5 cycles then restart
7
- if 2 restarts within 3 cycles then timeout
@@ -1,3 +0,0 @@
1
- force_unicorn_restart: false
2
- force_unicorn_reload: false
3
- kill_unicorn: false
@@ -1,16 +0,0 @@
1
- - name: Ensure unicorn is stopped
2
- remote_user: "{{ deployer_user.name }}"
3
- command: bash -lc "sudo monit restart unicorn"
4
- when: kill_unicorn
5
-
6
- - name: Force stop unicorn
7
- remote_user: "{{ deployer_user.name }}"
8
- command: bash -lc "service unicorn_{{ app_name }} stop"
9
- when: kill_unicorn
10
-
11
- - name: Ensure tmp dir present for unicorn pids
12
- file: state=directory path={{be_app_path}}/tmp/unicorn owner={{ deployer_user.name }}
13
-
14
- - name: Restart Unicorn
15
- remote_user: "{{ deployer_user.name }}"
16
- command: bash -lc "sudo monit restart unicorn"
@@ -1,21 +0,0 @@
1
- - name: Install unicorn init.d script
2
- template: src=unicorn_init.j2
3
- dest=/etc/init.d/unicorn_{{app_name}}
4
- mode=u=rw,g=rx,o=rx
5
-
6
- - name: Set up unicorn log dir
7
- file: path={{be_app_path}}/log state=directory owner=deployer
8
-
9
- - name: Install unicorn config
10
- template: src=unicorn.rb.j2
11
- dest={{be_app_path}}/config/unicorn.rb
12
-
13
- - name: Register monit config files
14
- template: src=unicorn_monit.j2
15
- dest=/etc/monit/conf.d/unicorn
16
- mode=u=rw,g=r,o=r
17
- register: unicorn_monit_config
18
-
19
- - name: Reload Monit
20
- command: bash -lc "monit reload"
21
- when: unicorn_monit_config.changed
@@ -1,47 +0,0 @@
1
- worker_processes {{ unicorn_workers }}
2
- working_directory "{{ be_app_path }}"
3
- pid "{{ be_app_path }}/tmp/unicorn/unicorn.pid"
4
- stderr_path "{{ be_app_path }}/log/unicorn.log"
5
- stdout_path "{{ be_app_path }}/log/unicorn.log"
6
-
7
- # Please read this and understand the risk you take by enabling preload_app
8
- # http://unicorn.bogomips.org/Unicorn/Configurator.html#method-i-preload_app
9
- preload_app false
10
-
11
- timeout 30
12
-
13
- listen "{{ unicorn_sockfile }}"
14
-
15
- before_exec do |server|
16
- ENV["BUNDLE_GEMFILE"] = "#{Rails.root}/Gemfile"
17
- end
18
-
19
- GC.respond_to?(:copy_on_write_friendly=) and
20
- GC.copy_on_write_friendly = true
21
-
22
- check_client_connection false
23
-
24
- before_fork do |server, worker|
25
- defined?(ActiveRecord::Base) and
26
- ActiveRecord::Base.connection.disconnect!
27
-
28
- old_pid = "#{server.config[:pid]}.oldbin"
29
- if old_pid != server.pid
30
- begin
31
- sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
32
- Process.kill(sig, File.read(old_pid).to_i)
33
- rescue Errno::ENOENT, Errno::ESRCH
34
- end
35
- end
36
-
37
- # Throttle the master from forking too quickly by sleeping. Due
38
- # to the implementation of standard Unix signal handlers, this
39
- # helps (but does not completely) prevent identical, repeated signals
40
- # from being lost when the receiving process is busy.
41
- sleep 1
42
- end
43
-
44
- after_fork do |server, worker|
45
- defined?(ActiveRecord::Base) and
46
- ActiveRecord::Base.establish_connection
47
- end
@@ -1,70 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -u
4
-
5
- TIMEOUT=${TIMEOUT-60}
6
- RBENV_ROOT="{{ rbenv_root }}"
7
- PATH="$RBENV_ROOT/bin:$RBENV_ROOT/shims:$PATH"
8
- APP_ROOT="{{be_app_path}}"
9
- APP_USER="{{ deployer_user.name }}"
10
- PID="$APP_ROOT/tmp/unicorn/unicorn.pid"
11
- CMD="bundle exec unicorn -E {{be_app_env}} -D -c $APP_ROOT/config/unicorn.rb"
12
-
13
- action="$1"
14
- old_pid="$PID.oldbin"
15
-
16
- cd $APP_ROOT || exit 1
17
-
18
- sig () {
19
- test -s "$PID" && kill -$1 `cat $PID`
20
- }
21
-
22
- oldsig () {
23
- test -s $old_pid && kill -$1 `cat $old_pid`
24
- }
25
-
26
- case $action in
27
- start)
28
- sig 0 && echo >&2 "Already running" && exit 0
29
- rm -f $PID && $CMD
30
- ;;
31
- stop)
32
- sig QUIT && echo "Stopping" && exit 0
33
- echo >&2 "Unicorn master process with ID `cat $PID` not found (see: $PID)"
34
- ;;
35
- force-stop)
36
- pkill -9 -f "unicorn master" && echo "Forcing a stop\n" && rm -f $PID && echo "Cleaning up pid" && exit 0
37
- ;;
38
- restart|reload)
39
- sig HUP && echo reloaded OK && exit 0
40
- echo >&2 "Couldn't reload, starting '$CMD' instead"
41
- $CMD
42
- ;;
43
- upgrade)
44
- if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
45
- then
46
- n=$TIMEOUT
47
- while test -s $old_pid && test $n -ge 0
48
- do
49
- printf '.' && sleep 1 && n=$(( $n - 1 ))
50
- done
51
- echo
52
-
53
- if test $n -lt 0 && test -s $old_pid
54
- then
55
- echo >&2 "$old_pid still exists after $TIMEOUT seconds"
56
- exit 1
57
- fi
58
- exit 0
59
- fi
60
- echo >&2 "Couldn't upgrade, starting '$CMD' instead"
61
- $CMD
62
- ;;
63
- reopen-logs)
64
- sig USR1
65
- ;;
66
- *)
67
- echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
68
- exit 1
69
- ;;
70
- esac
@@ -1,5 +0,0 @@
1
- check process unicorn with pidfile {{ be_app_path }}/tmp/unicorn/unicorn.pid
2
- start program "/etc/init.d/unicorn_{{ app_name }} start" as uid deployer and gid deployer with timeout 90 seconds
3
- restart program "/etc/init.d/unicorn_{{ app_name }} restart" as uid deployer and gid deployer with timeout 90 seconds
4
- stop program "/etc/init.d/unicorn_{{ app_name }} stop" as uid deployer and gid deployer with timeout 90 seconds
5
- if 5 restarts within 5 cycles then timeout
@@ -1 +0,0 @@
1
- .DS_Store
@@ -1,34 +0,0 @@
1
- ---
2
- language: python
3
- python: "2.7"
4
-
5
- env:
6
- - SITE=test.yml
7
-
8
- before_install:
9
- - sudo apt-get update -qq
10
- - sudo apt-get install -y curl
11
-
12
- install:
13
- # Install Ansible.
14
- - pip install ansible
15
-
16
- # Add ansible.cfg to pick up roles path.
17
- - "{ echo '[defaults]'; echo 'roles_path = ../'; } >> ansible.cfg"
18
-
19
- script:
20
- # Check the role/playbook's syntax.
21
- - "ansible-playbook -i tests/inventory tests/$SITE --syntax-check"
22
-
23
- # Run the role/playbook with ansible-playbook.
24
- - "ansible-playbook -i tests/inventory tests/$SITE --connection=local --sudo"
25
-
26
- # Run the role/playbook again, checking to make sure it's idempotent.
27
- - >
28
- ansible-playbook -i tests/inventory tests/$SITE --connection=local --sudo
29
- | grep -q 'changed=0.*failed=0'
30
- && (echo 'Idempotence test: pass' && exit 0)
31
- || (echo 'Idempotence test: fail' && exit 1)
32
-
33
- # Check the version of Memcached (if this output fails, it's not running).
34
- - memcached -h | head -1
@@ -1,53 +0,0 @@
1
- # Ansible Role: Memcached
2
-
3
- [![Build Status](https://travis-ci.org/geerlingguy/ansible-role-memcached.svg?branch=master)](https://travis-ci.org/geerlingguy/ansible-role-memcached)
4
-
5
- An Ansible Role that installs Memcached on RedHat/CentOS or Debian/Ubuntu Linux.
6
-
7
- ## Requirements
8
-
9
- None.
10
-
11
- ## Role Variables
12
-
13
- Available variables are listed below, along with default values (see `defaults/main.yml`):
14
-
15
- memcached_user: memcache
16
-
17
- The user under which the Memcached daemon will run.
18
-
19
- memcached_port: 11211
20
- memcached_listen_ip: 127.0.0.1
21
-
22
- The port and IP address (127.0.0.1 for localhost) on which Memcached will listen for requests.
23
-
24
- memcached_memory_limit: 64
25
- memcached_connections: 1024
26
-
27
- Memcached limits. The maximum amount of RAM `memcached` will consume (64MB is the default), and the maximum number of simultaneous connections memcached will handle.
28
-
29
- memcached_log_file: /var/log/memcached.log
30
-
31
- The location of the memcached log file.
32
-
33
- memcached_log_verbosity: ""
34
-
35
- Normally memcached does not log anything. Change to "-v" to enable logging or to "-vv" for debug logging.
36
-
37
- ## Dependencies
38
-
39
- None.
40
-
41
- ## Example Playbook
42
-
43
- - hosts: cache
44
- roles:
45
- - { role: geerlingguy.memcached }
46
-
47
- ## License
48
-
49
- MIT / BSD
50
-
51
- ## Author Information
52
-
53
- This role was created in 2014 by [Jeff Geerling](http://jeffgeerling.com/), author of [Ansible for DevOps](http://ansiblefordevops.com/).
@@ -1,9 +0,0 @@
1
- ---
2
- memcached_port: 11211
3
- memcached_listen_ip: 127.0.0.1
4
-
5
- memcached_memory_limit: 64
6
- memcached_connections: 1024
7
-
8
- memcached_log_file: /var/log/memcached.log
9
- memcached_log_verbosity: ""
@@ -1,3 +0,0 @@
1
- ---
2
- - name: restart memcached
3
- service: name=memcached state=restarted
@@ -1 +0,0 @@
1
- {install_date: 'Thu Jan 5 14:34:16 2017', version: 1.0.4}
@@ -1,24 +0,0 @@
1
- ---
2
- dependencies: []
3
-
4
- galaxy_info:
5
- author: geerlingguy
6
- description: Memcached for Linux
7
- company: "Midwestern Mac, LLC"
8
- license: "license (BSD, MIT)"
9
- min_ansible_version: 1.4
10
- platforms:
11
- - name: EL
12
- versions:
13
- - 6
14
- - 7
15
- - name: Ubuntu
16
- versions:
17
- - precise
18
- - trusty
19
- - name: Debian
20
- versions:
21
- - all
22
- categories:
23
- - web
24
- - database
@@ -1,29 +0,0 @@
1
- ---
2
- # Include variables and define needed variables.
3
- - name: Include OS-specific variables.
4
- include_vars: "{{ ansible_os_family }}.yml"
5
-
6
- - name: Define memcached_user.
7
- set_fact:
8
- memcached_user: "{{ __memcached_user }}"
9
- when: memcached_user is not defined
10
-
11
- # Setup/install tasks.
12
- - include: setup-RedHat.yml
13
- when: ansible_os_family == 'RedHat'
14
-
15
- - include: setup-Debian.yml
16
- when: ansible_os_family == 'Debian'
17
-
18
- # Configure Memcached.
19
- - name: Copy Memcached configuration.
20
- template:
21
- src: memcached-{{ ansible_os_family }}.conf.j2
22
- dest: "{{ memcached_config_file }}"
23
- owner: root
24
- group: root
25
- mode: 0644
26
- notify: restart memcached
27
-
28
- - name: Ensure Memcached is started and set to run on startup.
29
- service: name=memcached state=started enabled=yes
@@ -1,6 +0,0 @@
1
- ---
2
- - name: Update apt cache.
3
- apt: update_cache=yes cache_valid_time=86400
4
-
5
- - name: Install Memcached.
6
- apt: name=memcached state=installed