1. システム構成情報:
CIサーバー(Jenkins+SVN): 192.168.71.142
開発環境サーバー: 192.168.71.145
本番環境サーバー: 192.168.71.148
OS: CentOS 7.5
Apache Maven 3.5
Apache Tomcat 8
Oracle JDK 1.8
Jenkins 2.7
Docker Community Edition 17.06
2. SVNリポジトリのセットアップ手順:
# yum -y install subversion
# mkdir /home/svn_storage
# svnadmin create /home/svn_storage/project_repo
# vi /home/svn_storage/project_repo/conf/svnserve.conf
anonymous_access = none
authenticated_access = write
password_file = passwords
authorization_file = authorization
# vi /home/svn_storage/project_repo/conf/passwords
[user_list]
developer_user = secure_password
# vi /home/svn_storage/project_repo/conf/authorization
[project_repo:/]
developer_user = rw
# svnserve -d -r /home/svn_storage
リポジトリURL: svn://192.168.71.142/project_repo
上記設定後、クライアントからリポジトリURL svn://192.168.71.142/project_repo にアクセス可能です。
ユーザ名: developer_user
パスワード: secure_password
3. Dockerプライベートレジストリの構築
docker run -d \
-v /opt/private_registry:/var/lib/registry \
-p 5000:5000 \
--restart=unless-stopped \
--name private_registry \
registry
デプロイメントノードでDockerの信頼済みプライベートレジストリを設定:
# vim /etc/docker/daemon.json
{"registry-mirrors": ["http://04be47cf.m.daocloud.io"],"insecure-registries":["192.168.71.142:5000"]}
systemctl daemon-reload
systemctl restart docker
ベースイメージをプライベートレジストリへプッシュ:
# docker build -t 192.168.71.142:5000/app-frontend:base .
# docker build -t 192.168.71.142:5000/app-backend:base .
# docker push 192.168.71.142:5000/app-frontend:base
# docker push 192.168.71.142:5000/app-backend:base
4. デプロイメントノードへのDocker・Docker-Composeインストールと権限設定
1.Docker-ceのインストール
# Docker-ceの公式ドキュメントを参照してインストール
2.Docker-Composeのインストール
# curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` -o
/usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
3.ユーザーにsudo権限を付与
# vi /etc/sudoers
deploy_user ALL=(ALL) NOPASSWD:ALL
5. Jenkinsの導入と設定
必要なソフトウェアのダウンロード:
https://updates.jenkins.io/download/war-stable/
https://maven.apache.org/download.cgi
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
JDKとMavenの環境変数を設定:
# tar zxvf jdk-8u45-linux-x64.tar.gz
# mv jdk1.8.0_45 /usr/local/java_8
# tar apache-maven-3.5.0-bin.tar.gz
# mv apache-maven-3.5.0 /usr/local/maven_35
# vim /etc/profile
JAVA_PATH=/usr/local/java_8
CLASSPATH=.:$JAVA_PATH/lib/dt.jar:$JAVA_PATH/lib/tools.jar
MAVEN_PATH=/usr/local/maven_35
PATH=$JAVA_PATH/bin:$MAVEN_PATH/bin:$PATH
export JAVA_PATH CLASSPATH MAVEN_PATH PATH
# tar zxvf apache-tomcat-8.0.46.tar.gz
# cd apache-tomcat-8.0.46/webapps
# rm -rf ./*
# unzip /root/jenkins.war -d ROOT
# ../bin/startup.sh
6. Jenkinsの初期設定とプロジェクト作成
システム管理 → システム設定: 主にワークスペースディレクトリ、グローバル環境変数、メール通知、その他のプラグイン設定を実施します。
システム管理 → 全般ツール構成: 主にJDK、Mavenなどのツールを設定します。
システム設定内で各デプロイメントノードへのSSH接続情報を事前設定し、プロジェクト作成時に利用します。
7. Jenkins基本パラメータ設定
Remote directory: リモート作業ディレクトリ
Exec command: 実行するコマンドまたはスクリプト