KanonConductor

view kanon-setup @ 62:09529a4bfbee

fixed failed httpd start with CentOS 5.5(fixed #31).
author chris
date Thu, 30 Jun 2011 08:34:48 +0900
parents 439301ff4834
children 4ef8f593a8f4
line source
2 #!/bin/bash
4 export KANON_OPT=/opt/kanon
5 export KANON_VAR=/var/opt/kanon
7 if [ -f /etc/debian_version ]
8 then
9 OS='debian'
10 APACHE_USER=www-data
11 echo "Debian / Ubuntu が検出されました。"
12 elif [ -f /etc/redhat-release ]
13 then
14 APACHE_USER=apache
15 CHK=`egrep "CentOS release 5|Red Hat Enterprise Linux .* 5" /etc/redhat-release`
16 if [ "$CHK" != '' ]
17 then
18 OS='rhel5'
19 echo "RHEL 5.x / CentOS 5.x / OEL 5.xが検出されました。"
20 else
21 OS='rhel6'
22 echo "RHEL 6.x / CentOS 6.x / OEL 6.xが検出されました。"
23 fi
24 else
25 echo "サポートされていないOSです。"
26 echo "現在サポートされいているOSは、"
27 echo ""
28 echo " * Ubuntu 10.10 Server"
29 echo " * Debian GNU/Linux, GNU/kFreeBSD 6.0"
30 echo " * RedHat Enterprise Linux 6.0"
31 echo " * Oracle Enterprise Linux 6.0"
32 echo " * CentOS 5.x (Experimental)"
33 echo ""
34 echo "です。"
35 exit
36 fi
38 if [ "$USER" != 'root' ]
39 then
40 echo "rootでコマンドを実行してください。"
41 fi
44 if [ -d /opt/kanon ]
45 then
46 echo "=========================================================================="
47 echo "注意!! このマシンには既にKanonがインストールされているかも。確認してね♪"
48 echo "=========================================================================="
49 fi
50 echo ""
51 echo "このコマンドはKanonをインストールするよ。"
52 echo "既にkanonインストールされている場合は、上書きされて消えちゃうの。"
53 echo -n "Kanonをインストールする?(y/n) "
54 read YN
56 if [ "$YN" != "y" ]
57 then
58 echo "インストールを中断したよ。"
59 exit
60 fi
62 ### ask install maven
63 echo ""
64 echo "KanonではJava開発のためのビルドツールとてMavenをインストールして"
65 echo "利用することができます。ユーザが個別にインストールしたMavenを利用することもできますが、"
66 echo "ここでインストールするとJenkinsのデモを設定なしに利用することができます。"
67 echo -n "Mavenをインストールしますか?(y/n) "
68 read YN
70 if [ "$YN" = "y" ]
71 then
72 MAVEN=y
73 fi
75 ### ask install jenkins
76 echo ""
77 echo "Kanonは継続的インテグレーションツール(CIツール)として"
78 echo "Jenkinsを統合して使うことができます。"
79 echo -n "Jenkinsをインストールしますか?(y/n) "
80 read YN
82 if [ "$YN" = "y" ]
83 then
84 JENKINS=y
85 fi
88 ### install ubuntu package
89 case $OS in
90 debian)
91 apt-get update
92 apt-get -y install `cat pkglist.debian`
93 ;;
94 rhel6)
95 yum -y install `cat pkglist.rhel6`
96 ;;
97 rhel5)
98 # Add EPEL Repository. For python26, python26-devel, python26-mod_wsgi.
99 EPEL_RPM_URL="http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm"
100 wget $EPEL_RPM_URL
101 rpm -Uvh epel-release-5-4.noarch.rpm
102 rm -f epel-release-5-4.noarch.rpm
103 yum --enablerepo=epel -y install `cat pkglist.rhel5`
105 # Add Kanon Repository. For Subversion 1.6 with Python26.
106 cp -f resource/kanon.repo /etc/yum.repos.d/kanon.repo
107 yum --enablerepo=kanon -y install subversion-1.6.15 mod_dav_svn-1.6.15
108 ;;
109 *)
110 ;;
111 esac
113 ### install jenkins
114 if [ "$JENKINS" = 'y' ]
115 then
116 case $OS in
117 debian)
118 wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
119 CHK=`grep "http://pkg.jenkins-ci.org/debian" /etc/apt/sources.list.d/jenkins.list`
120 if [ "$CHK" = '' ]
121 then
122 echo "deb http://pkg.jenkins-ci.org/debian binary/" > /etc/apt/sources.list.d/jenkins.list
123 fi
124 apt-get update
125 apt-get -y install jenkins openjdk-6-jdk
126 CHK=`grep prefix "/etc/default/jenkins"`
127 if [ "$CHK" = '' ]
128 then
129 cat /etc/default/jenkins |sed 's/JENKINS_ARGS="/JENKINS_ARGS="--prefix=\/jenkins /' > /tmp/jenkins_config
130 mv -f /tmp/jenkins_config /etc/default/jenkins
131 fi
132 JENKINS_OWN=jenkins.nogroup
133 ;;
134 rhel5|rhel6)
135 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
136 yum -y --nogpgcheck install jenkins java-1.6.0-openjdk-devel
137 CHK=`grep prefix "/etc/sysconfig/jenkins"`
138 if [ "$CHK" = '' ]
139 then
140 cat /etc/sysconfig/jenkins |sed 's/JENKINS_ARGS=""/JENKINS_ARGS="--prefix=\/jenkins"/' > /tmp/jenkins_config
141 mv -f /tmp/jenkins_config /etc/sysconfig/jenkins
142 fi
143 JENKINS_OWN=jenkins.jenkins
144 ;;
145 *)
146 ;;
147 esac
149 if [ ! -f /var/jenkins/kanon.install ]
150 then
151 cp -fr resource/jenkins-config/* /var/lib/jenkins/
152 chown $JENKINS_OWN -R /var/lib/jenkins
153 fi
155 service jenkins restart
156 fi
158 ### install apache maven
159 if [ "$MAVEN" = 'y' ]
160 then
161 wget -O /tmp/maven.tgz http://ftp.riken.jp/net/apache//maven/binaries/apache-maven-3.0.3-bin.tar.gz
162 pushd .
163 cd /tmp
164 tar zxf maven.tgz
165 if [ ! -d /opt/maven ]
166 then
167 mkdir /opt/maven
168 fi
170 cp -fr apache-maven-3.?.?/* /opt/maven/
171 rm -fr apache-maven-3.?.?
173 popd
174 fi
176 ### install files
177 cp -fr opt/* /opt
178 if [ "$OS" = "rhel5" ]
179 then
180 # FIXME CentOS 5.x では n オプションがないため 強制上書きになってしまう.
181 cp -fr etc/* /etc
182 else
183 cp -frn etc/* /etc
184 fi
187 ### setup configuration
188 python2.6 resource/virtualenv.py /opt/kanon
189 source /opt/kanon/bin/activate
191 ## setup sitecustomize for python
192 if [ -f /etc/python2.6/sitecustomize.py ]
193 then
194 CHK=`grep "setdefaultencoding" /etc/python2.6/sitecustomize.py`
195 if [ "$CHK" = '' ]
196 then
197 cat opt/kanon/lib/python2.6/site-packages/sitecustomize.py >> /etc/python2.6/sitecustomize.py
198 fi
199 fi
202 if [ "$OS" = "rhel5" ]
203 then
204 # Install Extra Package for CentOS 5.X
205 easy_install "mercurial==1.7.3"
206 easy_install bzr
207 easy_install pygments
208 fi
210 easy_install http://svn.edgewall.org/repos/genshi/tags/0.6.0/
211 easy_install http://ftp.edgewall.com/pub/babel/Babel-0.9.5.zip
212 easy_install http://www.i-act.co.jp/project/products/downloads/Trac-0.12.2.ja1.zip
213 easy_install xlrd
214 easy_install https://github.com/hvr/trac-git-plugin/zipball/v0.12.0.5
215 bzr co lp:trac-bzr /tmp/trac-bzr-install
216 easy_install /tmp/trac-bzr-install
217 rm -fr /tmp/trac-bzr-install
220 ### install trac plugins
221 easy_install http://svn.edgewall.com/repos/trac/plugins/0.12/mercurial-plugin
223 #resource/pluginsディレクトリのプラグインをインストール
224 pushd .
226 cd resource/trac-plugins
227 for i in `ls -1 .`
228 do
229 cd $i;python setup.py install
230 cd ..
231 done
232 cd ../..
234 # install plugins from web site
235 rm -fr /tmp/kanon_build
236 for i in `cat pluginlist`
237 do
238 cd /tmp
239 svn co $i kanon_build
240 cd kanon_build
241 python setup.py install
242 cd ..
243 rm -fr kanon_build
244 done
245 popd
248 ### setup apache and restart
249 case $OS in
250 debian)
251 cp resource/trac_hook.py /usr/lib/python2.6/dist-packages/bzrlib/plugins
252 if [ ! -f /etc/apache2/sites-available/kanon ]
253 then
254 cp resource/httpd.conf /etc/apache2/sites-available/kanon
255 cp resource/httpd-vcs.conf /etc/apache2/sites-available/vcs
256 fi
257 a2enmod expires
258 a2enmod auth_digest
259 a2enmod dav_fs
260 a2enmod proxy_http
261 a2ensite kanon
262 a2ensite vcs
263 service apache2 stop
264 service apache2 start
265 ;;
266 rhel5|rhel6)
267 if [ $OS = 'rhel5' ]
268 then
269 mkdir -p /var/opt/kanon/trac/.egg-cache
270 chown $APACHE_USER:$APACHE_USER -R /var/opt/kanon/trac/.egg-cache/
271 fi
272 mkdir -p /usr/lib/python2.6/site-packages/bzrlib/plugin
273 cp resource/trac_hook.py /usr/lib/python2.6/site-packages/bzrlib/plugin
274 if [ ! -f /etc/httpd/conf.d/kanon.conf ]
275 then
276 cp resource/httpd.conf /etc/httpd/conf.d/kanon.conf
277 cp resource/httpd-vcs.conf /etc/httpd/conf.d/vcs.conf
278 fi
279 echo 0 > /selinux/enforce
280 CHK=`grep SELINUX=enforcing /etc/selinux/config`
281 if [ ! "$CHK" = '' ]
282 then
283 cat /etc/selinux/config |sed 's/SELINUX=enforcing/SELINUX=disabled/' > /tmp/selinux_config
284 mv /tmp/selinux_config /etc/selinux/config
285 fi
286 echo "SELinuxが無効化されました"
287 service httpd stop
288 service httpd start
289 ;;
290 *)
291 ;;
292 esac
295 # データディレクトリが存在しない場合作成
296 if [ ! -d "$KANON_VAR/trac" ]
297 then
298 mkdir -p "$KANON_VAR/trac"
299 fi
301 if [ ! -d "$KANON_VAR/hg" ]
302 then
303 mkdir -p "$KANON_VAR/hg"
304 fi
306 if [ ! -d "$KANON_VAR/bzr" ]
307 then
308 mkdir -p "$KANON_VAR/bzr"
309 fi
311 if [ ! -d "$KANON_VAR/svn" ]
312 then
313 mkdir -p "$KANON_VAR/svn"
314 fi
316 if [ ! -d "$KANON_VAR/git" ]
317 then
318 mkdir -p "$KANON_VAR/git"
319 fi
321 # setup SampleProject
322 if [ ! -d "$KANON_VAR/trac/SampleProject" ]
323 then
324 /opt/kanon/bin/kanon-create-project SampleProject svn default y
325 svn import SampleProject file:///var/opt/kanon/svn/SampleProject/ -m "initial import."
326 chown $APACHE_USER.$APACHE_USER -R /var/opt/kanon/svn/SampleProject
327 fi
329 chown $APACHE_USER.$APACHE_USER -R /etc/opt/kanon
331 echo "Kanon Team Conductorのインストールが完了しました。"
332 echo $KANON_OPT"/bin/kanon-create-project コマンドでプロジェクトを作成してください。"