rails-ahoy 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +14 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +31 -0
  7. data/Rakefile +2 -0
  8. data/ahoy.gemspec +24 -0
  9. data/lib/ahoy.rb +5 -0
  10. data/lib/ahoy/version.rb +3 -0
  11. data/lib/generators/ahoy/ansible_generator.rb +36 -0
  12. data/lib/generators/ahoy/base.rb +24 -0
  13. data/lib/generators/ahoy/deploy_generator.rb +47 -0
  14. data/lib/generators/ahoy/init_generator.rb +49 -0
  15. data/lib/generators/ahoy/templates/_Vagrantfile +20 -0
  16. data/lib/generators/ahoy/templates/_database.yml +18 -0
  17. data/lib/generators/ahoy/templates/_deploy.rb +51 -0
  18. data/lib/generators/ahoy/templates/_env_vars.yml +7 -0
  19. data/lib/generators/ahoy/templates/_puma.rb +24 -0
  20. data/lib/generators/ahoy/templates/_puma.sh +79 -0
  21. data/lib/generators/ahoy/templates/ansible/playbooks/playbook.yml +22 -0
  22. data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/tasks/main.yml +10 -0
  23. data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/database.yml +9 -0
  24. data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/secrets.yml +2 -0
  25. data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/tasks/main.yml +43 -0
  26. data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/templates/vimrc +472 -0
  27. data/lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/tasks/main.yml +15 -0
  28. data/lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/templates/platform.conf +24 -0
  29. data/lib/generators/ahoy/templates/ansible/playbooks/roles/nodejs/tasks/main.yml +6 -0
  30. data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/handlers/main.yml +3 -0
  31. data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/tasks/main.yml +39 -0
  32. data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/templates/pg_hba.conf +91 -0
  33. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/files/gemrc +5 -0
  34. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/gems.yml +6 -0
  35. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/main.yml +4 -0
  36. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml +31 -0
  37. data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml +15 -0
  38. data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/firewall.yml +6 -0
  39. data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/main.yml +9 -0
  40. data/lib/generators/ahoy/templates/ansible/playbooks/roles/user/tasks/main.yml +6 -0
  41. data/lib/generators/ahoy/templates/ansible/playbooks/tasks/vagrant_settings.yml +3 -0
  42. data/lib/generators/ahoy/templates/ansible_templates/_hosts +5 -0
  43. data/lib/generators/ahoy/templates/ansible_templates/_provision.sh +1 -0
  44. data/lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_all.yml +6 -0
  45. data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_default.yml +8 -0
  46. data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_deploy.yml +7 -0
  47. data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_root.yml +2 -0
  48. data/lib/generators/ahoy/templates/ansible_templates/playbooks/roles/security/tasks/_ssh_settings.yml +25 -0
  49. data/lib/generators/ahoy/vagrant_generator.rb +52 -0
  50. metadata +121 -0
