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.
- 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
|