Help us understand the problem. What is going on with this article?

【2018年版】Docker+Rancher+JenkinsなCI環境を構築する

More than 1 year has passed since last update.

はじめに

システム開発で環境構築に時間をかけるなんてダサい時代になりました。
ってことで、CI環境もサクッと準備しちゃいましょう。
今回は、サラのCentOS7にDocker/Rancher/Jenkinsをセットアップしてみたいと思います。

セットアップ

CentOS7はインストール済みとします。
SSH等でログインしておいてください。

Dockerをインストールする

まずはDocker-CEをインストールします。
公式サイトのコマンドをチャチャっと打ち込んでいきます。

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

$ sudo yum install docker-ce

$ sudo systemctl start docker

docker-composeコマンドも入れておきます。

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

/usr/local/bin にパスが通っていない場合はパスを通します。

$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

$ source ~/.bash_profile

バージョンを確認しておきます。

$ docker -v
Docker version 18.09.0, build 4d60db4

$ docker-compose -v
docker-compose version 1.23.1, build b02f1306

これでDockerの準備はOKです!

Rancherをインストールする

RancherはDockerのコンテナイメージが配布されています。
まずはサーバー側のコンテナを起動します。

なお、標準では8080ポートが使用されますが、よく使われるポート番号なので、ここでは9000ポートに差し替えています。

$ sudo docker run -d --restart=unless-stopped -p 9000:8080 rancher/server:stable

ブラウザでアクセスしてみます。
http://<DockerサーバーIP>:9000/
スクリーンショット 2018-11-11 23.22.35.png
※日本語化されていない場合は、画面右下から言語を選択できます。

次にホストを追加します。
スクリーンショット 2018-11-11 23.25.11.png
ここではサイトのアドレスを選択します。
サーバーとホストを同一のマシンに配置することも可能です。

こちらの画面の5番のコマンドをホストのPCで実行します。
スクリーンショット 2018-11-11 23.27.42.png

$ sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.0.10:9000/v1/scripts/FF89B185C7918681C347:1514678400000:lXr6i25oQ9mDsC7GYk4quVRplj0

ホストが追加されればOKです!
スクリーンショット 2018-11-11 23.30.28.png

Jenkinsをインストールする

Rancherにはあらかじめ便利なカタログが用意されています。
Jenkinsもカタログに登録されているため、ここから登録していきます。

スクリーンショット 2018-11-11 23.32.55.png

一番左のJenkins CI serverを選択します。

スクリーンショット 2018-11-11 23.35.32.png

ここでもポート番号が8080となっていますので、被らないよう9001を選択しています。

Rancherはコンテナの集まりをスタックとして管理できます。
スタックが起動したことを確認します。
スクリーンショット 2018-11-11 23.37.09.png

ポート番号の9001がリンクになっているのでクリックしてみます。

スクリーンショット 2018-11-11 23.41.09.png

Jenkinsが起動したようです。
管理者パスワードはコンテナ内のファイルに記載されているため、Rancherのシェルコンソールから確認してみます。

スクリーンショット 2018-11-11 23.42.53.png

$ cat /var/jenkins_home/secrets/initialAdminPassword

スクリーンショット 2018-11-11 23.44.04.png

確認できました。
ログインしてJenkinsの初期セットアップを進めます。

スクリーンショット 2018-11-11 23.45.25.png

Install suggested pluginsを選択します。

スクリーンショット 2018-11-11 23.50.57.png

おや?Pipelineがエラーになりました。
これはJenkinsのバージョンが古いためのようです。
しかし、Jenkinsの自動アップデートが有効になっていないため、下記を参考に自動アップデートを有効にします。

・・・ただし、Rancherのシェルコンソールからrootユーザーにsuできないため、下記のコマンドでrootにログインして操作します。

$ sudo docker exec -u 0 -it <コンテナID> bash
$ chown -R jenkins:jenkins /usr/share/jenkins

再度、Jenkinsの画面を開き、アップデートしてください。
スクリーンショット 2018-11-11 23.54.34.png

以上でJenkinsのインストールが完了です。

お疲れ様でした!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした