※もくじはこちら

### 概要 CentOS上に、Play Framework2 on JavaのCI環境を構築していきます。
長くなるので分割で。

#### 登場人物
  • Play Framework 2.2
  • Jenkins(Jenkins.war)
  • Git
  • CentOS 6.4 i386
### 手順その④:CI環境の準備
#### Jenkinsのダウンロードと起動確認 ```sh ciuser$ wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war ciuser$ java -jar jenkins.war
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20

</div>
<div class="section">
    #### Jenkins.warをサービスとして起動・終了するスクリプトの作成
    ```sh
ciuser$ vim start-jenkins.sh
#!/bin/bash
JENKINS_WAR=~/jenkins.war
JENKINS_LOG=~/logs/jenkins.log
nohup java -jar $JENKINS_WAR > $JENKINS_LOG 2>&amp;1 &amp;

``````sh
ciuser$ vim stop-jenkins.sh
#!/bin/bash
kill `ps ax | grep &#39;[j]enkins.war&#39; | awk &#39;{ print $1 }&#39;`

``````sh
ciuser$ mkdir logs
ciuser$ chmod +x start-jenkins.sh stop-jenkins.sh

#### ciuserから各WEBアプリケーション起動ユーザへの接続設定 デプロイにsshとscpを使用するため、ciuserのssh鍵を各アプリケーション起動ユーザへ転送するciuserの公開鍵を /home/playapp/.ssh へコピーし、権限設定 ```sh root$ mkdir /home/playapp/.ssh/ root$ cp /home/ciuser/.ssh/id_rsa.pub /home/playapp/.ssh/authorized_keys root$ chown -R playapp:playapp /home/playapp/.ssh/ root$ chmod 600 /home/playapp/.ssh/authorized_keys root$ chmod 700 /home/playapp/.ssh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<br/>


</div>
<div class="section">
    #### Playアプリケーションをサービスとして起動・終了するスクリプトの作成
    各WEBアプリケーション起動ユーザごとに作成
```sh
playapp$ vim start-play.sh
#!/bin/bash
LOGDIR=$HOME/logs
LOGFILE=$LOGDIR/play.log
PLAY_CONF=production.conf
PLAY_PORT=9001

mkdir -p $LOGDIR
nohup $HOME/deploy/bin/playapp -Dconfig.resource=$PLAY_CONF -Dhttp.port=$PLAY_PORT > $LOGFILE 2>&amp;1 &amp;

RESULT=9
for i in {0..10};
do
    if [ $RESULT -eq 9 ] ; then
        sleep 2
    fi
    grep &#39;Listening for HTTP&#39; $LOGFILE > /dev/null
    if [ $? -eq 0 ] ; then
        RESULT=0
    fi
    grep &#39;Exception&#39; $LOGFILE > /dev/null
    if [ $? -eq 0 ] ; then
        RESULT=1
    fi
done
if [ $RESULT -ne 0 ] ; then
    bash -v $HOME/stop-play.sh
fi
cat $LOGFILE

exit $RESULT

``````sh
playapp$ vim stop-play.sh
#!/bin/bash
PIDFILE=$HOME/deploy/RUNNING_PID
if [ -r $PIDFILE ] ; then
    kill `cat $PIDFILE`
fi

```start-play.shの、ユーザごとの変数設定について

<ul>
<li>playapp
<ul>
<li>PLAY_CONF=production.conf</li>
<li>PLAY_PORT=9001</li>
</ul></li>
<li>playapp.master
<ul>
<li>PLAY_CONF=production.conf</li>
<li>PLAY_PORT=9011</li>
</ul></li>
<li>playapp.develop
<ul>
<li>PLAY_CONF=develop.conf</li>
<li>PLAY_PORT=9012</li>
</ul></li>
</ul>Play起動スクリプトがあまりスマートでない。 <br/>
次回へ続く<br/>
<br/>


</div>
</div>
<div class="section">
    ### 参考URL
    
<ul>
<li>Jenkins起動スクリプト
<ul>
<li><a href="http://www.cat-ears.net/?p=276">http://www.cat-ears.net/?p=276</a></li>
</ul></li>
</ul>
</div>