badger-rails 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/BadgerGit.png +0 -0
- data/COPYING +674 -0
- data/LICENSING +30 -0
- data/Manifest +112 -0
- data/README.md +80 -0
- data/Rakefile +36 -0
- data/badger-rails.gemspec +34 -0
- data/bin/badger +486 -0
- data/lib/badger/Capfile +1 -0
- data/lib/badger/config/deploy.rb +211 -0
- data/lib/badger/config/rails-app.yml +6 -0
- data/lib/badger/config/rails-app.yml.bk +6 -0
- data/lib/badger/core/claws/app.claw +112 -0
- data/lib/badger/core/claws/db-app.claw +59 -0
- data/lib/badger/core/claws/rails-app.claw +125 -0
- data/lib/badger/core/files/badger/info +0 -0
- data/lib/badger/core/files/cap/Capfile +4 -0
- data/lib/badger/core/files/cap/deploy/production-app.rb +139 -0
- data/lib/badger/core/files/cap/deploy/production.rb +136 -0
- data/lib/badger/core/files/cap/deploy/staging-app.rb +139 -0
- data/lib/badger/core/files/cap/deploy/staging.rb +134 -0
- data/lib/badger/core/files/cap/deploy.rb +6 -0
- data/lib/badger/core/files/git/git +0 -0
- data/lib/badger/core/files/god/angel/resque-dev.god +54 -0
- data/lib/badger/core/files/god/angel/resque-stg.god +54 -0
- data/lib/badger/core/files/god/angel/resque.god +55 -0
- data/lib/badger/core/files/god/angel/unicorn-stg.god +62 -0
- data/lib/badger/core/files/god/angel/unicorn.god +62 -0
- data/lib/badger/core/files/god/god +108 -0
- data/lib/badger/core/files/god/unicorn-stg.rb +70 -0
- data/lib/badger/core/files/god/unicorn.rb +70 -0
- data/lib/badger/core/files/logrotate/logrotate.conf +23 -0
- data/lib/badger/core/files/logrotate/logrotate.cron +8 -0
- data/lib/badger/core/files/mysql/database.yml.bk +18 -0
- data/lib/badger/core/files/mysql/db_stats +0 -0
- data/lib/badger/core/files/mysql/my.cnf +11 -0
- data/lib/badger/core/files/nginx/nginx +106 -0
- data/lib/badger/core/files/nginx/nginx.conf +30 -0
- data/lib/badger/core/files/nginx/sites/port443.btl +42 -0
- data/lib/badger/core/files/nginx/sites/port80.btl +39 -0
- data/lib/badger/core/files/nginx/sites/production-web +117 -0
- data/lib/badger/core/files/nginx/sites/staging-web +41 -0
- data/lib/badger/core/files/postfix/main.cf +678 -0
- data/lib/badger/core/files/postfix/master.cf +81 -0
- data/lib/badger/core/files/redis/redis-server +59 -0
- data/lib/badger/core/files/redis/redis.conf +444 -0
- data/lib/badger/core/files/resque/resque.rb +5 -0
- data/lib/badger/core/files/resque/resque.yml +19 -0
- data/lib/badger/core/files/resque/resque_web.rb +2 -0
- data/lib/badger/core/files/ssh/authorized_keys +0 -0
- data/lib/badger/core/functions +174 -0
- data/lib/badger/core/scripts/app_info +40 -0
- data/lib/badger/core/scripts/app_scale +15 -0
- data/lib/badger/core/scripts/remove_app +25 -0
- data/lib/badger/core/scripts/remove_app_db +30 -0
- data/lib/badger/core/scripts/remove_gems +2 -0
- data/lib/badger/core/teeth/automake.th +9 -0
- data/lib/badger/core/teeth/badger.th +27 -0
- data/lib/badger/core/teeth/bison.th +20 -0
- data/lib/badger/core/teeth/bundler.th +4 -0
- data/lib/badger/core/teeth/capistrano-ext.th +37 -0
- data/lib/badger/core/teeth/chkconfig.th +4 -0
- data/lib/badger/core/teeth/curl.th +24 -0
- data/lib/badger/core/teeth/faac.th +11 -0
- data/lib/badger/core/teeth/ffmpeg.th +28 -0
- data/lib/badger/core/teeth/firewall.th +70 -0
- data/lib/badger/core/teeth/gcc-c++.th +9 -0
- data/lib/badger/core/teeth/gcc.th +9 -0
- data/lib/badger/core/teeth/git.th +23 -0
- data/lib/badger/core/teeth/god.th +17 -0
- data/lib/badger/core/teeth/lame.th +9 -0
- data/lib/badger/core/teeth/libffi.th +4 -0
- data/lib/badger/core/teeth/libid3tag.th +10 -0
- data/lib/badger/core/teeth/libmad.th +11 -0
- data/lib/badger/core/teeth/libogg.th +9 -0
- data/lib/badger/core/teeth/libtool.th +9 -0
- data/lib/badger/core/teeth/libxml2.th +19 -0
- data/lib/badger/core/teeth/libxslt.th +19 -0
- data/lib/badger/core/teeth/libyaml.th +19 -0
- data/lib/badger/core/teeth/logrotate.th +19 -0
- data/lib/badger/core/teeth/madplay.th +10 -0
- data/lib/badger/core/teeth/make.th +9 -0
- data/lib/badger/core/teeth/mysql-config.th +40 -0
- data/lib/badger/core/teeth/mysql-server.th +16 -0
- data/lib/badger/core/teeth/mysql.th +14 -0
- data/lib/badger/core/teeth/nginx.th +56 -0
- data/lib/badger/core/teeth/ntp.th +15 -0
- data/lib/badger/core/teeth/openssl.th +19 -0
- data/lib/badger/core/teeth/pcre.th +9 -0
- data/lib/badger/core/teeth/plugins.th +14 -0
- data/lib/badger/core/teeth/postfix.th +11 -0
- data/lib/badger/core/teeth/pwgen.th +9 -0
- data/lib/badger/core/teeth/rake.th +12 -0
- data/lib/badger/core/teeth/readline.th +19 -0
- data/lib/badger/core/teeth/redis.th +18 -0
- data/lib/badger/core/teeth/resque.th +12 -0
- data/lib/badger/core/teeth/ruby.th +52 -0
- data/lib/badger/core/teeth/rubygems.th +17 -0
- data/lib/badger/core/teeth/san_juan.th +4 -0
- data/lib/badger/core/teeth/sox.th +12 -0
- data/lib/badger/core/teeth/speex.th +12 -0
- data/lib/badger/core/teeth/sqlite3.th +14 -0
- data/lib/badger/core/teeth/ssh_keys.th +10 -0
- data/lib/badger/core/teeth/sshpass.th +9 -0
- data/lib/badger/core/teeth/sudo.th +9 -0
- data/lib/badger/core/teeth/syslog-ng.th +16 -0
- data/lib/badger/core/teeth/sysv-rc-conf.th +4 -0
- data/lib/badger/core/teeth/x264.th +11 -0
- data/lib/badger/core/teeth/xvid.th +11 -0
- data/lib/badger/core/teeth/yasm.th +11 -0
- data/lib/badger/core/teeth/zlib.th +9 -0
- data/lib/core.rb +313 -0
- data/lib/errors.rb +202 -0
- metadata +297 -0
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
source /etc/badger/core/functions
|
3
|
+
if [ "$(cat /etc/issue | egrep '(CentOS)|(Red\ Hat)')" ]
|
4
|
+
then
|
5
|
+
yum_gcc
|
6
|
+
yum_make
|
7
|
+
yum_gcc-c++
|
8
|
+
yum_automake
|
9
|
+
yum_libtool
|
10
|
+
yum_logrotate
|
11
|
+
yum_syslog-ng
|
12
|
+
yum_openssl
|
13
|
+
yum_openssl-devel
|
14
|
+
ssh_badger
|
15
|
+
yum_sudo
|
16
|
+
yum_curl
|
17
|
+
yum_curl-devel
|
18
|
+
yum_ntpd
|
19
|
+
#------------------
|
20
|
+
#install_media_group
|
21
|
+
config_badger
|
22
|
+
yum_postfix
|
23
|
+
yum_bison
|
24
|
+
yum_bison-devel
|
25
|
+
yum_readline
|
26
|
+
yum_readline-devel
|
27
|
+
yum_zlib
|
28
|
+
yum_zlib-devel
|
29
|
+
yum_libxml2
|
30
|
+
yum_libxml2-devel
|
31
|
+
yum_libxslt
|
32
|
+
yum_libxslt-devel
|
33
|
+
yum_sqlite3
|
34
|
+
yum_mysql
|
35
|
+
yum_mysql-devel
|
36
|
+
yum_libyaml
|
37
|
+
yum_libyaml-devel
|
38
|
+
install_source_ruby
|
39
|
+
install_source_rubygems 1.8.21 badger badger && echo 'RubyGems Installed'
|
40
|
+
echo 'Gems take forever......'
|
41
|
+
gem_rake
|
42
|
+
gem_san_juan
|
43
|
+
gem_god
|
44
|
+
gem_capistrano-ext
|
45
|
+
yum_sshpass
|
46
|
+
git_repo
|
47
|
+
gem_bundler
|
48
|
+
yum_pcre-devel
|
49
|
+
config_god
|
50
|
+
config_capistrano staging
|
51
|
+
rm -rf /etc/badger/core/files/mysql/database.yml
|
52
|
+
firewall web
|
53
|
+
elif [ "$(cat /etc/issue | grep Ubuntu)" ]
|
54
|
+
then
|
55
|
+
apt_gcc
|
56
|
+
apt_make
|
57
|
+
apt_g++
|
58
|
+
apt_automake
|
59
|
+
apt_libtool
|
60
|
+
apt_logrotate
|
61
|
+
apt_sysv-rc-conf
|
62
|
+
apt_syslog-ng
|
63
|
+
apt_openssl
|
64
|
+
apt_libssl-dev
|
65
|
+
ssh_badger
|
66
|
+
apt_sudo
|
67
|
+
apt_curl
|
68
|
+
apt_curl_openssl-dev
|
69
|
+
apt_curl_gnutls-dev
|
70
|
+
apt_ntp
|
71
|
+
apt_chkconfig
|
72
|
+
apt_git
|
73
|
+
#------------------
|
74
|
+
#install_media_group
|
75
|
+
config_badger
|
76
|
+
apt_postfix
|
77
|
+
apt_bison
|
78
|
+
apt_libbison-dev
|
79
|
+
apt_libreadline6
|
80
|
+
apt_libreadline6-dev
|
81
|
+
apt_libxml2
|
82
|
+
apt_libxml2-dev
|
83
|
+
apt_libxslt
|
84
|
+
apt_libxslt-dev
|
85
|
+
apt_sqlite3
|
86
|
+
apt_sqlite3-dev
|
87
|
+
apt_mysql-server
|
88
|
+
apt_libmysqlclient && echo 'Libmysqlclient Installed'
|
89
|
+
apt_libyaml
|
90
|
+
apt_libyaml-dev
|
91
|
+
apt_libffi-dev
|
92
|
+
install_source_ruby
|
93
|
+
install_source_rubygems 1.8.21 badger badger && echo 'RubyGems Installed'
|
94
|
+
echo 'Gems take forever......'
|
95
|
+
source /root/.bashrc
|
96
|
+
source /root/.profile
|
97
|
+
gem_rake
|
98
|
+
gem_san_juan
|
99
|
+
gem_capistrano-ext
|
100
|
+
gem_god
|
101
|
+
apt_sshpass
|
102
|
+
git_repo
|
103
|
+
gem_bundler
|
104
|
+
apt_libpcre3-dev
|
105
|
+
config_god
|
106
|
+
config_capistrano staging
|
107
|
+
rm -rf /etc/badger/core/files/mysql/database.yml
|
108
|
+
firewall web
|
109
|
+
else
|
110
|
+
echo "ERROR: Incompatible Operating System."
|
111
|
+
exit 64
|
112
|
+
fi
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
source /etc/badger/core/functions
|
3
|
+
if [ "$(cat /etc/issue | egrep '(CentOS)|(Red\ Hat)')" ]
|
4
|
+
then
|
5
|
+
yum_gcc
|
6
|
+
yum_make
|
7
|
+
yum_gcc-c++
|
8
|
+
yum_automake
|
9
|
+
yum_libtool
|
10
|
+
yum_logrotate
|
11
|
+
yum_syslog-ng
|
12
|
+
yum_openssl
|
13
|
+
yum_openssl-devel
|
14
|
+
ssh_badger
|
15
|
+
yum_sudo
|
16
|
+
yum_curl
|
17
|
+
yum_curl-devel
|
18
|
+
yum_ntpd
|
19
|
+
yum_sqlite3
|
20
|
+
yum_mysql
|
21
|
+
yum_mysql-devel
|
22
|
+
yum_pwgen
|
23
|
+
yum_mysql-server
|
24
|
+
config_mysql-privileges-rails
|
25
|
+
config_mysql-external
|
26
|
+
#install_source_redis
|
27
|
+
firewall db
|
28
|
+
elif [ "$(cat /etc/issue | egrep '(Ubuntu)|(Debian)')" ]
|
29
|
+
then
|
30
|
+
apt_gcc
|
31
|
+
apt_make
|
32
|
+
apt_g++
|
33
|
+
apt_automake
|
34
|
+
apt_libtool
|
35
|
+
apt_logrotate
|
36
|
+
apt_sysv-rc-conf
|
37
|
+
apt_syslog-ng
|
38
|
+
apt_openssl
|
39
|
+
apt_libssl-dev
|
40
|
+
ssh_badger
|
41
|
+
apt_sudo
|
42
|
+
apt_curl
|
43
|
+
apt_curl_openssl-dev
|
44
|
+
apt_curl_gnutls-dev
|
45
|
+
apt_ntp
|
46
|
+
apt_chkconfig
|
47
|
+
apt_sqlite3
|
48
|
+
apt_sqlite3-dev
|
49
|
+
apt_mysql-server
|
50
|
+
apt_libmysqlclient && echo 'Libmysqlclient Installed'
|
51
|
+
apt_pwgen
|
52
|
+
config_mysql-privileges-rails
|
53
|
+
config_mysql-external
|
54
|
+
#install_source_redis
|
55
|
+
firewall db
|
56
|
+
else
|
57
|
+
echo "ERROR: Incompatible Operating System."
|
58
|
+
exit 64
|
59
|
+
fi
|
@@ -0,0 +1,125 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
source /etc/badger/core/functions
|
3
|
+
before
|
4
|
+
if [ "$(cat /etc/issue | egrep '(CentOS)|(Red\ Hat)')" ]
|
5
|
+
then
|
6
|
+
yum_gcc
|
7
|
+
yum_make
|
8
|
+
yum_gcc-c++
|
9
|
+
yum_automake
|
10
|
+
yum_libtool
|
11
|
+
yum_logrotate
|
12
|
+
yum_syslog-ng
|
13
|
+
yum_openssl
|
14
|
+
yum_openssl-devel
|
15
|
+
ssh_badger
|
16
|
+
yum_sudo
|
17
|
+
yum_curl
|
18
|
+
yum_curl-devel
|
19
|
+
yum_ntpd
|
20
|
+
dev
|
21
|
+
config_badger
|
22
|
+
yum_postfix
|
23
|
+
yum_bison
|
24
|
+
yum_bison-devel
|
25
|
+
yum_readline
|
26
|
+
yum_readline-devel
|
27
|
+
yum_zlib
|
28
|
+
yum_zlib-devel
|
29
|
+
yum_libxml2
|
30
|
+
yum_libxml2-devel
|
31
|
+
yum_libxslt
|
32
|
+
yum_libxslt-devel
|
33
|
+
yum_sqlite3
|
34
|
+
yum_mysql
|
35
|
+
yum_mysql-devel
|
36
|
+
yum_libyaml
|
37
|
+
yum_libyaml-devel
|
38
|
+
install_source_ruby
|
39
|
+
install_source_rubygems 1.8.21 badger badger && echo 'RubyGems Installed'
|
40
|
+
echo 'Gems take forever......'
|
41
|
+
gem_san_juan
|
42
|
+
gem_capistrano-ext
|
43
|
+
gem_god
|
44
|
+
git_clone
|
45
|
+
gem_rake
|
46
|
+
gem_bundler
|
47
|
+
yum_pwgen
|
48
|
+
yum_mysql-server
|
49
|
+
config_mysql-privileges-rails
|
50
|
+
config_mysql-badger
|
51
|
+
yum_pcre-devel
|
52
|
+
config_god
|
53
|
+
#install_source_redis
|
54
|
+
config_capistrano staging
|
55
|
+
install_source_nginx
|
56
|
+
config_nginx
|
57
|
+
nginx_add_site staging-web
|
58
|
+
rm -rf /etc/badger/core/files/mysql/database.yml
|
59
|
+
firewall web
|
60
|
+
elif [ "$(cat /etc/issue | egrep '(Ubuntu)|(Debian)')" ]
|
61
|
+
then
|
62
|
+
apt_gcc
|
63
|
+
apt_make
|
64
|
+
apt_g++
|
65
|
+
apt_automake
|
66
|
+
apt_libtool
|
67
|
+
apt_logrotate
|
68
|
+
apt_sysv-rc-conf
|
69
|
+
apt_syslog-ng
|
70
|
+
apt_openssl
|
71
|
+
apt_libssl-dev
|
72
|
+
ssh_badger
|
73
|
+
apt_sudo
|
74
|
+
apt_curl
|
75
|
+
apt_curl_openssl-dev
|
76
|
+
apt_curl_gnutls-dev
|
77
|
+
apt_ntp
|
78
|
+
apt_chkconfig
|
79
|
+
dev
|
80
|
+
config_badger
|
81
|
+
apt_postfix
|
82
|
+
apt_bison
|
83
|
+
apt_libbison-dev
|
84
|
+
apt_libreadline6
|
85
|
+
apt_libreadline6-dev
|
86
|
+
apt_libxml2
|
87
|
+
apt_libxml2-dev
|
88
|
+
apt_libxslt
|
89
|
+
apt_libxslt-dev
|
90
|
+
apt_sqlite3
|
91
|
+
apt_sqlite3-dev
|
92
|
+
apt_mysql-server
|
93
|
+
apt_libmysqlclient && echo 'Libmysqlclient Installed'
|
94
|
+
apt_libyaml
|
95
|
+
apt_libyaml-dev
|
96
|
+
apt_libffi-dev
|
97
|
+
install_source_ruby
|
98
|
+
install_source_rubygems 1.8.21 badger badger && echo 'RubyGems Installed'
|
99
|
+
echo 'Gems take forever......'
|
100
|
+
source /root/.bashrc
|
101
|
+
source /root/.profile
|
102
|
+
gem_rake
|
103
|
+
gem_san_juan
|
104
|
+
gem_capistrano-ext
|
105
|
+
gem_god
|
106
|
+
apt_git
|
107
|
+
git_clone
|
108
|
+
gem_bundler
|
109
|
+
apt_pwgen
|
110
|
+
config_mysql-privileges-rails
|
111
|
+
config_mysql-badger
|
112
|
+
apt_libpcre3-dev
|
113
|
+
config_god
|
114
|
+
#install_source_redis
|
115
|
+
config_capistrano staging
|
116
|
+
apt_nginx
|
117
|
+
config_nginx
|
118
|
+
nginx_add_site staging-web
|
119
|
+
rm -rf /etc/badger/core/files/mysql/database.yml
|
120
|
+
firewall web
|
121
|
+
else
|
122
|
+
echo "ERROR: Incompatible Operating System."
|
123
|
+
exit 64
|
124
|
+
fi
|
125
|
+
after
|
File without changes
|
@@ -0,0 +1,139 @@
|
|
1
|
+
load "deploy"
|
2
|
+
load "deploy/assets"
|
3
|
+
require 'rubygems'
|
4
|
+
require 'yaml'
|
5
|
+
require 'bundler/capistrano'
|
6
|
+
require './lib/badger_plugin.rb' if File.exists?("lib/badger_plugin.rb")
|
7
|
+
|
8
|
+
`git pull origin master`
|
9
|
+
YAML::ENGINE.yamler = 'syck'
|
10
|
+
yml = YAML.load_file "/opt/tmp/web/config/badger.yml"
|
11
|
+
name = yml[app_domain]['project_name']
|
12
|
+
|
13
|
+
yml.keys.each do |k|
|
14
|
+
if k.include?("app")
|
15
|
+
host_server = true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
begin
|
20
|
+
database_yml = YAML.load_file "/opt/tmp/web/config/database_example.yml"
|
21
|
+
rescue
|
22
|
+
host_server = false
|
23
|
+
raise LoadError, "could not read from database_example.yml"
|
24
|
+
end
|
25
|
+
|
26
|
+
set :bundle_dir, ""
|
27
|
+
set :bundle_flags, ""
|
28
|
+
set :bundle_without, [:development, :test]
|
29
|
+
set :bundle_path, "/home/badger/.bundler"
|
30
|
+
|
31
|
+
set :application, "web"
|
32
|
+
|
33
|
+
set :repository, "git@#{yml['domain']}:/opt/git/#{name}.git"
|
34
|
+
set :rails_env, "production"
|
35
|
+
|
36
|
+
set :scm, :git
|
37
|
+
set :branch, "master"
|
38
|
+
set :git_enable_submodules, 1
|
39
|
+
set :git_shallow_clone, 1
|
40
|
+
|
41
|
+
default_run_options[:pty] = true #fix for teamcity
|
42
|
+
ssh_options[:auth_methods] = %w(publickey)
|
43
|
+
ssh_options[:keys] = %w(/root/.ssh/id_rsa)
|
44
|
+
|
45
|
+
set :user, "badger"
|
46
|
+
set :domain, yml[app_domain]['domain']
|
47
|
+
|
48
|
+
set :deploy_to, "/opt/#{application}"
|
49
|
+
|
50
|
+
set :use_sudo, true
|
51
|
+
set :keep_releases, 30
|
52
|
+
|
53
|
+
require 'san_juan'
|
54
|
+
role :app, domain
|
55
|
+
role :web, domain
|
56
|
+
role :db, domain, :primary => true
|
57
|
+
|
58
|
+
san_juan.role :web, %w(nginx)
|
59
|
+
set :app_port, 4001
|
60
|
+
|
61
|
+
set :rake, "/opt/ruby/bin/rake"
|
62
|
+
set :default_environment, {
|
63
|
+
'PATH' => '/opt/ruby/bin:/opt/rubygems/bin:$PATH',
|
64
|
+
'GEM_HOME' => '/opt/rubygems'
|
65
|
+
}
|
66
|
+
|
67
|
+
namespace :configuration do
|
68
|
+
task :db do
|
69
|
+
run "cp #{release_path}/config/database_example.yml #{release_path}/config/database.yml"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
namespace :resque do
|
74
|
+
task :prepare_resque, :roles => :app do
|
75
|
+
if host_server == true
|
76
|
+
resque_rake = "begin\n require 'resque'\n require 'resque/tasks'\n task \"resque:setup\" => :environment\nrescue LoadError\nend"
|
77
|
+
file = File.open("/opt/tmp/web/Rakefile")
|
78
|
+
rakefile = file.read
|
79
|
+
unless rakefile.include?(resque_rake)
|
80
|
+
file = File.open("#{release_path}/Rakefile", "a+") {|f| f.write("\n\n" + resque_rake) }
|
81
|
+
end
|
82
|
+
run "/bin/bash -c 'source /etc/badger/core/teeth/resque.th; dbResque=#{database_yml['production']['host']}; source /etc/badger/core/files/resque/resque.yml; resque_yml #{release_path}; config_resque #{release_path}'"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
task :load_config, :roles => :app do
|
87
|
+
run "mkdir -p #{release_path}/config/god"
|
88
|
+
run "rsync /etc/badger/core/files/god/angel/resque-dev.god #{release_path}/config/god/resque-dev.god"
|
89
|
+
run "rsync /etc/badger/core/files/god/angel/resque-stg.god #{release_path}/config/god/resque-stg.god"
|
90
|
+
run "rsync /etc/badger/core/files/god/angel/resque.god #{release_path}/config/god/resque.god"
|
91
|
+
if File.exists?('/home/badger/resque.god')
|
92
|
+
run "sudo /opt/rubygems/bin/god load /home/badger/resque.god"
|
93
|
+
else
|
94
|
+
run "sudo /opt/rubygems/bin/god load /etc/badger/core/files/god/angel/resque.god"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
task :restart, :roles => :app do
|
99
|
+
run "sudo /opt/rubygems/bin/god restart resque"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
namespace :deploy do
|
104
|
+
desc "Restarting services using"
|
105
|
+
task :restart, :roles => :app, :except => { :no_release => true } do
|
106
|
+
resque.prepare_resque
|
107
|
+
resque.load_config
|
108
|
+
#resque.restart
|
109
|
+
end
|
110
|
+
|
111
|
+
[:start, :stop].each do |t|
|
112
|
+
desc "#{t} task is a no-op with passenger"
|
113
|
+
task t, :roles => :app do ; end
|
114
|
+
end
|
115
|
+
|
116
|
+
task :badger_plugin do
|
117
|
+
BadgerPlugin.new() if File.exists?("lib/badger_plugin.rb")
|
118
|
+
end
|
119
|
+
|
120
|
+
task :migrations do
|
121
|
+
run "cd #{release_path} && #{rake} db:migrate RAILS_ENV=production"
|
122
|
+
end
|
123
|
+
|
124
|
+
task :seeds do
|
125
|
+
run "cd #{release_path} && #{rake} db:seed_fu RAILS_ENV=production"
|
126
|
+
end
|
127
|
+
|
128
|
+
task :link_audio do
|
129
|
+
run "ln -sf /opt/recordings #{release_path}/public/recordings"
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
after 'deploy:finalize_update', :roles => :app do
|
134
|
+
configuration.db
|
135
|
+
deploy.migrations
|
136
|
+
#deploy.seeds
|
137
|
+
#deploy.link_audio
|
138
|
+
deploy.cleanup
|
139
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
load "deploy"
|
2
|
+
load "deploy/assets"
|
3
|
+
require 'rubygems'
|
4
|
+
require 'yaml'
|
5
|
+
require 'bundler/capistrano'
|
6
|
+
require './lib/badger_plugin.rb' if File.exists?("lib/badger_plugin.rb")
|
7
|
+
|
8
|
+
`git pull origin master`
|
9
|
+
YAML::ENGINE.yamler = 'syck'
|
10
|
+
yml = YAML.load_file "/opt/tmp/web/config/badger.yml"
|
11
|
+
name = `cat /etc/badger/core/files/badger/info`
|
12
|
+
|
13
|
+
yml.keys.each do |k|
|
14
|
+
if k.include?("app")
|
15
|
+
host_server = true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
begin
|
20
|
+
database_yml = YAML.load_file "/opt/tmp/web/config/database_example.yml"
|
21
|
+
rescue
|
22
|
+
host_server = false
|
23
|
+
end
|
24
|
+
|
25
|
+
set :bundle_dir, ""
|
26
|
+
set :bundle_flags, ""
|
27
|
+
set :bundle_without, [:development, :test]
|
28
|
+
set :bundle_path, "/home/badger/.bundler"
|
29
|
+
|
30
|
+
set :application, "web"
|
31
|
+
|
32
|
+
set :repository, "git@#{yml['domain']}:/opt/git/#{name.chomp}.git"
|
33
|
+
set :rails_env, "production"
|
34
|
+
#set :normalize_asset_timestamps, false
|
35
|
+
set :scm, :git
|
36
|
+
set :branch, "master"
|
37
|
+
set :git_enable_submodules, 1
|
38
|
+
set :git_shallow_clone, 1
|
39
|
+
|
40
|
+
default_run_options[:pty] = true #fix for teamcity
|
41
|
+
ssh_options[:auth_methods] = %w(publickey)
|
42
|
+
ssh_options[:keys] = %w(/root/.ssh/id_rsa)
|
43
|
+
|
44
|
+
set :user, "badger"
|
45
|
+
set :domain, "#{yml['domain']}"#system('cat /etc/badger/core/files/badger/info')
|
46
|
+
|
47
|
+
set :deploy_to, "/opt/#{application}"
|
48
|
+
|
49
|
+
set :use_sudo, true
|
50
|
+
set :keep_releases, 30
|
51
|
+
|
52
|
+
require 'san_juan'
|
53
|
+
role :app, domain
|
54
|
+
role :web, domain
|
55
|
+
role :db, domain, :primary => true
|
56
|
+
|
57
|
+
san_juan.role :web, %w(nginx)
|
58
|
+
set :app_port, 4001
|
59
|
+
|
60
|
+
set :rake, "bundle exec /opt/rubygems/bin/rake"
|
61
|
+
set :default_environment, {
|
62
|
+
'PATH' => '/usr/bin:/bin/bash:/opt/ruby/bin:/opt/rubygems/bin:$PATH',
|
63
|
+
'GEM_HOME' => '/opt/rubygems'
|
64
|
+
}
|
65
|
+
|
66
|
+
assets_compile = true
|
67
|
+
|
68
|
+
namespace :configuration do
|
69
|
+
task :resque, :roles => :app do
|
70
|
+
if host_server
|
71
|
+
run "/bin/bash -c 'source /etc/badger/core/teeth/resque.th; dbResque=#{database_yml['production']['host']}; source /etc/badger/core/files/resque/resque.yml; resque_yml #{release_path}; config_resque #{release_path}'"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
task :db do
|
76
|
+
if yml['local_db'] == false
|
77
|
+
run "cp -rf #{release_path}/config/database_example.yml #{release_path}/config/database.yml"
|
78
|
+
else
|
79
|
+
run "cp -rf /etc/badger/core/files/mysql/database.yml #{release_path}/config/database.yml"
|
80
|
+
end
|
81
|
+
run "cp -rf /etc/badger/core/files/god/unicorn-stg.rb #{release_path}/config/unicorn-stg.rb"
|
82
|
+
run "cp -rf /etc/badger/core/files/god/unicorn.rb #{release_path}/config/unicorn.rb"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
namespace :unicorn do
|
87
|
+
task :load_config, :roles => :app do
|
88
|
+
run "mkdir -p #{release_path}/config/god"
|
89
|
+
run "rsync /etc/badger/core/files/god/angel/resque-dev.god #{release_path}/config/god/resque-dev.god"
|
90
|
+
run "rsync /etc/badger/core/files/god/angel/resque-stg.god #{release_path}/config/god/resque-stg.god"
|
91
|
+
run "rsync /etc/badger/core/files/god/angel/resque.god #{release_path}/config/god/resque.god"
|
92
|
+
run "sudo /opt/rubygems/bin/god load /etc/badger/core/files/god/angel/unicorn.god"
|
93
|
+
end
|
94
|
+
|
95
|
+
task :restart, :roles => :app do
|
96
|
+
run "sudo /opt/rubygems/bin/god restart unicorn"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
namespace :deploy do
|
101
|
+
desc "Restarting unicorn using"
|
102
|
+
task :restart, :roles => :app, :except => { :no_release => true } do
|
103
|
+
unicorn.load_config
|
104
|
+
unicorn.restart
|
105
|
+
end
|
106
|
+
|
107
|
+
[:start, :stop].each do |t|
|
108
|
+
desc "#{t} task is a no-op with passenger"
|
109
|
+
task t, :roles => :app do ; end
|
110
|
+
end
|
111
|
+
|
112
|
+
task :badger_plugin do
|
113
|
+
BadgerPlugin.new() if File.exists?("lib/badger_plugin.rb")
|
114
|
+
end
|
115
|
+
|
116
|
+
task :migrations do
|
117
|
+
run "cd #{release_path} && #{rake} db:migrate RAILS_ENV=production"
|
118
|
+
end
|
119
|
+
|
120
|
+
task :seeds do
|
121
|
+
run "cd #{release_path} && #{rake} db:seed_fu RAILS_ENV=production"
|
122
|
+
end
|
123
|
+
|
124
|
+
task :link_audio do
|
125
|
+
run "ln -sf /opt/recordings #{release_path}/public/recordings"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
after 'deploy:finalize_update', :roles => :app do
|
130
|
+
configuration.resque
|
131
|
+
configuration.db
|
132
|
+
deploy.migrations
|
133
|
+
#deploy.seeds
|
134
|
+
#deploy.link_audio
|
135
|
+
deploy.cleanup
|
136
|
+
end
|