KanonConductor

view kanon-setup @ 68:803f7b41dfdf

fixed installer broken for CentOS5.
author okamototk
date Wed, 02 Nov 2011 06:36:47 +0900
parents 2e944b83b5f6
children 3770758d54e5
line source
1 #!/bin/bash
3 export KANON_OPT=/opt/kanon
4 export KANON_VAR=/var/opt/kanon
6 if [ -f /etc/debian_version ]
7 then
8 OS='debian'
9 APACHE_USER=www-data
10 echo "Debian / Ubuntu が検出されました。"
11 elif [ -f /etc/redhat-release ]
12 then
13 APACHE_USER=apache
14 CHK=`egrep "CentOS release 5|Red Hat Enterprise Linux .* 5" /etc/redhat-release`
15 if [ "$CHK" != '' ]
16 then
17 OS='rhel5'
18 echo "RHEL 5.x / CentOS 5.x / OEL 5.xが検出されました。"
19 else
20 OS='rhel6'
21 echo "RHEL 6.x / CentOS 6.x / OEL 6.xが検出されました。"
22 fi
23 else
24 echo "サポートされていないOSです。"
25 echo "現在サポートされいているOSは、"
26 echo ""
27 echo " * Ubuntu 10.10 Server"
28 echo " * Debian GNU/Linux, GNU/kFreeBSD 6.0"
29 echo " * RedHat Enterprise Linux 6.0"
30 echo " * Oracle Enterprise Linux 6.0"
31 echo " * CentOS 5.x (Experimental)"
32 echo ""
33 echo "です。"
34 exit
35 fi
37 if [ "$USER" != 'root' ]
38 then
39 echo "rootでコマンドを実行してください。"
40 fi
43 if [ -d /opt/kanon ]
44 then
45 echo "=========================================================================="
46 echo "注意!! このマシンには既にKanonがインストールされているかも。確認してね♪"
47 echo "=========================================================================="
48 fi
49 echo ""
50 echo "このコマンドはKanonをインストールするよ。"
51 echo "既にkanonインストールされている場合は、上書きされて消えちゃうの。"
52 echo -n "Kanonをインストールする?(y/n) "
53 read YN
55 if [ "$YN" != "y" ]
56 then
57 echo "インストールを中断したよ。"
58 exit
59 fi
61 ### ask install maven
62 echo ""
63 echo "KanonではJava開発のためのビルドツールとてMavenをインストールして"
64 echo "利用することができます。ユーザが個別にインストールしたMavenを利用することもできますが、"
65 echo "ここでインストールするとJenkinsのデモを設定なしに利用することができます。"
66 echo -n "Mavenをインストールしますか?(y/n) "
67 read YN
69 if [ "$YN" = "y" ]
70 then
71 MAVEN=y
72 fi
74 ### ask install jenkins
75 echo ""
76 echo "Kanonは継続的インテグレーションツール(CIツール)として"
77 echo "Jenkinsを統合して使うことができます。"
78 echo -n "Jenkinsをインストールしますか?(y/n) "
79 read YN
81 if [ "$YN" = "y" ]
82 then
83 JENKINS=y
84 fi
87 ### install ubuntu package
88 case $OS in
89 debian)
90 apt-get update
91 apt-get -y install `cat pkglist.debian`
92 ;;
93 rhel6)
94 yum -y install `cat pkglist.rhel6`
95 ;;
96 rhel5)
97 # Add EPEL Repository. For python26, python26-devel, python26-mod_wsgi.
98 EPEL_RPM_URL="http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm"
99 wget $EPEL_RPM_URL
100 rpm -Uvh epel-release-5-4.noarch.rpm
101 rm -f epel-release-5-4.noarch.rpm
102 yum --enablerepo=epel -y install `cat pkglist.rhel5`
104 # Add Kanon Repository. For Subversion 1.6 with Python26.
105 cp -f resource/kanon.repo /etc/yum.repos.d/kanon.repo
106 yum -y remove subversion-1.4.2
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 sed s/\%APACHE_USER\%/$APACHE_USER/g 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 mkdir -p /var/www/.python-eggs
271 chown $APACHE_USER:$APACHE_USER -R /var/opt/kanon/trac/.egg-cache/
272 chown $APACHE_USER:$APACHE_USER -R /var/www/.python-eggs
273 fi
274 mkdir -p /usr/lib/python2.6/site-packages/bzrlib/plugin
275 cp resource/trac_hook.py /usr/lib/python2.6/site-packages/bzrlib/plugin
276 if [ ! -f /etc/httpd/conf.d/kanon.conf ]
277 then
278 sed s/\%APACHE_USER\%/$APACHE_USER/g resource/httpd.conf > /etc/httpd/conf.d/kanon.conf
279 cp resource/httpd-vcs.conf /etc/httpd/conf.d/vcs.conf
280 fi
281 echo 0 > /selinux/enforce
282 CHK=`grep SELINUX=enforcing /etc/selinux/config`
283 if [ ! "$CHK" = '' ]
284 then
285 cat /etc/selinux/config |sed 's/SELINUX=enforcing/SELINUX=disabled/' > /tmp/selinux_config
286 mv /tmp/selinux_config /etc/selinux/config
287 fi
288 echo "SELinuxが無効化されました"
289 service httpd stop
290 service httpd start
291 ;;
292 *)
293 ;;
294 esac
297 # データディレクトリが存在しない場合作成
298 if [ ! -d "$KANON_VAR/trac" ]
299 then
300 mkdir -p "$KANON_VAR/trac"
301 fi
303 if [ ! -d "$KANON_VAR/hg" ]
304 then
305 mkdir -p "$KANON_VAR/hg"
306 fi
308 if [ ! -d "$KANON_VAR/bzr" ]
309 then
310 mkdir -p "$KANON_VAR/bzr"
311 fi
313 if [ ! -d "$KANON_VAR/svn" ]
314 then
315 mkdir -p "$KANON_VAR/svn"
316 fi
318 if [ ! -d "$KANON_VAR/git" ]
319 then
320 mkdir -p "$KANON_VAR/git"
321 fi
323 # setup SampleProject
324 if [ ! -d "$KANON_VAR/trac/SampleProject" ]
325 then
326 /opt/kanon/bin/kanon-create-project SampleProject svn default y
327 svn import SampleProject file:///var/opt/kanon/svn/SampleProject/ -m "initial import."
328 chown $APACHE_USER.$APACHE_USER -R /var/opt/kanon/svn/SampleProject
329 fi
331 chown $APACHE_USER.$APACHE_USER -R /etc/opt/kanon
333 echo "Kanon Team Conductorのインストールが完了しました。"
334 echo $KANON_OPT"/bin/kanon-create-project コマンドでプロジェクトを作成してください。"