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,174 @@
|
|
1
|
+
for tooth in `cd /etc/badger/core/teeth/ && ls`
|
2
|
+
do
|
3
|
+
source /etc/badger/core/teeth/$tooth
|
4
|
+
done
|
5
|
+
|
6
|
+
if [ -d "/etc/badger/core/scripts/badger/teeth/" ]
|
7
|
+
then
|
8
|
+
for tooth in `cd /etc/badger/core/scripts/badger/teeth/ && ls`
|
9
|
+
do
|
10
|
+
source /etc/badger/core/scripts/badger/teeth/$tooth
|
11
|
+
done
|
12
|
+
fi
|
13
|
+
|
14
|
+
GFPath=https://github.com/downloads/curiousminds/packages
|
15
|
+
|
16
|
+
tmpIP=$(ifconfig | sed -rn 's/.*r:([^ ]+) .*/\1/p')
|
17
|
+
declare -a CentOsIPs=($tmpIP)
|
18
|
+
|
19
|
+
Async() {
|
20
|
+
$* 1>&1 &
|
21
|
+
}
|
22
|
+
|
23
|
+
Install() {
|
24
|
+
yum -y install $* || apt-get install $*
|
25
|
+
}
|
26
|
+
|
27
|
+
Sync() {
|
28
|
+
echo $1 $2
|
29
|
+
rsync $1 $2
|
30
|
+
if [ -n "$3" ]
|
31
|
+
then
|
32
|
+
chmod $3 $2
|
33
|
+
fi
|
34
|
+
}
|
35
|
+
|
36
|
+
Service() {
|
37
|
+
Status=$(service $1 status | grep stopped)
|
38
|
+
if [ -z "$Status" ]
|
39
|
+
then
|
40
|
+
service $1 restart
|
41
|
+
echo "$1 is running :)"
|
42
|
+
else
|
43
|
+
service $1 start
|
44
|
+
fi
|
45
|
+
}
|
46
|
+
|
47
|
+
Status() {
|
48
|
+
service $1 status && return 0
|
49
|
+
service $1 restart
|
50
|
+
}
|
51
|
+
|
52
|
+
Dir() {
|
53
|
+
mkdir -p $1
|
54
|
+
if [ -n "$2" ]
|
55
|
+
then
|
56
|
+
chmod $2 $1
|
57
|
+
fi
|
58
|
+
}
|
59
|
+
|
60
|
+
Exists() {
|
61
|
+
if [ -f $1 ]
|
62
|
+
then
|
63
|
+
if [ -z $2 ]
|
64
|
+
then
|
65
|
+
n=$(echo $1 | tr "/" "\n")
|
66
|
+
name=(echo $n)
|
67
|
+
c=${#name[@]}
|
68
|
+
let c--
|
69
|
+
file_name=`echo "${name[c]}"`
|
70
|
+
echo $file_name installed
|
71
|
+
return 0
|
72
|
+
else
|
73
|
+
echo $2 installed
|
74
|
+
return 0
|
75
|
+
fi
|
76
|
+
else
|
77
|
+
return 1
|
78
|
+
fi
|
79
|
+
}
|
80
|
+
|
81
|
+
AptExists() {
|
82
|
+
if dpkg-query -W $1
|
83
|
+
then
|
84
|
+
return 0
|
85
|
+
else
|
86
|
+
return 1
|
87
|
+
fi
|
88
|
+
}
|
89
|
+
|
90
|
+
YumExists() {
|
91
|
+
yummy=$(rpm -qa | grep $1)
|
92
|
+
if [ -z "$yummy" ]
|
93
|
+
then
|
94
|
+
return 1
|
95
|
+
else
|
96
|
+
return 0
|
97
|
+
fi
|
98
|
+
}
|
99
|
+
|
100
|
+
GemExists() {
|
101
|
+
gemList=$(gem list | grep $1)
|
102
|
+
if [ -z "$gemList" ]
|
103
|
+
then
|
104
|
+
return 0
|
105
|
+
else
|
106
|
+
echo $1 Installed
|
107
|
+
return 1
|
108
|
+
fi
|
109
|
+
}
|
110
|
+
|
111
|
+
Nil() {
|
112
|
+
if [ -z $1 ]
|
113
|
+
then
|
114
|
+
return 1
|
115
|
+
else
|
116
|
+
return 0
|
117
|
+
fi
|
118
|
+
}
|
119
|
+
|
120
|
+
CentOsRelease() {
|
121
|
+
REL=(`cat /etc/*-release | sed 's/[^0-9]*//g'`)
|
122
|
+
if [ $REL -gt 60 ]
|
123
|
+
then
|
124
|
+
return 0
|
125
|
+
else
|
126
|
+
return 1
|
127
|
+
fi
|
128
|
+
}
|
129
|
+
|
130
|
+
IsCentOs() {
|
131
|
+
cat /etc/*-release | grep CentOS -m 1
|
132
|
+
}
|
133
|
+
|
134
|
+
GemVersion() {
|
135
|
+
if [ `gem --version` == $1 ]
|
136
|
+
then
|
137
|
+
return 1
|
138
|
+
else
|
139
|
+
return 0
|
140
|
+
fi
|
141
|
+
}
|
142
|
+
|
143
|
+
XenKernel() {
|
144
|
+
uname -a | egrep -c '(rscloud)|(xen)'
|
145
|
+
}
|
146
|
+
|
147
|
+
UserGroup() {
|
148
|
+
chown $2 $1
|
149
|
+
if [ -z $3 ]
|
150
|
+
then
|
151
|
+
chgrp $2 $1
|
152
|
+
else
|
153
|
+
chgrp $3 $1
|
154
|
+
fi
|
155
|
+
}
|
156
|
+
|
157
|
+
Mysql() {
|
158
|
+
mysql -e "SHOW DATABASES;" | grep -x $1 || mysql -e "CREATE DATABASE \`$1\`;"
|
159
|
+
mysql -e "SELECT * FROM mysql.db WHERE User='$2' AND Db='$1' AND Host='$3'" | grep $2 ||
|
160
|
+
mysql -e "GRANT ALL PRIVILEGES ON \`$1\`.* TO '$2'@'$3' IDENTIFIED BY '$4' WITH GRANT OPTION;"
|
161
|
+
}
|
162
|
+
|
163
|
+
Template() {
|
164
|
+
source $1
|
165
|
+
}
|
166
|
+
|
167
|
+
IndexOf() {
|
168
|
+
local i=1 S=$2; shift
|
169
|
+
while [ $S != $1 ]
|
170
|
+
do ((i++)); shift
|
171
|
+
[ -z "$1" ] && { i=0; break; }
|
172
|
+
done
|
173
|
+
echo $i
|
174
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
tmpIP=$(ifconfig | sed -rn 's/.*r:([^ ]+) .*/\1/p')
|
4
|
+
declare -a CentOsIPs=($tmpIP)
|
5
|
+
UPTIME=$( uptime )
|
6
|
+
|
7
|
+
function get_hd_usage() {
|
8
|
+
DFYO=(`df -Pm | sed -e 1d | head -3 | sed -n 1p`)
|
9
|
+
let total_space=1000*${DFYO[2]}/${DFYO[1]}
|
10
|
+
let df_units=total_space/10
|
11
|
+
let df_decimal=total_space%10
|
12
|
+
echo $df_units.$df_decimal
|
13
|
+
}
|
14
|
+
function git_link() {
|
15
|
+
repo=$( cd /opt/git/ && ls | grep .git )
|
16
|
+
echo "git@${CentOsIPs[0]}:/opt/git/$repo"
|
17
|
+
}
|
18
|
+
function IPS() {
|
19
|
+
tmpIP=$(ifconfig | sed -rn 's/.*r:([^ ]+) .*/\1/p')
|
20
|
+
declare -a CentOsIPs=($tmpIP)
|
21
|
+
}
|
22
|
+
function project_name() {
|
23
|
+
repo=$( cd /opt/git/ && ls | grep .git )
|
24
|
+
name=${repo//${CentOsIPs[0]}/}
|
25
|
+
project=${name//.git/}
|
26
|
+
echo $project
|
27
|
+
}
|
28
|
+
echo
|
29
|
+
echo "Name: $( project_name )"
|
30
|
+
echo "External IP: ${CentOsIPs[0]}"
|
31
|
+
echo "Internal IP: ${CentOsIPs[1]}"
|
32
|
+
echo "Uptime: ${UPTIME}"
|
33
|
+
echo "Disk Usage: %$(get_hd_usage)"
|
34
|
+
echo "Git Repo: $(git_link)"
|
35
|
+
echo "Rails Project: /opt/web/current"
|
36
|
+
echo "Rails Logs: /opt/web/current/log"
|
37
|
+
echo "Nginx Logs: /var/log/nginx"
|
38
|
+
echo "Mysql Logs: /var/log/mysql"
|
39
|
+
echo "Mysql Info: /root/.my.cnf"
|
40
|
+
echo
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
service god restart
|
3
|
+
killall -u badger -s QUIT
|
4
|
+
sed -i "s/.*num_of_workers =.*/num_of_workers = $1/g" /etc/badger/core/files/god/angel/resque-stg.god
|
5
|
+
sed -i "s/.*num_of_workers =.*/num_of_workers = $1/g" /etc/badger/core/files/god/angel/resque.god
|
6
|
+
|
7
|
+
rsync /etc/badger/core/files/god/angel/resque-stg.god /home/badger/resque-stg.god
|
8
|
+
rsync /etc/badger/core/files/god/angel/resque-stg.god /home/badger/resque.god
|
9
|
+
sleep 1
|
10
|
+
if [ $2 == "staging" ]
|
11
|
+
then
|
12
|
+
su badger -c 'export PATH=/opt/ruby/bin:/opt/rubygems/bin:$PATH; export GEM_HOME=/opt/rubygems; sudo /opt/rubygems/bin/god load /etc/badger/core/files/god/angel/resque-stg.god'
|
13
|
+
else
|
14
|
+
su badger -c 'export PATH=/opt/ruby/bin:/opt/rubygems/bin:$PATH; export GEM_HOME=/opt/rubygems; sudo /opt/rubygems/bin/god load /etc/badger/core/files/god/angel/resque.god'
|
15
|
+
fi
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
rm -rf /opt/git/$1.git
|
3
|
+
echo $1
|
4
|
+
rm -rf /opt/tmp
|
5
|
+
rm -rf /opt/web
|
6
|
+
service nginx stop
|
7
|
+
killall -u redis
|
8
|
+
killall -u badger
|
9
|
+
[ "$(cat /etc/issue | egrep '(CentOS)|(Red\ Hat)')" ] && service mysqld stop
|
10
|
+
[ "$(cat /etc/issue | egrep '(Ubuntu)|(Debian)')" ] && service mysql stop
|
11
|
+
service god stop
|
12
|
+
cd /etc/badger/core/scripts/
|
13
|
+
chmod +x remove_gems
|
14
|
+
./remove_gems
|
15
|
+
cd /
|
16
|
+
|
17
|
+
iptables -F
|
18
|
+
iptables -A INPUT -i lo -j ACCEPT
|
19
|
+
iptables -A INPUT -i eth1 -j ACCEPT
|
20
|
+
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
|
21
|
+
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
|
22
|
+
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
|
23
|
+
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
|
24
|
+
|
25
|
+
rm -rf /etc/badger
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
rm -rf /opt/git/$1.git
|
3
|
+
echo $1
|
4
|
+
rm -rf /opt/tmp
|
5
|
+
rm -rf /opt/web
|
6
|
+
service nginx stop
|
7
|
+
killall -u redis
|
8
|
+
killall -u badger
|
9
|
+
[ "$(cat /etc/issue | egrep '(CentOS)|(Red\ Hat)')" ] && service mysqld stop
|
10
|
+
[ "$(cat /etc/issue | egrep '(Ubuntu)|(Debian)')" ] && service mysql stop
|
11
|
+
service god stop
|
12
|
+
cd /etc/badger/core/scripts/
|
13
|
+
chmod +x remove_gems
|
14
|
+
./remove_gems
|
15
|
+
cd /
|
16
|
+
|
17
|
+
iptables -F
|
18
|
+
iptables -A INPUT -i lo -j ACCEPT
|
19
|
+
iptables -A INPUT -i eth1 -j ACCEPT
|
20
|
+
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
|
21
|
+
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
|
22
|
+
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
|
23
|
+
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
|
24
|
+
|
25
|
+
rm -rf /etc/badger
|
26
|
+
rm -rf /root/.my.cnf
|
27
|
+
rm -rf /root/.badger.conf
|
28
|
+
yum -y remove mysql-server
|
29
|
+
apt-get -y remove mysql-server mysql-client
|
30
|
+
rm -rf /var/lib/mysql
|
@@ -0,0 +1,27 @@
|
|
1
|
+
config_badger() {
|
2
|
+
Exists /home/badger/.bashrc badger && return 0
|
3
|
+
groupadd badger
|
4
|
+
useradd -m badger -g badger
|
5
|
+
|
6
|
+
echo 'gem: --no-ri --no-rdoc' > /home/badger/.gemrc
|
7
|
+
echo 'gem: --no-ri --no-rdoc' > /root/.gemrc
|
8
|
+
echo 'badger ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers
|
9
|
+
echo 'Defaults env_keep="GEM_HOME"' >> /etc/sudoers
|
10
|
+
echo 'Defaults env_reset' >> /etc/sudoers
|
11
|
+
|
12
|
+
Dir /home/badger/ 700
|
13
|
+
echo 'badger added'
|
14
|
+
|
15
|
+
Dir /home/badger/.ssh 700
|
16
|
+
chown badger:badger /home/badger/.ssh
|
17
|
+
|
18
|
+
badger_pub_key=$(cat /root/.ssh/id_rsa.pub)
|
19
|
+
Sync /root/.ssh/id_rsa /home/badger/.ssh/id_rsa 700
|
20
|
+
chown badger:badger /home/badger/.ssh/id_rsa
|
21
|
+
|
22
|
+
Sync /root/.ssh/id_rsa.pub /home/badger/.ssh/id_rsa.pub 700
|
23
|
+
chown badger:badger /home/badger/.ssh/id_rsa.pub
|
24
|
+
|
25
|
+
echo $badger_pub_key >> /home/git/.ssh/authorized_keys
|
26
|
+
echo $badger_pub_key >> /home/badger/.ssh/authorized_keys
|
27
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
yum_bison() {
|
2
|
+
YumExists bison && return 0
|
3
|
+
yum -y install bison
|
4
|
+
}
|
5
|
+
|
6
|
+
yum_bison-devel() {
|
7
|
+
YumExists bison-devel && return 0
|
8
|
+
yum -y install bison-devel
|
9
|
+
}
|
10
|
+
|
11
|
+
apt_bison() {
|
12
|
+
Exists /usr/bin/bison && return 0
|
13
|
+
apt-get -y install bison
|
14
|
+
}
|
15
|
+
|
16
|
+
apt_libbison-dev() {
|
17
|
+
AptExists libbison-dev && return 0
|
18
|
+
wget https://github.com/downloads/curiousminds/packages/libbison-dev_2.5.dfsg-2.1_amd64.deb
|
19
|
+
dpkg -i libbison-dev_2.5.dfsg-2.1_amd64.deb
|
20
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
gem_capistrano-ext() {
|
2
|
+
GemExists capistrano-ext || return 0
|
3
|
+
gem install capistrano-ext
|
4
|
+
}
|
5
|
+
|
6
|
+
config_capistrano() {
|
7
|
+
Dir /opt/tmp/web 777
|
8
|
+
Dir /opt/web 744
|
9
|
+
chown badger:badger /opt/web || echo 'user badger web'
|
10
|
+
|
11
|
+
Dir /opt/web/shared 777
|
12
|
+
chown badger:badger /opt/web/shared || echo 'user badger shared'
|
13
|
+
|
14
|
+
Dir /opt/web/shared/log 777
|
15
|
+
chown badger:badger /opt/web/shared/log || echo 'user badger log'
|
16
|
+
|
17
|
+
Dir /opt/web/shared/pids 777
|
18
|
+
chown badger:badger /opt/web/shared/pids || echo 'user badger pids'
|
19
|
+
|
20
|
+
Sync /etc/badger/core/files/cap/Capfile /opt/tmp/web/Capfile
|
21
|
+
Sync /etc/badger/core/files/cap/deploy.rb /opt/tmp/web/config/deploy.rb
|
22
|
+
|
23
|
+
Dir /opt/tmp/web/config/deploy
|
24
|
+
Sync /etc/badger/core/files/cap/deploy/production.rb /opt/tmp/web/config/deploy/production.rb
|
25
|
+
Sync /etc/badger/core/files/cap/deploy/staging.rb /opt/tmp/web/config/deploy/staging.rb
|
26
|
+
|
27
|
+
Sync /etc/badger/core/files/cap/deploy/production-app.rb /opt/tmp/web/config/deploy/production-app.rb
|
28
|
+
Sync /etc/badger/core/files/cap/deploy/staging-app.rb /opt/tmp/web/config/deploy/staging-app.rb
|
29
|
+
cd /opt/tmp/web/
|
30
|
+
if [ -z "$2" ]
|
31
|
+
then
|
32
|
+
cap $1 deploy
|
33
|
+
else
|
34
|
+
cap $1 -s app_domain=$2 deploy
|
35
|
+
fi
|
36
|
+
}
|
37
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
yum_curl() {
|
2
|
+
YumExists libcurl && return 0
|
3
|
+
yum -y install libcurl
|
4
|
+
}
|
5
|
+
|
6
|
+
yum_curl-devel() {
|
7
|
+
YumExists libcurl-devel && return 0
|
8
|
+
yum -y install libcurl-devel
|
9
|
+
}
|
10
|
+
|
11
|
+
apt_curl() {
|
12
|
+
Exists /usr/bin/curl && return 0
|
13
|
+
apt-get -y install curl
|
14
|
+
}
|
15
|
+
|
16
|
+
apt_curl_openssl-dev() {
|
17
|
+
AptExists libcurl4-openssl-dev && return 0
|
18
|
+
apt-get -y install libcurl4-openssl-dev
|
19
|
+
}
|
20
|
+
|
21
|
+
apt_curl_gnutls-dev() {
|
22
|
+
AptExists libcurl4-gnutls-dev && return 0
|
23
|
+
apt-get -y install libcurl4-gnutls-dev
|
24
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
install_source_faac() {
|
2
|
+
Exists /usr/lib/libfaac.so libfaac && return 0
|
3
|
+
cd /usr/local/src
|
4
|
+
wget -q $GFPath/faac-1.28.tar.gz
|
5
|
+
tar -xzvf faac-1.28.tar.gz
|
6
|
+
rm -rf faac-1.28.tar.gz
|
7
|
+
cd faac-*
|
8
|
+
/usr/local/src/faac-1.28/bootstrap && ./configure --prefix=/usr --disable-mp4v2
|
9
|
+
make
|
10
|
+
make install
|
11
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
install_source_ffmpeg() {
|
2
|
+
Exists /usr/local/bin/ffmpeg && return 0
|
3
|
+
cd /usr/local/src
|
4
|
+
wget -q $GFPath/ffmpeg-0.8.3.tar.gz
|
5
|
+
tar -xzvf ffmpeg-0.8.3.tar.gz
|
6
|
+
rm -rf ffmpeg-0.8.3.tar.gz
|
7
|
+
cd ffmpeg-*
|
8
|
+
./configure --enable-libspeex --enable-gpl --enable-postproc --enable-nonfree --enable-postproc --enable-avfilter --enable-pthreads --enable-libxvid --enable-libx264 --enable-libmp3lame --enable-libfaac --disable-ffserver --disable-ffplay &&
|
9
|
+
make && make install &&
|
10
|
+
cat /etc/ld.so.conf | grep /usr/lib || echo /usr/lib >> /etc/ld.so.conf
|
11
|
+
/sbin/ldconfig
|
12
|
+
}
|
13
|
+
|
14
|
+
install_media_group() {
|
15
|
+
install_source_yasm
|
16
|
+
install_source_x264
|
17
|
+
install_source_lame
|
18
|
+
install_source_libmad
|
19
|
+
install_source_libid3tag
|
20
|
+
install_source_madplay
|
21
|
+
install_source_sox
|
22
|
+
install_source_faac
|
23
|
+
install_source_xvid
|
24
|
+
install_libogg
|
25
|
+
install_libogg-devel
|
26
|
+
install_source_libspeex
|
27
|
+
install_source_ffmpeg
|
28
|
+
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
firewall() {
|
2
|
+
case $1 in
|
3
|
+
web)
|
4
|
+
iptables -F
|
5
|
+
iptables -A INPUT -i lo -j ACCEPT
|
6
|
+
iptables -A INPUT -i eth1 -j ACCEPT
|
7
|
+
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
|
8
|
+
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
|
9
|
+
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
|
10
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
|
11
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 10 -j DROP
|
12
|
+
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
|
13
|
+
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
|
14
|
+
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
|
15
|
+
echo firewall up
|
16
|
+
;;
|
17
|
+
|
18
|
+
db)
|
19
|
+
iptables -F
|
20
|
+
iptables -A INPUT -i lo -j ACCEPT
|
21
|
+
iptables -A INPUT -i eth1 -j ACCEPT
|
22
|
+
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
|
23
|
+
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
|
24
|
+
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
|
25
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
|
26
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 10 -j DROP
|
27
|
+
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
|
28
|
+
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 6379 -j ACCEPT
|
29
|
+
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
|
30
|
+
echo firewall up
|
31
|
+
;;
|
32
|
+
|
33
|
+
app)
|
34
|
+
iptables -F
|
35
|
+
iptables -A INPUT -i lo -j ACCEPT
|
36
|
+
iptables -A INPUT -i eth1 -j ACCEPT
|
37
|
+
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
|
38
|
+
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
|
39
|
+
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
|
40
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
|
41
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 10 -j DROP
|
42
|
+
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
|
43
|
+
echo firewall up
|
44
|
+
;;
|
45
|
+
|
46
|
+
badger)
|
47
|
+
iptables -F
|
48
|
+
iptables -A INPUT -i lo -j ACCEPT
|
49
|
+
iptables -A INPUT -i eth1 -j ACCEPT
|
50
|
+
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
|
51
|
+
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
|
52
|
+
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
|
53
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
|
54
|
+
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 10 -j DROP
|
55
|
+
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
|
56
|
+
echo firewall up
|
57
|
+
;;
|
58
|
+
|
59
|
+
*)
|
60
|
+
echo 'you must specify a server (web||db||app)'
|
61
|
+
exit -99
|
62
|
+
;;
|
63
|
+
esac
|
64
|
+
}
|
65
|
+
|
66
|
+
add_fail2ban() {
|
67
|
+
fail2ban-client status && return 0
|
68
|
+
yum -y install fail2ban
|
69
|
+
fail2ban-client start
|
70
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
yum_git() {
|
2
|
+
Exists /usr/bin/git && return 0
|
3
|
+
yum -y install git
|
4
|
+
}
|
5
|
+
|
6
|
+
apt_git() {
|
7
|
+
Exists /usr/bin/git && return 0
|
8
|
+
apt-get -y install git-core
|
9
|
+
}
|
10
|
+
|
11
|
+
git_clone() {
|
12
|
+
Exists /opt/tmp/web/Capfile repo && return 0
|
13
|
+
git clone $(sed -n 1p /etc/badger/core/files/git/git) /opt/tmp/web
|
14
|
+
}
|
15
|
+
|
16
|
+
git_repo() {
|
17
|
+
Exists /opt/tmp/web/Capfile repo && return 0
|
18
|
+
cd /root
|
19
|
+
rsync --rsh="sshpass -p $(sed -n 1p /etc/badger/core/files/ssh/app) ssh -o StrictHostKeyChecking=no -l root" .ssh/id_rsa.pub $(sed -n 2p /etc/badger/core/files/ssh/app):/home/git/.ssh/app
|
20
|
+
sshpass -p $(sed -n 1p /etc/badger/core/files/ssh/app) ssh -o StrictHostKeyChecking=no root@$(sed -n 2p /etc/badger/core/files/ssh/app) 'cat /home/git/.ssh/authorized_keys | grep "$(cat /home/git/.ssh/app)" || echo $(cat /home/git/.ssh/app) >> /home/git/.ssh/authorized_keys'
|
21
|
+
repo=$(sshpass -p $(sed -n 1p /etc/badger/core/files/ssh/app) ssh root@$(sed -n 2p /etc/badger/core/files/ssh/app) 'sed -n 1p /etc/badger/core/files/git/git')
|
22
|
+
git clone $repo /opt/tmp/web
|
23
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
gem_god() {
|
2
|
+
Exists /opt/rubygems/bin/god && return 0
|
3
|
+
gem install god
|
4
|
+
}
|
5
|
+
|
6
|
+
config_god() {
|
7
|
+
workers=$[$(cat /proc/cpuinfo | grep processor | tail -1 | egrep "[0-9]{1,}" -o)+2]
|
8
|
+
|
9
|
+
sed -i "s/.*worker_processes.*/worker_processes $workers/g" /etc/badger/core/files/god/unicorn-stg.rb
|
10
|
+
sed -i "s/.*worker_processes.*/worker_processes $workers/g" /etc/badger/core/files/god/unicorn.rb
|
11
|
+
|
12
|
+
sed -i "s/.*num_of_workers =.*/num_of_workers = $workers/g" /etc/badger/core/files/god/angel/resque-stg.god
|
13
|
+
sed -i "s/.*num_of_workers =.*/num_of_workers = $workers/g" /etc/badger/core/files/god/angel/resque.god
|
14
|
+
|
15
|
+
Sync /etc/badger/core/files/god/god /etc/init.d/god 744
|
16
|
+
Service god
|
17
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
install_source_lame() {
|
2
|
+
Exists /usr/bin/lame && return 0
|
3
|
+
cd /usr/local/src/
|
4
|
+
wget -q http://downloads.sourceforge.net/lame/lame-3.98.4.tar.gz
|
5
|
+
tar -xzvf lame-3.98.4.tar.gz
|
6
|
+
rm -rf lame-3.98.4.tar.gz
|
7
|
+
cd lame-*
|
8
|
+
./configure --prefix=/usr/ && make && make install
|
9
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
install_source_libid3tag() {
|
2
|
+
Exists /usr/lib/libid3tag.so libid3tag && return 0
|
3
|
+
cd /usr/local/src
|
4
|
+
wget -q $GFPath/libid3tag-0.15.1b.tar.gz
|
5
|
+
tar -xzvf libid3tag-0.15.1b.tar.gz
|
6
|
+
rm -rf libid3tag-0.15.1b.tar.gz
|
7
|
+
cd libid3tag-*
|
8
|
+
./configure --prefix=/usr &&
|
9
|
+
make && make install
|
10
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
install_source_libmad() {
|
2
|
+
Exists /usr/lib/libmad.so libmad && return 0
|
3
|
+
cd /usr/local/src
|
4
|
+
wget -q $GFPath/libmad-0.15.1b.tar.gz
|
5
|
+
tar -xzvf libmad-0.15.1b.tar.gz
|
6
|
+
rm -rf libmad-0.15.1b.tar.gz
|
7
|
+
cd libmad-*
|
8
|
+
sed -i '/-fforce-mem/d' configure &&
|
9
|
+
./configure --prefix=/usr &&
|
10
|
+
make && make install
|
11
|
+
}
|