rails-ahoy 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/ahoy.gemspec +1 -0
  3. data/lib/ahoy.rb +4 -1
  4. data/lib/ahoy/version.rb +1 -1
  5. data/lib/generators/ahoy/base.rb +8 -3
  6. data/lib/generators/ahoy/deployment_generator.rb +122 -0
  7. data/lib/generators/ahoy/init_generator.rb +10 -15
  8. data/lib/generators/ahoy/lib/question_helper.rb +50 -0
  9. data/lib/generators/ahoy/lib/variable_store.rb +19 -0
  10. data/lib/generators/ahoy/templates/_Vagrantfile +3 -3
  11. data/lib/generators/ahoy/templates/_database.yml +2 -2
  12. data/lib/generators/ahoy/templates/_deploy.rb +14 -13
  13. data/lib/generators/ahoy/templates/_puma.rb +3 -4
  14. data/lib/generators/ahoy/templates/_puma.sh +1 -1
  15. data/lib/generators/ahoy/templates/ansible/playbooks/roles/complete/tasks/main.yml +14 -0
  16. data/lib/generators/ahoy/templates/ansible/playbooks/roles/complete/templates/database.yml +9 -0
  17. data/lib/generators/ahoy/templates/ansible/playbooks/roles/complete/templates/secrets.yml +2 -0
  18. data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/tasks/main.yml +6 -6
  19. data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/templates/vimrc +0 -2
  20. data/lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/templates/platform.conf +6 -6
  21. data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/tasks/main.yml +8 -8
  22. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/gems.yml +2 -2
  23. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml +8 -8
  24. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml +4 -4
  25. data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/fail2ban.yml +4 -0
  26. data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/firewall.yml +2 -0
  27. data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/main.yml +1 -6
  28. data/lib/generators/ahoy/templates/{ansible_templates/playbooks/roles/security/tasks/_ssh_settings.yml → ansible/playbooks/roles/security/tasks/ssh_settings.yml} +4 -4
  29. data/lib/generators/ahoy/templates/ansible/playbooks/roles/user/tasks/main.yml +4 -4
  30. data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/application.yml +21 -0
  31. data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/main.yml +3 -0
  32. data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/system.yml +25 -0
  33. data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/templates/profile +22 -0
  34. data/lib/generators/ahoy/templates/ansible/playbooks/tasks/vagrant_settings.yml +1 -1
  35. data/lib/generators/ahoy/templates/ansible/production.sh +1 -0
  36. data/lib/generators/ahoy/templates/ansible_templates/_production +5 -0
  37. data/lib/generators/ahoy/templates/{ansible/playbooks/playbook.yml → ansible_templates/playbooks/_production.yml} +6 -7
  38. data/lib/generators/ahoy/templates/ansible_templates/playbooks/_vagrant.yml +17 -0
  39. data/lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_all.yml +2 -4
  40. data/lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_production.yml +11 -0
  41. data/lib/generators/ahoy/templates/env_templates/_development_env.yml +1 -0
  42. data/lib/generators/ahoy/templates/env_templates/_production_env.yml +12 -0
  43. data/lib/generators/ahoy/templates/env_templates/_test_env.yml +1 -0
  44. data/lib/generators/ahoy/vagrant_generator.rb +31 -31
  45. metadata +22 -15
  46. data/lib/generators/ahoy/ansible_generator.rb +0 -36
  47. data/lib/generators/ahoy/deploy_generator.rb +0 -47
  48. data/lib/generators/ahoy/templates/_env_vars.yml +0 -7
  49. data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/tasks/main.yml +0 -10
  50. data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/database.yml +0 -9
  51. data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/secrets.yml +0 -2
  52. data/lib/generators/ahoy/templates/ansible_templates/_hosts +0 -5
  53. data/lib/generators/ahoy/templates/ansible_templates/_provision.sh +0 -1
  54. data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_default.yml +0 -8
  55. data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_deploy.yml +0 -7
  56. data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_root.yml +0 -2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-ahoy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Pearson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-19 00:00:00.000000000 Z
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -55,20 +55,19 @@ files:
55
55
  - ahoy.gemspec
56
56
  - lib/ahoy.rb
57
57
  - lib/ahoy/version.rb
58
- - lib/generators/ahoy/ansible_generator.rb
59
58
  - lib/generators/ahoy/base.rb
60
- - lib/generators/ahoy/deploy_generator.rb
59
+ - lib/generators/ahoy/deployment_generator.rb
61
60
  - lib/generators/ahoy/init_generator.rb
