rails-ahoy 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/ahoy.gemspec +1 -0
- data/lib/ahoy.rb +4 -1
- data/lib/ahoy/version.rb +1 -1
- data/lib/generators/ahoy/base.rb +8 -3
- data/lib/generators/ahoy/deployment_generator.rb +122 -0
- data/lib/generators/ahoy/init_generator.rb +10 -15
- data/lib/generators/ahoy/lib/question_helper.rb +50 -0
- data/lib/generators/ahoy/lib/variable_store.rb +19 -0
- data/lib/generators/ahoy/templates/_Vagrantfile +3 -3
- data/lib/generators/ahoy/templates/_database.yml +2 -2
- data/lib/generators/ahoy/templates/_deploy.rb +14 -13
- data/lib/generators/ahoy/templates/_puma.rb +3 -4
- data/lib/generators/ahoy/templates/_puma.sh +1 -1
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/complete/tasks/main.yml +14 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/complete/templates/database.yml +9 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/complete/templates/secrets.yml +2 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/tasks/main.yml +6 -6
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/templates/vimrc +0 -2
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/templates/platform.conf +6 -6
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/tasks/main.yml +8 -8
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/gems.yml +2 -2
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml +8 -8
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml +4 -4
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/fail2ban.yml +4 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/firewall.yml +2 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/main.yml +1 -6
- data/lib/generators/ahoy/templates/{ansible_templates/playbooks/roles/security/tasks/_ssh_settings.yml → ansible/playbooks/roles/security/tasks/ssh_settings.yml} +4 -4
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/user/tasks/main.yml +4 -4
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/application.yml +21 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/main.yml +3 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/tasks/system.yml +25 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/variables/templates/profile +22 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/tasks/vagrant_settings.yml +1 -1
- data/lib/generators/ahoy/templates/ansible/production.sh +1 -0
- data/lib/generators/ahoy/templates/ansible_templates/_production +5 -0
- data/lib/generators/ahoy/templates/{ansible/playbooks/playbook.yml → ansible_templates/playbooks/_production.yml} +6 -7
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/_vagrant.yml +17 -0
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_all.yml +2 -4
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_production.yml +11 -0
- data/lib/generators/ahoy/templates/env_templates/_development_env.yml +1 -0
- data/lib/generators/ahoy/templates/env_templates/_production_env.yml +12 -0
- data/lib/generators/ahoy/templates/env_templates/_test_env.yml +1 -0
- data/lib/generators/ahoy/vagrant_generator.rb +31 -31
- metadata +22 -15
- data/lib/generators/ahoy/ansible_generator.rb +0 -36
- data/lib/generators/ahoy/deploy_generator.rb +0 -47
- data/lib/generators/ahoy/templates/_env_vars.yml +0 -7
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/tasks/main.yml +0 -10
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/database.yml +0 -9
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/secrets.yml +0 -2
- data/lib/generators/ahoy/templates/ansible_templates/_hosts +0 -5
- data/lib/generators/ahoy/templates/ansible_templates/_provision.sh +0 -1
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_default.yml +0 -8
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_deploy.yml +0 -7
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_root.yml +0 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 545d24c53a83117a7f92ce5c4a9a65d143b1e1a2
|
|
4
|
+
data.tar.gz: 207298f354c4f5cce697dab1ed2f036359811776
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5ec65beb65811148ed2ecd304c42c2bb1fbe0ec2c94dcf1a42fdf88fb703c826e3c4af0af19438fe45383eda1598016b0e0d9dfc543f287c1f3da8a40b66fcfc
|
|
7
|
+
data.tar.gz: 4a0dc4ee707356d7f16312958a08c027db0d50438f32a5457b40ef272dbd2c36f5e5fdec8bcd7ea9234ee3a1de8e5f3f06cee04f22cad7e121866463d292c52d
|
data/ahoy.gemspec
CHANGED
data/lib/ahoy.rb
CHANGED
data/lib/ahoy/version.rb
CHANGED
data/lib/generators/ahoy/base.rb
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
require 'generators/ahoy/base'
|
|
2
|
+
|
|
1
3
|
module Ahoy
|
|
2
4
|
module Initialize
|
|
3
5
|
def root
|
|
4
6
|
File.dirname(__FILE__)
|
|
5
7
|
end
|
|
8
|
+
|
|
9
|
+
def temp_dir
|
|
10
|
+
File.join(File.dirname(__FILE__), 'tmp/')
|
|
11
|
+
end
|
|
6
12
|
end
|
|
7
13
|
|
|
8
14
|
module Generator
|
|
@@ -15,9 +21,8 @@ module Ahoy
|
|
|
15
21
|
|
|
16
22
|
private
|
|
17
23
|
|
|
18
|
-
def
|
|
19
|
-
|
|
20
|
-
puts "Default: #{value}"
|
|
24
|
+
def question(type, &block)
|
|
25
|
+
Ahoy::QuestionHelper.question(type, &block)
|
|
21
26
|
end
|
|
22
27
|
end
|
|
23
28
|
end
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
require 'rails/generators'
|
|
2
|
+
require 'generators/ahoy/base'
|
|
3
|
+
require 'generators/ahoy/lib/question_helper'
|
|
4
|
+
require 'generators/ahoy/lib/variable_store'
|
|
5
|
+
require 'fileutils'
|
|
6
|
+
|
|
7
|
+
module Ahoy
|
|
8
|
+
class DeploymentGenerator < Ahoy::Generator::Base
|
|
9
|
+
|
|
10
|
+
def prompt_user
|
|
11
|
+
question :string do
|
|
12
|
+
{
|
|
13
|
+
app_name: 'What is the name of your application? [enter for default]',
|
|
14
|
+
default: Rails.application.class.parent_name.underscore
|
|
15
|
+
}
|
|
16
|
+
end
|
|
17
|
+
question :string do
|
|
18
|
+
{
|
|
19
|
+
server_domain: 'Which domain will you be deploying to? [enter for default]',
|
|
20
|
+
required: true
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
question :string do
|
|
24
|
+
{
|
|
25
|
+
server_user: 'Enter a name for your server user',
|
|
26
|
+
required: true
|
|
27
|
+
}
|
|
28
|
+
end
|
|
29
|
+
question :string do
|
|
30
|
+
{
|
|
31
|
+
server_ssh_port: 'What SSH port would you like to use on your server? [enter for default]',
|
|
32
|
+
default: '22'
|
|
33
|
+
}
|
|
34
|
+
end
|
|
35
|
+
question :string do
|
|
36
|
+
{
|
|
37
|
+
ruby_version: 'Which version of Ruby would you like to install? [enter for default]',
|
|
38
|
+
default: '2.1.5'
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
question :string do
|
|
42
|
+
{
|
|
43
|
+
postgresql_version: 'Which version of PostgreSQL would you like to install? [enter for default]',
|
|
44
|
+
default: '9.3'
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
question :string do
|
|
48
|
+
{
|
|
49
|
+
database_name: 'Enter a name for your production database',
|
|
50
|
+
default: Rails.application.class.parent_name.underscore + '_production'
|
|
51
|
+
}
|
|
52
|
+
end
|
|
53
|
+
question :string do
|
|
54
|
+
{
|
|
55
|
+
database_user: 'Enter a name for your production database user',
|
|
56
|
+
required: true
|
|
57
|
+
}
|
|
58
|
+
end
|
|
59
|
+
question :string do
|
|
60
|
+
{
|
|
61
|
+
database_password: 'Enter a password for your production database',
|
|
62
|
+
required: true
|
|
63
|
+
}
|
|
64
|
+
end
|
|
65
|
+
question :string do
|
|
66
|
+
{
|
|
67
|
+
app_repo: 'What is the github repository for this application?',
|
|
68
|
+
required: true
|
|
69
|
+
}
|
|
70
|
+
end
|
|
71
|
+
question :string do
|
|
72
|
+
{
|
|
73
|
+
app_repo_branch: 'Which repository branch will be used for deployment? [enter for default]',
|
|
74
|
+
default: 'master'
|
|
75
|
+
}
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def copy_directory
|
|
80
|
+
directory 'ansible', 'config/ansible'
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def copy_files
|
|
84
|
+
copy_file '_puma.sh', 'bin/puma.sh'
|
|
85
|
+
copy_file 'env_templates/_development_env.yml', '.env/development_env.yml'
|
|
86
|
+
copy_file 'env_templates/_test_env.yml', '.env/test_env.yml'
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def copy_templates
|
|
90
|
+
template 'ansible_templates/_production', 'config/ansible/production'
|
|
91
|
+
template 'ansible_templates/playbooks/_production.yml', 'config/ansible/playbooks/production.yml'
|
|
92
|
+
template 'ansible_templates/playbooks/group_vars/_all.yml', 'config/ansible/playbooks/group_vars/all.yml'
|
|
93
|
+
template '_puma.rb', 'config/puma.rb'
|
|
94
|
+
template '_deploy.rb', 'config/deploy.rb'
|
|
95
|
+
template 'env_templates/_production_env.yml', '.env/production_env.yml'
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def add_gems
|
|
99
|
+
gem_group :production do
|
|
100
|
+
gem 'puma'
|
|
101
|
+
gem 'rb-readline'
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def modify_files
|
|
106
|
+
append_file '.gitignore', '.env/'
|
|
107
|
+
inject_into_file 'config/environment.rb', after: "require File.expand_path('../application', __FILE__)\n\n" do <<-'RUBY'
|
|
108
|
+
Ahoy.env
|
|
109
|
+
RUBY
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def change_permissions
|
|
114
|
+
FileUtils.chmod 0751, 'config/ansible/production.sh'
|
|
115
|
+
FileUtils.chmod 0751, 'bin/puma.sh'
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def create_symlinks
|
|
119
|
+
FileUtils.ln_s '../../../../.env/production_env.yml', 'config/ansible/playbooks/group_vars/production.yml'
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
@@ -1,34 +1,29 @@
|
|
|
1
1
|
require 'ahoy/version'
|
|
2
2
|
require 'rails/generators'
|
|
3
3
|
require 'generators/ahoy/base'
|
|
4
|
+
require 'generators/ahoy/lib/variable_store'
|
|
4
5
|
|
|
5
6
|
module Ahoy
|
|
6
7
|
class InitGenerator < Ahoy::Generator::Base
|
|
7
8
|
|
|
8
9
|
def init
|
|
9
|
-
|
|
10
|
+
section_divider
|
|
10
11
|
masthead
|
|
11
|
-
|
|
12
|
-
generate 'ahoy:
|
|
13
|
-
|
|
12
|
+
section_divider
|
|
13
|
+
generate 'ahoy:deployment'
|
|
14
|
+
section_divider
|
|
14
15
|
generate 'ahoy:vagrant'
|
|
15
|
-
|
|
16
|
-
generate 'ahoy:deploy'
|
|
17
|
-
divider
|
|
16
|
+
section_divider
|
|
18
17
|
puts 'Finalizing...'
|
|
19
|
-
|
|
20
|
-
divider
|
|
18
|
+
section_divider
|
|
21
19
|
puts 'Finished!'
|
|
20
|
+
Ahoy::VariableStore.clear!
|
|
22
21
|
end
|
|
23
22
|
|
|
24
|
-
private
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
template '_env_vars.yml', 'config/env_vars.yml'
|
|
28
|
-
append_file '.gitignore', 'config/env_vars.yml'
|
|
29
|
-
end
|
|
24
|
+
private
|
|
30
25
|
|
|
31
|
-
def
|
|
26
|
+
def section_divider
|
|
32
27
|
puts '=' * 100
|
|
33
28
|
end
|
|
34
29
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'generators/ahoy/lib/variable_store'
|
|
2
|
+
require 'thor'
|
|
3
|
+
|
|
4
|
+
module Ahoy
|
|
5
|
+
class QuestionHelper
|
|
6
|
+
|
|
7
|
+
cattr_accessor :required
|
|
8
|
+
|
|
9
|
+
def self.question(type, &block)
|
|
10
|
+
question_hash = block.call
|
|
11
|
+
@@required = question_hash[:required]
|
|
12
|
+
default = question_hash[:default]
|
|
13
|
+
key = question_hash.keys[0]
|
|
14
|
+
question = "#{question_hash[key]}:"
|
|
15
|
+
|
|
16
|
+
question_divider(default)
|
|
17
|
+
|
|
18
|
+
case type
|
|
19
|
+
when :string
|
|
20
|
+
string_question(question, key, default)
|
|
21
|
+
when :boolean
|
|
22
|
+
boolean_question(question, key, default)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.string_question(question, key, default=nil)
|
|
27
|
+
if @@required == true
|
|
28
|
+
answer = ''
|
|
29
|
+
until answer != ''
|
|
30
|
+
answer = Thor.new.ask(question)
|
|
31
|
+
Ahoy::VariableStore.add_variable(key, answer.empty? ? default : answer)
|
|
32
|
+
puts "Answer required, but you can always change it later!!!\n\n" if answer == ''
|
|
33
|
+
end
|
|
34
|
+
else
|
|
35
|
+
answer = Thor.new.ask(question)
|
|
36
|
+
Ahoy::VariableStore.add_variable(key, answer.empty? ? default : answer)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.boolean_question(question, key, default=nil)
|
|
41
|
+
answer = Thor.new.yes?(question)
|
|
42
|
+
Ahoy::VariableStore.add_variable(key, answer == true ? answer : false)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def self.question_divider(value=nil)
|
|
46
|
+
puts '-' * 100
|
|
47
|
+
puts "Default: #{value}" unless value.nil?
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'generators/ahoy/base'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
require 'yaml'
|
|
4
|
+
|
|
5
|
+
module Ahoy
|
|
6
|
+
class VariableStore
|
|
7
|
+
def self.add_variable(key, value)
|
|
8
|
+
File.open(Ahoy::Generator.temp_dir + "variables.yml", 'a') {|f| f.write("#{key}: #{value}\n") }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.variables
|
|
12
|
+
YAML.load(File.open(Ahoy::Generator.temp_dir + "variables.yml", 'r'))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.clear!
|
|
16
|
+
FileUtils.rm(Ahoy::Generator.temp_dir + "variables.yml")
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -9,12 +9,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|
|
9
9
|
config.vm.network :forwarded_port, guest: 3000, host: 3000
|
|
10
10
|
|
|
11
11
|
config.vm.provider 'virtualbox' do |v|
|
|
12
|
-
v.memory = <%=
|
|
13
|
-
v.cpus = <%=
|
|
12
|
+
v.memory = <%= Ahoy::VariableStore.variables['vagrant_memory'].to_i * 1024 %>
|
|
13
|
+
v.cpus = <%= Ahoy::VariableStore.variables['vagrant_cpus'].to_i %>
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
config.vm.provision 'ansible' do |ansible|
|
|
17
|
-
ansible.playbook = 'config/ansible/playbooks/
|
|
17
|
+
ansible.playbook = 'config/ansible/playbooks/vagrant.yml'
|
|
18
18
|
ansible.limit = 'default'
|
|
19
19
|
end
|
|
20
20
|
end
|
|
@@ -11,8 +11,8 @@ default: &default
|
|
|
11
11
|
|
|
12
12
|
development:
|
|
13
13
|
<<: *default
|
|
14
|
-
database: <%=
|
|
14
|
+
database: <%= Ahoy::VariableStore.variables['app_name'] %>_development
|
|
15
15
|
|
|
16
16
|
test:
|
|
17
17
|
<<: *default
|
|
18
|
-
database: <%=
|
|
18
|
+
database: <%= Ahoy::VariableStore.variables['app_name'] %>_test
|
|
@@ -3,18 +3,20 @@ require 'mina/rails'
|
|
|
3
3
|
require 'mina/git'
|
|
4
4
|
require 'mina/rbenv'
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
set :
|
|
8
|
-
set :
|
|
9
|
-
set :
|
|
10
|
-
set :
|
|
11
|
-
set :
|
|
6
|
+
task :setup_variables => :environment do
|
|
7
|
+
set :user, '<%= Ahoy::VariableStore.variables['server_user'] %>'
|
|
8
|
+
set :domain, '<%= Ahoy::VariableStore.variables['server_domain'] %>'
|
|
9
|
+
set :port, '<%= Ahoy::VariableStore.variables['server_ssh_port'] %>'
|
|
10
|
+
set :repository, '<%= Ahoy::VariableStore.variables['app_repo'] %>'
|
|
11
|
+
set :branch, '<%= Ahoy::VariableStore.variables['app_repo_branch'] %>'
|
|
12
|
+
set :forward_agent, true
|
|
13
|
+
set :deploy_to, '/var/www/<%= Ahoy::VariableStore.variables['app_name'] %>'
|
|
14
|
+
set :app_path, '/var/www/<%= Ahoy::VariableStore.variables['app_name'] %>/current'
|
|
15
|
+
set :shared_paths, ['config/database.yml', 'config/secrets.yml', 'log', 'tmp', '.env/production_env.yml']
|
|
16
|
+
end
|
|
12
17
|
|
|
13
18
|
task :production do
|
|
14
|
-
|
|
15
|
-
set :domain, "<%= @server_ip == '' ? '127.0.0.1' : @server_ip %>"
|
|
16
|
-
set :port, <%= @server_ssh_port == '' ? '22' : @server_ssh_port %>
|
|
17
|
-
set :stage, 'production'
|
|
19
|
+
invoke :setup_variables
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
task :environment do
|
|
@@ -35,7 +37,6 @@ task :deploy => :environment do
|
|
|
35
37
|
invoke :'rails:db_migrate'
|
|
36
38
|
invoke :'rails:assets_precompile'
|
|
37
39
|
invoke :'deploy:cleanup'
|
|
38
|
-
|
|
39
40
|
to :launch do
|
|
40
41
|
invoke :'server:restart'
|
|
41
42
|
end
|
|
@@ -44,8 +45,8 @@ end
|
|
|
44
45
|
|
|
45
46
|
namespace :server do
|
|
46
47
|
[:start, :stop, :restart].each do |action|
|
|
47
|
-
task action do
|
|
48
|
-
queue "cd #{app_path} && RAILS_ENV=#{
|
|
48
|
+
task action => :environment do
|
|
49
|
+
queue "cd #{app_path} && RAILS_ENV=#{settings[:rails_env]} && bin/puma.sh #{action}"
|
|
49
50
|
end
|
|
50
51
|
end
|
|
51
52
|
end
|
|
@@ -8,11 +8,10 @@ port ENV['PORT'] || 3000
|
|
|
8
8
|
environment ENV['RACK_ENV'] || 'production'
|
|
9
9
|
|
|
10
10
|
daemonize true
|
|
11
|
+
pidfile "/var/www/<%= Ahoy::VariableStore.variables['app_name'] %>/shared/tmp/pids/puma.pid"
|
|
12
|
+
stdout_redirect "/var/www/<%= Ahoy::VariableStore.variables['app_name'] %>/shared/tmp/log/stdout", "/var/www/<%= Ahoy::VariableStore.variables['app_name'] %>/shared/tmp/log/stderr"
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
stdout_redirect "/var/www/<%= Rails.application.class.parent_name.underscore %>/shared/tmp/log/stdout", "/var/www/<%= Rails.application.class.parent_name.underscore %>/shared/tmp/log/stderr"
|
|
14
|
-
|
|
15
|
-
bind "unix:///var/www/<%= Rails.application.class.parent_name.underscore %>/shared/tmp/sockets/puma.sock"
|
|
14
|
+
bind "unix:///var/www/<%= Ahoy::VariableStore.variables['app_name'] %>/shared/tmp/sockets/puma.sock"
|
|
16
15
|
|
|
17
16
|
on_worker_boot do
|
|
18
17
|
# worker specific setup
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#! /bin/sh
|
|
2
2
|
|
|
3
3
|
BUNDLE_BIN=/usr/local/rbenv/shims/bundle
|
|
4
|
-
APP_PATH=/var/www
|
|
4
|
+
APP_PATH=/var/www/$APP_ROOT
|
|
5
5
|
PUMA_CONFIG_FILE=$APP_PATH/current/config/puma.rb
|
|
6
6
|
PUMA_PID_FILE=$APP_PATH/shared/tmp/pids/puma.pid
|
|
7
7
|
PUMA_SOCKET=$APP_PATH/shared/tmp/sockets/puma.sock
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
- name: create config directory
|
|
3
|
+
sudo: true
|
|
4
|
+
file: path=/var/www/{{app_root}}/shared/config owner={{server_user}} group={{server_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={{server_user}} group={{server_user}}
|
|
8
|
+
|
|
9
|
+
- name: copy secrets.yml
|
|
10
|
+
template: src=secrets.yml dest=/var/www/{{app_name}}/shared/config/secrets.yml owner={{server_user}} group={{server_user}}
|
|
11
|
+
|
|
12
|
+
- name: update www directory permissions
|
|
13
|
+
sudo: true
|
|
14
|
+
file: path=/var/www owner={{server_user}} group={{server_user}} recurse=yes state=directory
|
|
@@ -19,25 +19,25 @@
|
|
|
19
19
|
apt: name=vim state=latest update_cache=yes
|
|
20
20
|
|
|
21
21
|
- name: copy .vimrc
|
|
22
|
-
template: src=vimrc dest=/home/{{
|
|
22
|
+
template: src=vimrc dest=/home/{{server_user}}/.vimrc owner={{server_user}} group={{server_user}}
|
|
23
23
|
|
|
24
24
|
- name: check if NeoBundle exists
|
|
25
|
-
shell: test -d /home/{{
|
|
25
|
+
shell: test -d /home/{{server_user}}/.vim/bundle/.neobundle && echo true
|
|
26
26
|
register: neobundle_installed
|
|
27
27
|
ignore_errors: yes
|
|
28
28
|
|
|
29
29
|
- name: download NeoBundle plugin for vim
|
|
30
|
-
git: repo=git://github.com/Shougo/neobundle.vim dest=/home/{{
|
|
30
|
+
git: repo=git://github.com/Shougo/neobundle.vim dest=/home/{{server_user}}/.vim/bundle/neobundle.vim
|
|
31
31
|
when: neobundle_installed|failed
|
|
32
32
|
|
|
33
33
|
- name: check if YouCompleteMe exists
|
|
34
|
-
shell: test -d /home/{{
|
|
34
|
+
shell: test -d /home/{{server_user}}/.vim/bundle/YouCompleteMe && echo true
|
|
35
35
|
register: ycm_installed
|
|
36
36
|
ignore_errors: yes
|
|
37
37
|
|
|
38
38
|
- name: download YouCompleteMe plugin for vim
|
|
39
|
-
git: repo=git://github.com/Valloric/YouCompleteMe dest=/home/{{
|
|
39
|
+
git: repo=git://github.com/Valloric/YouCompleteMe dest=/home/{{server_user}}/.vim/bundle/YouCompleteMe
|
|
40
40
|
when: ycm_installed|failed
|
|
41
41
|
|
|
42
42
|
- name: change .vim permissions
|
|
43
|
-
file: path=/home/{{
|
|
43
|
+
file: path=/home/{{server_user}}/.vim owner={{server_user}} group={{server_user}} recurse=yes state=directory
|