@@ -0,0 +1,15 @@
1
+ ---
2
+ - name: add apt-get repository for latest nginx
3
+ action: apt_repository repo=ppa:nginx/stable
4
+
5
+ - name: install nginx
6
+ apt: pkg=nginx state=present update_cache=true
7
+
8
+ - name: delete default vhost
9
+ action: file path=/etc/nginx/sites-enabled/default state=absent
10
+
11
+ - name: copy nginx conf
12
+ template: src=platform.conf dest=/etc/nginx/sites-enabled/platform.conf
13
+
14
+ - name: restart nginx
15
+ action: service name=nginx pattern=/etc/init.d/nginx state=restarted enabled=yes
@@ -0,0 +1,24 @@
1
+ upstream {{ app_name }} {
2
+ server {{ domain }}:3000;
3
+ server unix:///var/www/{{ app_name }}/shared/tmp/sockets/puma.sock;
4
+ }
5
+ server {
6
+ listen 80;
7
+ server_name {{ domain }};
8
+ root /var/www/{{ app_name }}/current/public;
9
+
10
+ location / {
11
+ proxy_set_header Host $host;
12
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
13
+ proxy_pass http://{{ app_name }};
14
+ }
15
+
16
+ location ~* ^/assets/ {
17
+ expires 1y;
18
+ add_header Cache-Control public;
19
+
20
+ add_header Last-Modified "";
21
+ add_header ETag "";
22
+ break;
23
+ }
24
+ }
@@ -0,0 +1,6 @@
1
+ ---
2
+ - name: add apt-get repository for latest node
3
+ action: apt_repository repo=ppa:chris-lea/node.js
4
+
5
+ - name: install node.js
6
+ apt: pkg=nodejs state=present update_cache=true
@@ -0,0 +1,3 @@
1
+ ---
2
+ - name: restart postgresql
3
+ service: name=postgresql state=restarted
@@ -0,0 +1,39 @@
1
+ ---
2
+ - name: install dependencies
3
+ action: apt pkg={{ item }} state=latest
4
+ with_items:
5
+ - python-apt
6
+ - python-psycopg2
7
+ - libpq-dev
8
+
9
+ - name: get postgres apt key
10
+ apt_key: url=http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc
11
+
12
+ - name: add apt-get repository for latest postgres
13
+ apt_repository: repo="deb http://apt.postgresql.org/pub/repos/apt/ {{ ansible_lsb.codename }}-pgdg main"
14
+
15
+ - name: install postgres
16
+ apt: name=postgresql-{{ postgresql.version }} state=latest update_cache=true
17
+
18
+ - name: copy pg_hba.conf
19
+ sudo: true
20
+ template: src=pg_hba.conf dest=/etc/postgresql/{{ postgresql.version }}/main/pg_hba.conf
21
+
22
+ - name: set pg_hba.conf permissions
23
+ sudo: true
24
+ file: path=/etc/postgresql/{{ postgresql.version }}/main/pg_hba.conf owner=postgres group=postgres mode=0640
25
+
26
+ - name: start postgresql
27
+ service: name=postgresql state=started
28
+
29
+ - name: create db user
30
+ postgresql_user: name={{ database.user }} password={{ database.password }} role_attr_flags=CREATEDB
31
+ sudo_user: postgres
32
+
33
+ - name: create database
34
+ postgresql_db: name={{ database.name }} owner={{ database.user }} encoding=unicode lc_collate=en_US.utf8 lc_ctype=en_US.utf8 template=template0
35
+ sudo_user: postgres
36
+ when: inventory_hostname == 'production_deploy'
37
+
38
+ - name: ensure postgres starts on a fresh reboot
39
+ service: name=postgresql state=started enabled=yes
@@ -0,0 +1,91 @@
1
+ # PostgreSQL Client Authentication Configuration File
2
+ # ===================================================
3
+ #
4
+ # Refer to the "Client Authentication" section in the PostgreSQL
5
+ # documentation for a complete description of this file. A short
6
+ # synopsis follows.
7
+ #
8
+ # This file controls: which hosts are allowed to connect, how clients
9
+ # are authenticated, which PostgreSQL user names they can use, which
10
+ # databases they can access. Records take one of these forms:
11
+ #
12
+ # local DATABASE USER METHOD [OPTIONS]
13
+ # host DATABASE USER ADDRESS METHOD [OPTIONS]
14
+ # hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
15
+ # hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
16
+ #
17
+ # (The uppercase items must be replaced by actual values.)
18
+ #
19
+ # The first field is the connection type: "local" is a Unix-domain
20
+ # socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
21
+ # "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
22
+ # plain TCP/IP socket.
23
+ #
24
+ # DATABASE can be "all", "sameuser", "samerole", "replication", a
25
+ # database name, or a comma-separated list thereof. The "all"
26
+ # keyword does not match "replication". Access to replication
27
+ # must be enabled in a separate record (see example below).
28
+ #
29
+ # USER can be "all", a user name, a group name prefixed with "+", or a
30
+ # comma-separated list thereof. In both the DATABASE and USER fields
31
+ # you can also write a file name prefixed with "@" to include names
32
+ # from a separate file.
33
+ #
34
+ # ADDRESS specifies the set of hosts the record matches. It can be a
35
+ # host name, or it is made up of an IP address and a CIDR mask that is
36
+ # an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
37
+ # specifies the number of significant bits in the mask. A host name
38
+ # that starts with a dot (.) matches a suffix of the actual host name.
39
+ # Alternatively, you can write an IP address and netmask in separate
40
+ # columns to specify the set of hosts. Instead of a CIDR-address, you
41
+ # can write "samehost" to match any of the server's own IP addresses,
42
+ # or "samenet" to match any address in any subnet that the server is
43
+ # directly connected to.
44
+ #
45
+ # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
46
+ # "krb5", "ident", "peer", "pam", "ldap", "radius" or "cert". Note that
47
+ # "password" sends passwords in clear text; "md5" is preferred since
48
+ # it sends encrypted passwords.
49
+ #
50
+ # OPTIONS are a set of options for the authentication in the format
51
+ # NAME=VALUE. The available options depend on the different
52
+ # authentication methods -- refer to the "Client Authentication"
53
+ # section in the documentation for a list of which options are
54
+ # available for which authentication methods.
55
+ #
56
+ # Database and user names containing spaces, commas, quotes and other
57
+ # special characters must be quoted. Quoting one of the keywords
58
+ # "all", "sameuser", "samerole" or "replication" makes the name lose
59
+ # its special character, and just match a database or username with
60
+ # that name.
61
+ #
62
+ # This file is read on server startup and when the postmaster receives
63
+ # a SIGHUP signal. If you edit the file on a running system, you have
64
+ # to SIGHUP the postmaster for the changes to take effect. You can
65
+ # use "pg_ctl reload" to do that.
66
+
67
+ # Put your actual configuration here
68
+ # ----------------------------------
69
+ #
70
+ # If you want to allow non-local connections, you need to add more
71
+ # "host" records. In that case you will also need to make PostgreSQL
72
+ # listen on a non-local interface via the listen_addresses
73
+ # configuration parameter, or via the -i or -h command line switches.
74
+
75
+ # DO NOT DISABLE!
76
+ # If you change this first entry you will need to make sure that the
77
+ # database superuser can access the database using some other method.
78
+ # Noninteractive access to all databases is required during automatic
79
+ # maintenance (custom daily cronjobs, replication, and similar tasks).
80
+ #
81
+ # Database administrative login by Unix domain socket
82
+ local all postgres peer
83
+ local all all md5
84
+ host all all 127.0.0.1/32 md5
85
+ host all all ::1/128 md5
86
+
87
+ # Allow replication connections from localhost, by a user with the
88
+ # replication privilege.
89
+ #local replication postgres peer
90
+ #host replication postgres 127.0.0.1/32 md5
91
+ #host replication postgres ::1/128 md5
@@ -0,0 +1,5 @@
1
+ ---
2
+ :sources:
3
+ - http://gems.rubyforge.org
4
+ - http://gems.github.com
5
+ gem: --no-ri --no-rdoc
@@ -0,0 +1,6 @@
1
+ ---
2
+ - name: set gemrc
3
+ copy: src=gemrc dest=/home/{{ deploy_user }}/.gemrc owner={{ deploy_user}} group={{ deploy_user }} mode=0644
4
+
5
+ - name: install bundler
6
+ shell: RBENV_ROOT={{ rbenv_root }} rbenv exec gem install bundler --no-ri --no-rdoc
@@ -0,0 +1,4 @@
1
+ ---
2
+ - include: rbenv.yml
3
+ - include: ruby.yml
4
+ - include: gems.yml
@@ -0,0 +1,31 @@
1
+ ---
2
+ - name: install dependencies
3
+ apt: pkg={{ item }} state=present
4
+ with_items:
5
+ - libqt4-dev
6
+ - libssl-dev
7
+ - libreadline-dev
8
+
9
+ - name: install rbenv
10
+ sudo: true
11
+ git: repo=git://github.com/sstephenson/rbenv.git dest={{ rbenv_root }}
12
+
13
+ - name: install ruby-build as rbenv plugin
14
+ sudo: true
15
+ git: repo=https://github.com/sstephenson/ruby-build.git dest={{ rbenv_root }}/plugins/ruby-build
16
+
17
+ - name: change owner of rbenv directory
18
+ sudo: true
19
+ file: path={{ rbenv_root }} owner={{ deploy_user }} recurse=yes state=directory
20
+
21
+ - name: add rbenv symlink
22
+ file: path=/usr/local/bin/rbenv src={{ rbenv_root }}/bin/rbenv state=link
23
+
24
+ - name: export RBENV_ROOT to profile
25
+ lineinfile: line='export RBENV_ROOT="{{ rbenv_root }}"' dest=/home/{{ deploy_user }}/.profile
26
+
27
+ - name: export PATH to rbenv bin to profile
28
+ lineinfile: line='export PATH="{{ rbenv_root }}/bin:$PATH"' dest=/home/{{ deploy_user }}/.profile
29
+
30
+ - name: eval rbenv init
31
+ lineinfile: line="eval \"$(rbenv init -)\"" dest=/home/{{ deploy_user }}/.profile
@@ -0,0 +1,15 @@
1
+ ---
2
+ - name: check if proper ruby version is installed
3
+ shell: RBENV_ROOT={{ rbenv_root }} rbenv versions | grep {{ ruby_version }}
4
+ register: ruby_installed
5
+ ignore_errors: yes
6
+
7
+ - name: install proper ruby version
8
+ shell: RBENV_ROOT={{ rbenv_root }} rbenv install {{ ruby_version }}
9
+ when: ruby_installed|failed
10
+
11
+ - name: set global ruby
12
+ shell: RBENV_ROOT={{ rbenv_root }} rbenv global {{ ruby_version }}
13
+
14
+ - name: rehash rbenv
15
+ shell: RBENV_ROOT={{ rbenv_root }} rbenv rehash
@@ -0,0 +1,6 @@
1
+ ---
2
+ - name: setup firewall
3
+ shell: ufw allow 22; ufw allow 1224; ufw allow 80; ufw allow 443
4
+
5
+ - name: enable firewall
6
+ shell: echo 'y' | ufw enable
@@ -0,0 +1,9 @@
1
+ ---
2
+ - name: install fail2ban
3
+ apt: name=fail2ban state=present update_cache=true
4
+ when: inventory_hostname == 'production_root'
5
+
6
+ - include: firewall.yml
7
+ when: inventory_hostname == 'production_root'
8
+
9
+ - include: ssh_settings.yml
@@ -0,0 +1,6 @@
1
+ ---
2
+ - name: create deploy user
3
+ user: name={{ deploy_user }} shell=/bin/bash generate_ssh_key=yes ssh_key_bits=2048
4
+
5
+ - name: allow deploy user sudo commands without password
6
+ action: lineinfile dest=/etc/sudoers regexp="^root" line="root ALL=(ALL:ALL) ALL\n{{ deploy_user }} ALL=(ALL) NOPASSWD:ALL" state=present
@@ -0,0 +1,3 @@
1
+ ---
2
+ - name: cd to vagrant directory by default
3
+ lineinfile: line="cd /vagrant" dest=/home/{{ deploy_user }}/.profile state=present
@@ -0,0 +1,5 @@
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 %>
@@ -0,0 +1 @@
1
+ ansible-playbook playbooks/playbook.yml -i hosts
@@ -0,0 +1,6 @@
1
+ ---
2
+ app_name: <%= Rails.application.class.parent_name.underscore %>
3
+ postgresql:
4
+ version: <%= @postgresql_version == '' ? '9.3' : @postgresql_version %>
5
+ ruby_version: <%= @ruby_version == '' ? '2.1.5' : @ruby_version %>
6
+ rbenv_root: /usr/local/rbenv
@@ -0,0 +1,8 @@
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 %>
@@ -0,0 +1,7 @@
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 }}"
@@ -0,0 +1,25 @@
1
+ ---
2
+ - name: add local ssh keys to authorized_keys
3
+ authorized_key: user={{ deploy_user }} key="{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
4
+
5
+ - name: change permissions on authorized_keys
6
+ file: path=/home/{{ deploy_user }}/.ssh/authorized_keys mode=0400
7
+
8
+ - name: change ssh port
9
+ sudo: true
10
+ action: lineinfile dest=/etc/ssh/sshd_config regexp="^#?Port" line="Port <%= @server_ssh_port == '' ? '22' : @server_ssh_port %>"
11
+
12
+ - name: disable root user login via ssh
13
+ sudo: true
14
+ action: lineinfile dest=/etc/ssh/sshd_config regexp="^#?PermitRootLogin" line="PermitRootLogin no"
15
+
16
+ - name: disable password authentication
17
+ sudo: true
18
+ action: lineinfile dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
19
+
20
+ - name: allow deploy user login via ssh
21
+ sudo: true
22
+ action: lineinfile dest=/etc/ssh/sshd_config insertafter=EOF line="AllowUsers {{ deploy_user }}"
23
+
24
+ - name: restart ssh service
25
+ action: service name=ssh state=restarted
@@ -0,0 +1,52 @@
1
+ require 'rails/generators'
2
+ require 'generators/ahoy/base'
3
+
4
+ module Ahoy
5
+ class VagrantGenerator < Ahoy::Generator::Base
6
+
7
+ def use_vagrant
8
+ defaults('No')
9
+ @use_vagrant = yes?('=> Would you like to use Vagrant with your project?')
10
+ end
11
+
12
+ def prompt_user
13
+ if @use_vagrant
14
+ defaults('2')
15
+ @memory = ask('=> How many Megabytes of memory would you like to allocate to your VM? [enter for default]').to_i
16
+ defaults('1')
17
+ @cpus = ask('=> How many CPUs would you like to allocated? [enter for default]').to_i
18
+ copy_templates
19
+ append_ansible_playbook
20
+ else
21
+ puts 'Skipping Vagrant'
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def copy_templates
28
+ template '_Vagrantfile', 'Vagrantfile'
29
+ template '_database.yml', 'config/database.yml'
30
+ template 'ansible_templates/playbooks/host_vars/_default.yml', 'config/ansible/playbooks/host_vars/default.yml'
31
+ end
32
+
33
+ def append_ansible_playbook
34
+ append_file 'config/ansible/playbooks/playbook.yml', VAGRANT_PLAYBOOK
35
+ end
36
+ end
37
+ end
38
+
39
+ VAGRANT_PLAYBOOK = "
40
+ # Vagrant playbook
41
+ #==========================================================
42
+ - hosts: default
43
+ sudo: true
44
+ roles:
45
+ - role: user
46
+ - role: essentials
47
+ - role: nodejs
48
+ - role: postgresql
49
+ - role: ruby
50
+ tasks:
51
+ - include: tasks/vagrant_settings.yml
52
+ "
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails-ahoy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Nathan Pearson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: Generator for building ansible based provisioning scripts, and mina/puma
42
+ deployment scripts
43
+ email:
44
+ - npearson72@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - ".DS_Store"
50
+ - ".gitignore"
51
+ - Gemfile
52
+ - LICENSE.txt
53
+ - README.md
54
+ - Rakefile
55
+ - ahoy.gemspec
56
+ - lib/ahoy.rb
57
+ - lib/ahoy/version.rb
58
+ - lib/generators/ahoy/ansible_generator.rb
59
+ - lib/generators/ahoy/base.rb
60
+ - lib/generators/ahoy/deploy_generator.rb
61
+ - lib/generators/ahoy/init_generator.rb
62
+ - lib/generators/ahoy/templates/_Vagrantfile
63
+ - lib/generators/ahoy/templates/_database.yml
64
+ - lib/generators/ahoy/templates/_deploy.rb
65
+ - lib/generators/ahoy/templates/_env_vars.yml
66
+ - lib/generators/ahoy/templates/_puma.rb
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
72
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/tasks/main.yml
73
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/templates/vimrc
74
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/tasks/main.yml
75
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/templates/platform.conf
76
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/nodejs/tasks/main.yml
77
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/handlers/main.yml
78
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/tasks/main.yml
79
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/templates/pg_hba.conf
80
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/files/gemrc
81
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/gems.yml
82
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/main.yml
83
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml
84
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml
85
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/firewall.yml
86
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/main.yml
87
+ - lib/generators/ahoy/templates/ansible/playbooks/roles/user/tasks/main.yml
88
+ - 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
91
+ - 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
96
+ - lib/generators/ahoy/vagrant_generator.rb
97
+ homepage: ''
98
+ licenses:
99
+ - MIT
100
+ metadata: {}
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ requirements: []
116
+ rubyforge_project:
117
+ rubygems_version: 2.2.2
118
+ signing_key:
119
+ specification_version: 4
120
+ summary: Quick and painless Rails deployment
121
+ test_files: []