61
+ - lib/generators/ahoy/lib/question_helper.rb
62
+ - lib/generators/ahoy/lib/variable_store.rb
62
63
  - lib/generators/ahoy/templates/_Vagrantfile
63
64
  - lib/generators/ahoy/templates/_database.yml
64
65
  - lib/generators/ahoy/templates/_deploy.rb
65
- - lib/generators/ahoy/templates/_env_vars.yml
66
66
  - lib/generators/ahoy/templates/_puma.rb
67
67
  - lib/generators/ahoy/templates/_puma.sh
68
- - lib/generators/ahoy/templates/ansible/playbooks/playbook.yml
69
- - lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/tasks/main.yml
70
- - lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/database.yml
71
- - lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/secrets.yml
68
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/complete/tasks/main.yml
69
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/complete/templates/database.yml
70
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/complete/templates/secrets.yml
72
71
  - lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/tasks/main.yml
73
72
  - lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/templates/vimrc
74
73
  - lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/tasks/main.yml
@@ -82,17 +81,25 @@ files:
82
81
  - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/main.yml
83
82
  - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml
84
83
  - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml
84
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/fail2ban.yml
85
85
  - lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/firewall.yml
86
86
  - lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/main.yml
87
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/ssh_settings.yml
87
88
  - lib/generators/ahoy/templates/ansible/playbooks/roles/user/tasks/main.yml
89
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/application.yml
90
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/main.yml
91
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/system.yml
92
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/variables/templates/profile
88
93
  - lib/generators/ahoy/templates/ansible/playbooks/tasks/vagrant_settings.yml
89
- - lib/generators/ahoy/templates/ansible_templates/_hosts
90
- - lib/generators/ahoy/templates/ansible_templates/_provision.sh
94
+ - lib/generators/ahoy/templates/ansible/production.sh
95
+ - lib/generators/ahoy/templates/ansible_templates/_production
96
+ - lib/generators/ahoy/templates/ansible_templates/playbooks/_production.yml
97
+ - lib/generators/ahoy/templates/ansible_templates/playbooks/_vagrant.yml
91
98
  - lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_all.yml
92
- - lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_default.yml
93
- - lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_deploy.yml
94
- - lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_root.yml
95
- - lib/generators/ahoy/templates/ansible_templates/playbooks/roles/security/tasks/_ssh_settings.yml
99
+ - lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_production.yml
100
+ - lib/generators/ahoy/templates/env_templates/_development_env.yml
101
+ - lib/generators/ahoy/templates/env_templates/_production_env.yml
102
+ - lib/generators/ahoy/templates/env_templates/_test_env.yml
96
103
  - lib/generators/ahoy/vagrant_generator.rb
97
104
  homepage: ''
98
105
  licenses:
