Jenkins構築方法

参考にした本

改訂新版Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

OSにインストール

OpenJDKのインストール

appadm@ik1-305-12942 ~]$ sudo yum install java-1.7.0-openjdk

JenkinsのRPMパッケージの公開鍵のインポート(目的わからず。。

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

Jenkisのインストール

sudo yum install jenkins

Jenkinsのデーモン起動

sudo /sbin/service jenkins start

次回もちゃんと起動する?

Firewallの設定

cd /etc/sysconfig/
vi iptables
-A INPUT -p tcp --dport 8080   -j ACCEPT
service iptables restart

f:id:kenta_everyday:20170220214455p:plain

JAVA_HOMEの設定

JAVAの場所を調べる

[appadm@ik1-305-12942 /]$ readlink $(readlink $(which java))
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
source /etc/profile

つまづいた箇所(javacがない。。。)

後のJDKの設定でうまく行かなかった箇所を記載。
javacがなくてつまずく。。。
参考にさせてもらったサイト
http://dev.classmethod.jp/cloud/aws/java8_tomcat8_on_amazon_linux/
openjdkの中身はjreなのでjavacは入っていないんだとか。。。

sudo yum -y install java-1.7.0-openjdk-devel

javacを入れるとjenkinsのjdkの設定が通るようになった!

Jenkinsの初期設定

以下、WEBからJenkinsの設定をする。

JDKの設定

名前とJAVA_HOMEのパスを設定する。
JAVA_HOMEのパスを設定する際にjavacがないとエラーが出る。

ANTの設定

まだ未設定。。

CVSの設定

Cvs Root
XXX.XXX.XXX.XXX:/home/xxxxxx/cvs/cvsroot

ジョブを作る

現在、CVSからのチェックアウトまで自動化OK

ソースコード管理の設定

CVSを選択してCVSROOTを以下の形式で設定する。

:pserver:user@XXX.XXX.XXX.XXX:/home/user/cvs/cvsroot

This Connection Requires A Passwordでパスワードを入れておく。
LocationでHead,Branch,Tagのどれかを選択する。
ModulesでRemote Name(CVS上のプロジェクトの名前?)Local Name(チェックアウトしてきた時の名前)を設定する。

ビルドの設定

まだ未設定。ANTでビルドする予定だけど。

結果確認

現状はチェックアウトまではできていて、以下のworkspace配下にジョブ単位で作成される。
/var/lib/jenkins/workspace/b
それぞれ資源はチェックアウトされる。

Jenkinsを使用しての感想

小規模のシステム開発であれば使用できそう。
長期のマージが必要なプロジェクトの場合は、マージするように移行用の端末での操作が必要そう。
チェックアウトする必要があるのでDiskの容量を追加する必要がある。
ジョブ名が被ることはあるのかな?
ジョブ名の命名規則がないと、わからなくなりそう。
ジョブをたくさん記載するのが手間になるかも。でも、ライブラリアンは不要にはなるけど。
→でも、ANTがあればいらないか?
設定をテンプレート化して配置出来る仕組みってないのかな?
チェックアウトしてきた資源は上書き?
現状さくらの設定でメールが送信できない。
クラスパスの設定とかは?
英語のエラーログが読めないバカだと無理。
javaコンパイラ

f:id:kenta_everyday:20170220214950p:plain

CVSのtag削除

1.CVSROOTの設定
CVSROOT=/home/appadm/cvs/cvsroot
cvs init
2.資源のチェックアウト( Existing Tags:a を削除したい
[appadm@www15195ui testcvs]$ cvs checkout check_excel_table
cvs checkout: Updating check_excel_table
・
・
・
[appadm@www15195ui testcvs]$ cvs status -v check_excel_table
cvs status: Examining check_excel_table
===================================================================
File: .classpath        Status: Up-to-date

   Working revision:    1.2     Fri Nov 22 15:46:05 2013
   Repository revision: 1.2     /home/appadm/cvs/cvsroot/check_excel_table/.classpath,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

   Existing Tags:
        a                               (revision: 1.2)
3.タグを削除( Existing Tags:a を削除したい
[appadm@www15195ui testcvs]$ cvs tag -d a check_excel_table
cvs tag: Untagging check_excel_table
D check_excel_table/.classpath

cvs status: Examining check_excel_table
===================================================================
File: .classpath        Status: Up-to-date

   Working revision:    1.2     Fri Nov 22 15:46:05 2013
   Repository revision: 1.2     /home/appadm/cvs/cvsroot/check_excel_table/.classpath,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

   Existing Tags:
        check_excel_table_20150913      (revision: 1.2)
4.Eclipse上のビューから削除するにはローカルのxmlからの削除が必要

参考:http://www.deftrash.com/blog/archives/2008/10/eclipsecvs.html

サーバ上でタグを削除しただけでは、Eclipseへの反映はされない。
Eclipse上から削除するためには、以下のファイルから削除する必要がある。
C:\eclipse\workspace\.metadata\.plugins\org.eclipse.team.cvs.ui\repositoriesView.xml

<?xml version="1.0" encoding="UTF-8"?>
<repositories-view>
	<repository id=":pserver:appadm@133.242.188.209:/home/appadm/cvs/cvsroot">
		<module path="javashiken" lastAcessTime="1442130617072">
		</module>
		<module path="check_excel_table" lastAcessTime="1442130632747">
ここにある情報を削除すると→
Eclipseに表示されない
		</module>
	</repository>
	<repository id=":pserver:appadm@192.168.11.10:/home/appadm/CVS/CVSROOT">
		<date-tags id=":pserver:appadm@192.168.11.10:/home/appadm/CVS/CVSROOT">
			<date-tag name="09 Aug 2013 08:29:36 +0000" type="date"/>
			<date-tag name="09 Aug 2013 09:29:50 +0000" type="date"/>
		</date-tags>
	</repository>
</repositories-view>

CVSコマンド色々

CSVのコマンドの省略形がわかる
cvs --help-synonyms


[appadm@www15195ui src]$ cvs --help-options
CVS global options (specified before the command name) are:
-H Displays usage information for command.
-Q Cause CVS to be really quiet.
-q Cause CVS to be somewhat quiet.
-r Make checked-out files read-only.
-w Make checked-out files read-write (default).
-n Do not execute anything that will change the disk.
-t Show trace of program execution -- try with -n.
-v CVS version and copyright.
-T tmpdir Use 'tmpdir' for temporary files.
-e editor Use 'editor' for editing log information.
-d CVS_root Overrides $CVSROOT as the root of the CVS tree.
-f Do not use the ~/.cvsrc file.
-z # Use compression level '#' for net traffic.
-x Encrypt all net traffic.
-a Authenticate all net traffic.
-4 Use IPv4.
-6 Use IPv6.
-s VAR=VAL Set CVS user variable.
(Specify the --help option for a list of other help options)


www15195ui src]$ cvs --help
Usage: cvs [cvs-options] command [command-options-and-arguments]
where cvs-options are -4, -6,-q, -n, etc.
(specify --help-options for a list of options)
where command is add, admin, etc.
(specify --help-commands for a list of commands
or --help-synonyms for a list of command synonyms)
where command-options-and-arguments depend on the specific command
(specify -H followed by a command name for command-specific help)
Specify --help to receive this message

The Concurrent Versions System (CVS) is a tool for version control.
For CVS updates and additional information, see
the CVS home page at http://cvs.nongnu.org/

Gitに関して参考になるページ

GitとGitHubを覚えよう

localに、remoteリポジトリーの名前をaddする。(hostsみたいなイメージ)

git remote add REPOSITORY_NAME git@github.com:xxxxxxxxx/AAAAA.git

決めたリモートリポジトリーのブランチに、pushする

git push -u REPOSITORY_NAME branch

JIRAのインストール

1. JAVA(JDK)のインストール
Java SE Development Kit 7 - Downloads | Oracle Technology Network | Oracle

Linux x64 jdk-7u45-linux-x64.rpmをダウンロードして、scp(rootユーザ)で/optに配置する。

[root@localhost opt]# rpm -ivh jdk-7u45-linux-x64.rpm
準備中...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
        rt.jar...
        jsse.jar...
        charsets.jar...
        tools.jar...
        localedata.jar...
        jfxrt.jar...

.bashrcにJavaの設定を追加

# JAVA
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH

2. JIRAのインストール
Download JIRA | Atlassian

All JIRA Download OptionsからJIRA 6.1.3 (TAR.GZ Archive)を選択してダウンロードする.
gunzipしてtarを展開する。

[root@localhost opt]# gunzip atlassian-jira-6.1.3.tar.gz
[root@localhost opt]# tar xf atlassian-jira-6.1.3.tar

展開したディレクトリをjiraとリネームして/usr/local/下に配置。
/usr/local/jira/atlassian-jira/WEB-INF/classes/jira-application.propertiesを編集する

jira.home = /var/local/jira_home

マルチバイト文字への対応・ポートの変更(8080から8085に変更)*8080は使用してるので。

/usr/local/jira/conf/server.xmlを編集する

        <Connector port="8085"

                   URIEncoding="UTF-8"
                   maxThreads="150"
                   minSpareThreads="25"
                   connectionTimeout="20000"

オラクルドライバーの配置
/JIRA_INSTALL/libの下にオラクルドライバーのjarを配置する

Oracle Database 11g Release 1 JDBCドライバ

/etc/rc.d/init.d/jiraを作成する。

#!/bin/bash
#
# chkconfig: 345 85 15
# description: jira
# processname: jira
# source function library

. /etc/init.d/functions

CATALINA_HOME=/usr/local/jira
USER=root

RETVAL=0

start() {
        echo -n $"Starting jira services: "
        su - $USER -c "$CATALINA_HOME/bin/catalina.sh start"
        RETVAL=$?
        echo
}

stop() {
        echo -n $"Shutting down jira services: "
        su - $USER -c "$CATALINA_HOME/bin/catalina.sh stop"
        RETVAL=$?
        echo
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart|reload)
                stop
                start
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart}"
                exit 1
esac
exit $RETVAL
[root@localhost init.d]# chmod 775 jira