flash_kick 0.1.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 (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +4 -0
  4. data/CODE_OF_CONDUCT.md +49 -0
  5. data/Gemfile +5 -0
  6. data/LICENSE.txt +14 -0
  7. data/README.md +114 -0
  8. data/Rakefile +10 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/flash_kick.gemspec +33 -0
  12. data/img/Flash_Kick.gif +0 -0
  13. data/lib/flash_kick/version.rb +3 -0
  14. data/lib/flash_kick.rb +14 -0
  15. data/lib/generators/flash_kick/base.rb +29 -0
  16. data/lib/generators/flash_kick/deployment_generator.rb +121 -0
  17. data/lib/generators/flash_kick/init_generator.rb +42 -0
  18. data/lib/generators/flash_kick/lib/question_helper.rb +50 -0
  19. data/lib/generators/flash_kick/lib/variable_store.rb +23 -0
  20. data/lib/generators/flash_kick/templates/_Vagrantfile +20 -0
  21. data/lib/generators/flash_kick/templates/_database.yml +18 -0
  22. data/lib/generators/flash_kick/templates/_deploy.rb +59 -0
  23. data/lib/generators/flash_kick/templates/_puma.rb +23 -0
  24. data/lib/generators/flash_kick/templates/_puma.sh +78 -0
  25. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/complete/tasks/main.yml +17 -0
  26. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/complete/templates/database.yml +9 -0
  27. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/complete/templates/secrets.yml +2 -0
  28. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/essentials/tasks/main.yml +43 -0
  29. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/essentials/templates/vimrc +470 -0
  30. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/nginx/tasks/main.yml +15 -0
  31. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/nginx/templates/platform.conf +24 -0
  32. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/nodejs/tasks/main.yml +6 -0
  33. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/postgresql/handlers/main.yml +3 -0
  34. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/postgresql/tasks/main.yml +39 -0
  35. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/postgresql/templates/pg_hba.conf +91 -0
  36. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/files/gemrc +5 -0
  37. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/gems.yml +6 -0
  38. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/main.yml +4 -0
  39. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml +32 -0
  40. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml +15 -0
  41. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/fail2ban.yml +4 -0
  42. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/firewall.yml +8 -0
  43. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/main.yml +4 -0
  44. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/ssh_settings.yml +25 -0
  45. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/user/tasks/main.yml +6 -0
  46. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/variables/tasks/application.yml +21 -0
  47. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/variables/tasks/main.yml +3 -0
  48. data/lib/generators/flash_kick/templates/ansible/playbooks/roles/variables/tasks/session.yml +23 -0
  49. data/lib/generators/flash_kick/templates/ansible/playbooks/tasks/vagrant_settings.yml +3 -0
  50. data/lib/generators/flash_kick/templates/ansible/provision.sh +1 -0
  51. data/lib/generators/flash_kick/templates/ansible_templates/_hosts +3 -0
  52. data/lib/generators/flash_kick/templates/ansible_templates/playbooks/_production.yml +21 -0
  53. data/lib/generators/flash_kick/templates/ansible_templates/playbooks/_vagrant.yml +17 -0
  54. data/lib/generators/flash_kick/templates/ansible_templates/playbooks/group_vars/_all.yml +4 -0
  55. data/lib/generators/flash_kick/templates/env_templates/_development_env.yml +1 -0
  56. data/lib/generators/flash_kick/templates/env_templates/_production_env.yml +13 -0
  57. data/lib/generators/flash_kick/templates/env_templates/_test_env.yml +1 -0
  58. data/lib/generators/flash_kick/vagrant_generator.rb +56 -0
  59. metadata +145 -0
@@ -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 == '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/{{server_user}}/.gemrc owner={{server_user}} group={{server_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,32 @@
1
+ ---
2
+ - name: install dependencies
3
+ apt: pkg={{item}} state=present
4
+ with_items:
5
+ - libqt4-dev
6
+ - libssl-dev
7
+ - libreadline-dev
8
+ - libffi-dev
9
+
10
+ - name: install rbenv
11
+ sudo: true
12
+ git: repo=https://github.com/sstephenson/rbenv.git dest={{rbenv_root}}
13
+
14
+ - name: install ruby-build as rbenv plugin
15
+ sudo: true
16
+ git: repo=https://github.com/sstephenson/ruby-build.git dest={{rbenv_root}}/plugins/ruby-build
17
+
18
+ - name: change owner of rbenv directory
19
+ sudo: true
20
+ file: path={{rbenv_root}} owner={{server_user}} recurse=yes state=directory
21
+
22
+ - name: add rbenv symlink
23
+ file: path=/usr/local/bin/rbenv src={{rbenv_root}}/bin/rbenv state=link
24
+
25
+ - name: export RBENV_ROOT to profile
26
+ lineinfile: line='export RBENV_ROOT="{{rbenv_root}}"' dest=/home/{{server_user}}/.profile
27
+
28
+ - name: export PATH to rbenv bin to profile
29
+ lineinfile: line='export PATH="{{rbenv_root}}/bin:$PATH"' dest=/home/{{server_user}}/.profile
30
+
31
+ - name: eval rbenv init
32
+ lineinfile: line="eval \"$(rbenv init -)\"" dest=/home/{{server_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,4 @@
1
+ ---
2
+ - name: install fail2ban
3
+ apt: name=fail2ban state=present update_cache=true
4
+ when: inventory_hostname == 'root'
@@ -0,0 +1,8 @@
1
+ ---
2
+ - name: setup firewall
3
+ shell: ufw allow 22; ufw allow 1224; ufw allow 80; ufw allow 443
4
+ when: inventory_hostname == 'root'
5
+
6
+ - name: enable firewall
7
+ shell: echo 'y' | ufw enable
8
+ when: inventory_hostname == 'root'
@@ -0,0 +1,4 @@
1
+ ---
2
+ - include: fail2ban.yml
3
+ - include: firewall.yml
4
+ - include: ssh_settings.yml
@@ -0,0 +1,25 @@
1
+ ---
2
+ - name: add local ssh keys to authorized_keys
3
+ authorized_key: user={{server_user}} key="{{lookup('file', '~/.ssh/id_rsa.pub')}}"
4
+
5
+ - name: change permissions on authorized_keys
6
+ file: path=/home/{{server_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}}"
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 {{server_user}}"
23
+
24
+ - name: restart ssh service
25
+ action: service name=ssh state=restarted
@@ -0,0 +1,6 @@
1
+ ---
2
+ - name: create server user
3
+ user: name={{server_user}} shell=/bin/bash generate_ssh_key=yes ssh_key_bits=2048
4
+
5
+ - name: allow server user sudo commands without password
6
+ action: lineinfile dest=/etc/sudoers regexp="^root" line="root ALL=(ALL:ALL) ALL\n{{server_user}} ALL=(ALL) NOPASSWD:ALL" state=present
@@ -0,0 +1,21 @@
1
+ ---
2
+ - name: check if .env exists
3
+ stat: path={{app_root}}/shared/.env/{{rails_env}}_env.yml
4
+ register: env_file
5
+
6
+ - name: delete .env if exists
7
+ shell: rm {{app_root}}/shared/.env/{{rails_env}}_env.yml
8
+ when: env_file.stat.exists == true
9
+
10
+ - name: add environment variables to .env
11
+ lineinfile:
12
+ dest={{app_root}}/shared/.env/{{rails_env}}_env.yml
13
+ line='{{item}}'
14
+ owner={{server_user}}
15
+ insertafter=EOF
16
+ create=true
17
+ with_items:
18
+ - 'database_name: {{database_name}}'
19
+ - 'database_user: {{database_user}}'
20
+ - 'database_password: {{database_password}}'
21
+ - 'secret_key_base: {{secret_key_base}}'
@@ -0,0 +1,3 @@
1
+ ---
2
+ - include: session.yml
3
+ - include: application.yml
@@ -0,0 +1,23 @@
1
+ ---
2
+ - name: check if .session_vars exists
3
+ stat: path=/home/{{server_user}}/.session_vars
4
+ register: session_vars
5
+
6
+ - name: delete .session_vars if exists
7
+ shell: rm /home/{{server_user}}/.session_vars
8
+ when: session_vars.stat.exists == true
9
+
10
+ - name: add environment variables to .session_vars
11
+ lineinfile:
12
+ dest=/home/{{server_user}}/.session_vars
13
+ line='{{item}}'
14
+ owner={{server_user}}
15
+ insertafter=EOF
16
+ create=true
17
+ with_items:
18
+ - 'export APP_NAME={{app_name}}'
19
+ - 'export APP_ROOT={{app_root}}'
20
+ - 'export RAILS_ENV={{rails_env}}'
21
+
22
+ - name: source .session_vars from .bashrc
23
+ lineinfile: dest=/home/{{server_user}}/.bashrc insertafter=EOF line='source ~/.session_vars'
@@ -0,0 +1,3 @@
1
+ ---
2
+ - name: cd to vagrant directory by default
3
+ lineinfile: line="cd /vagrant" dest=/home/vagrant/.profile state=present
@@ -0,0 +1 @@
1
+ ansible-playbook playbooks/$1.yml -i hosts
@@ -0,0 +1,3 @@
1
+ [production]
2
+ root ansible_ssh_host=<%= FlashKick::VariableStore.variables['server_domain'] == '' ? '127.0.0.1' : FlashKick::VariableStore.variables['server_domain'] %>
3
+ deploy ansible_ssh_host=<%= FlashKick::VariableStore.variables['server_domain'] == '' ? '127.0.0.1' : FlashKick::VariableStore.variables['server_domain'] %> ansible_ssh_port=<%= FlashKick::VariableStore.variables['server_ssh_port'] == '' ? '22' : FlashKick::VariableStore.variables['server_ssh_port'] %>
@@ -0,0 +1,21 @@
1
+ ---
2
+ # Production playbook
3
+ #==========================================================
4
+ - hosts: root
5
+ sudo: true
6
+ user: root
7
+ roles:
8
+ - role: user
9
+ - role: security
10
+
11
+ - hosts: deploy
12
+ sudo: true
13
+ user: <%= FlashKick::VariableStore.variables['server_user'] %>
14
+ roles:
15
+ - role: essentials
16
+ - role: nodejs
17
+ - role: nginx
18
+ - role: postgresql
19
+ - role: ruby
20
+ - role: variables
21
+ - role: complete
@@ -0,0 +1,17 @@
1
+ ---
2
+ # Vagrant playbook
3
+ #==========================================================
4
+ - hosts: default
5
+ sudo: true
6
+ vars:
7
+ - server_user: vagrant
8
+ - database_user: vagrant
9
+ - database_password: vagrant
10
+ roles:
11
+ - role: user
12
+ - role: essentials
13
+ - role: nodejs
14
+ - role: postgresql
15
+ - role: ruby
16
+ tasks:
17
+ - include: tasks/vagrant_settings.yml
@@ -0,0 +1,4 @@
1
+ ---
2
+ postgresql_version: <%= FlashKick::VariableStore.variables['postgresql_version'] %>
3
+ ruby_version: <%= FlashKick::VariableStore.variables['ruby_version'] %>
4
+ rbenv_root: /usr/local/rbenv
@@ -0,0 +1,13 @@
1
+ ---
2
+ server_user: <%= FlashKick::VariableStore.variables['server_user'] %>
3
+ server_domain: <%= FlashKick::VariableStore.variables['server_domain'] %>
4
+ server_ssh_port: <%= FlashKick::VariableStore.variables['server_ssh_port'] %>
5
+ rails_env: production
6
+ app_name: <%= FlashKick::VariableStore.variables['app_name'] %>
7
+ app_root: /var/www/<%= FlashKick::VariableStore.variables['app_name'] %>
8
+ database_name: <%= FlashKick::VariableStore.variables['database_name'] %>
9
+ database_user: <%= FlashKick::VariableStore.variables['database_user'] %>
10
+ database_password: <%= FlashKick::VariableStore.variables['database_password'] %>
11
+ app_repo: <%= FlashKick::VariableStore.variables['app_repo'] %>
12
+ app_repo_branch: <%= FlashKick::VariableStore.variables['app_repo_branch'] %>
13
+ secret_key_base:
@@ -0,0 +1,56 @@
1
+ require 'rails/generators'
2
+ require 'generators/flash_kick/base'
3
+ require 'generators/flash_kick/lib/question_helper'
4
+ require 'generators/flash_kick/lib/variable_store'
5
+ require 'fileutils'
6
+
7
+ module FlashKick
8
+ class VagrantGenerator < FlashKick::Generator::Base
9
+
10
+ def use_vagrant
11
+ question :boolean do
12
+ {
13
+ use_vagrant: 'Would you like to use Vagrant with your project?',
14
+ default: 'No'
15
+ }
16
+ end
17
+ end
18
+
19
+ def prompt_user
20
+ if FlashKick::VariableStore.variables['use_vagrant'] == true
21
+ question :string do
22
+ {
23
+ vagrant_memory: 'How many Megabytes of memory would you like to allocate to your VM? [enter for default]',
24
+ default: '2'
25
+ }
26
+ end
27
+ question :string do
28
+ {
29
+ vagrant_cpus: 'How many CPUs would you like to allocated? [enter for default]',
30
+ default: '1'
31
+ }
32
+ end
33
+ else
34
+ puts 'Skipping Vagrant'
35
+ exit
36
+ end
37
+ end
38
+
39
+ def copy_files
40
+ copy_file 'ansible_templates/playbooks/_vagrant.yml', 'config/ansible/playbooks/vagrant.yml'
41
+ end
42
+
43
+ def modify_files
44
+ append_file '.gitignore', "\n.vagrant/"
45
+ end
46
+
47
+ def backup_files
48
+ FileUtils.mv 'config/database.yml', 'config/database.yml.bak'
49
+ end
50
+
51
+ def copy_templates
52
+ template '_database.yml', 'config/database.yml'
53
+ template '_Vagrantfile', 'Vagrantfile'
54
+ end
55
+ end
56
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flash_kick
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Helio Oliveira
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-02-13 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.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
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
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ description: Generator for building ansible based provisioning scripts, and mina/puma
56
+ deployment scripts
57
+ email:
58
+ - hheelliioo@live.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".travis.yml"
65
+ - CODE_OF_CONDUCT.md
66
+ - Gemfile
67
+ - LICENSE.txt
68
+ - README.md
69
+ - Rakefile
70
+ - bin/console
71
+ - bin/setup
72
+ - flash_kick.gemspec
73
+ - img/Flash_Kick.gif
74
+ - lib/flash_kick.rb
75
+ - lib/flash_kick/version.rb
76
+ - lib/generators/flash_kick/base.rb
77
+ - lib/generators/flash_kick/deployment_generator.rb
78
+ - lib/generators/flash_kick/init_generator.rb
79
+ - lib/generators/flash_kick/lib/question_helper.rb
80
+ - lib/generators/flash_kick/lib/variable_store.rb
81
+ - lib/generators/flash_kick/templates/_Vagrantfile
82
+ - lib/generators/flash_kick/templates/_database.yml
83
+ - lib/generators/flash_kick/templates/_deploy.rb
84
+ - lib/generators/flash_kick/templates/_puma.rb
85
+ - lib/generators/flash_kick/templates/_puma.sh
86
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/complete/tasks/main.yml
87
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/complete/templates/database.yml
88
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/complete/templates/secrets.yml
89
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/essentials/tasks/main.yml
90
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/essentials/templates/vimrc
91
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/nginx/tasks/main.yml
92
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/nginx/templates/platform.conf
93
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/nodejs/tasks/main.yml
94
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/postgresql/handlers/main.yml
95
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/postgresql/tasks/main.yml
96
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/postgresql/templates/pg_hba.conf
97
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/files/gemrc
98
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/gems.yml
99
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/main.yml
100
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml
101
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml
102
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/fail2ban.yml
103
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/firewall.yml
104
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/main.yml
105
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/security/tasks/ssh_settings.yml
106
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/user/tasks/main.yml
107
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/variables/tasks/application.yml
108
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/variables/tasks/main.yml
109
+ - lib/generators/flash_kick/templates/ansible/playbooks/roles/variables/tasks/session.yml
110
+ - lib/generators/flash_kick/templates/ansible/playbooks/tasks/vagrant_settings.yml
111
+ - lib/generators/flash_kick/templates/ansible/provision.sh
112
+ - lib/generators/flash_kick/templates/ansible_templates/_hosts
113
+ - lib/generators/flash_kick/templates/ansible_templates/playbooks/_production.yml
114
+ - lib/generators/flash_kick/templates/ansible_templates/playbooks/_vagrant.yml
115
+ - lib/generators/flash_kick/templates/ansible_templates/playbooks/group_vars/_all.yml
116
+ - lib/generators/flash_kick/templates/env_templates/_development_env.yml
117
+ - lib/generators/flash_kick/templates/env_templates/_production_env.yml
118
+ - lib/generators/flash_kick/templates/env_templates/_test_env.yml
119
+ - lib/generators/flash_kick/vagrant_generator.rb
120
+ homepage: https://github.com/heliohead/flash_kick
121
+ licenses:
122
+ - wtfpl
123
+ metadata:
124
+ allowed_push_host: https://rubygems.org
125
+ post_install_message:
126
+ rdoc_options: []
127
+ require_paths:
128
+ - lib
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ requirements: []
140
+ rubyforge_project:
141
+ rubygems_version: 2.5.1
142
+ signing_key:
143
+ specification_version: 4
144
+ summary: Quick and painless Rails deployment
145
+ test_files: []