@@ -1,36 +0,0 @@
1
- require 'rails/generators'
2
- require 'generators/ahoy/base'
3
- require 'fileutils'
4
-
5
- module Ahoy
6
- class AnsibleGenerator < Ahoy::Generator::Base
7
-
8
- def prompt_user
9
- defaults('127.0.0.1')
10
- @server_ip = ask('=> Which IP address will you be deploying to? [enter for default]').chomp
11
- defaults('22')
12
- @server_ssh_port = ask('=> What SSH port would you like to use on your server? [enter for default]').chomp
13
- defaults('2.1.5')
14
- @ruby_version = ask('=> Which version of Ruby would you like to install? [enter for default]').chomp
15
- defaults('9.3')
16
- @postgresql_version = ask('=> Which version of PostgreSQL would you like to install? [enter for default]').chomp
17
- end
18
-
19
- def copy_directory
20
- directory 'ansible', 'config/ansible'
21
- end
22
-
23
- def copy_templates
24
- template 'ansible_templates/_provision.sh', 'config/ansible/provision.sh'
25
- template 'ansible_templates/_hosts', 'config/ansible/hosts'
26
- template 'ansible_templates/playbooks/group_vars/_all.yml', 'config/ansible/playbooks/group_vars/all.yml'
27
- template 'ansible_templates/playbooks/host_vars/_production_root.yml', 'config/ansible/playbooks/host_vars/production_root.yml'
28
- template 'ansible_templates/playbooks/host_vars/_production_deploy.yml', 'config/ansible/playbooks/host_vars/production_deploy.yml'
29
- template 'ansible_templates/playbooks/roles/security/tasks/_ssh_settings.yml', 'config/ansible/playbooks/roles/security/tasks/ssh_settings.yml'
30
- end
31
-
32
- def change_permissions
33
- FileUtils.chmod 0751, 'config/ansible/provision.sh'
34
- end
35
- end
36
- end
@@ -1,47 +0,0 @@
1
- require 'rails/generators'
2
- require 'generators/ahoy/base'
3
- require 'fileutils'
4
-
5
- module Ahoy
6
- class DeployGenerator < Ahoy::Generator::Base
7
-
8
- def use_deploy
9
- defaults('No')
10
- @use_deploy = yes?('=> Would you like to setup deployment files using Puma and Mina? [enter for default]')
11
- end
12
-
13
- def prompt_user
14
- if @use_deploy
15
- @github_repo = ask('=> What is the github repository for this application?').chomp
16
- defaults('127.0.0.1')
17
- @server_ip = ask('=> Which IP address will you be deploying to? [enter for default]').chomp
18
- defaults('22')
19
- @server_ssh_port = ask('=> What SSH port would you like to use on your server? [enter for default]').chomp
20
- copy_templates
21
- add_gems
22
- change_permissions
23
- else
24
- puts 'Skipping deployment scripts'
25
- end
26
- end
27
-
28
- private
29
-
30
- def copy_templates
31
- template '_puma.sh', 'bin/puma.sh'
32
- template '_puma.rb', 'config/puma.rb'
33
- template '_deploy.rb', 'config/deploy.rb'
34
- end
35
-
36
- def add_gems
37
- gem_group :production do
38
- gem 'puma'
39
- gem 'rb-readline'
40
- end
41
- end
42
-
43
- def change_permissions
44
- FileUtils.chmod 0751, 'bin/puma.sh'
45
- end
46
- end
47
- end
@@ -1,7 +0,0 @@
1
- ---
2
- application_name: <%= Rails.application.class.parent_name.underscore %>
3
- production:
4
- db_name: <%= Rails.application.class.parent_name.underscore %>_production
5
- db_user: deploy
6
- db_password: # Remember to add your own!!
7
- secret_key_base: # Remember to add your own!!
@@ -1,10 +0,0 @@
1
- ---
2
- - name: create deploy directory
3
- sudo: true
4
- file: path=/var/www/{{ app_name }}/shared/config owner={{ deploy_user }} group={{ deploy_user }} recurse=yes state=directory
5
-
6
- - name: copy database.yml
7
- template: src=database.yml dest=/var/www/{{ app_name }}/shared/config/database.yml owner={{ deploy_user }} group={{ deploy_user }}
8
-
9
- - name: copy secrets.yml
10
- template: src=secrets.yml dest=/var/www/{{ app_name }}/shared/config/secrets.yml owner={{ deploy_user }} group={{ deploy_user }}
@@ -1,9 +0,0 @@
1
- production:
2
- adapter: postgresql
3
- host: localhost
4
- encoding: unicode
5
- pool: 5
6
- template: template0
7
- database: {{ production.db_name }}
8
- username: {{ production.db_user }}
9
- password: {{ production.db_password }}
@@ -1,2 +0,0 @@
1
- production:
2
- secret_key_base: {{ production.secret_key_base }}
@@ -1,5 +0,0 @@
1
- [production_root]
2
- production_root ansible_ssh_host=<%= @server_ip == '' ? '127.0.0.1' : @server_ip %>
3
-
4
- [production_deploy]
5
- production_deploy ansible_ssh_host=<%= @server_ip == '' ? '127.0.0.1' : @server_ip %> ansible_ssh_port=<%= @server_ssh_port == '' ? '22' : @server_ssh_port %>
@@ -1 +0,0 @@
1
- ansible-playbook playbooks/playbook.yml -i hosts
@@ -1,8 +0,0 @@
1
- ---
2
- domain: 127.0.0.1
3
- deploy_user: vagrant
4
- database:
5
- name: <%= Rails.application.class.parent_name.underscore %>_production
6
- user: vagrant
7
- password: vagrant
8
- secret_key_base: <%= Rails.application.secrets.secret_key_base %>
@@ -1,7 +0,0 @@
1
- ---
2
- domain: <%= @server_ip == '' ? '127.0.0.1' : @server_ip %>
3
- deploy_user: deploy
4
- database:
5
- name: "{{ production.db_name }}"
6
- user: "{{ production.db_user }}"
7
- password: "{{ production.db_password }}"