【Ruby版】CIツール導入ガイド 第5回 Linux 環境に Jenkins を導入し CI サーバーを構築

By 2018-12-05 DevOps

【Ruby版】CIツール導入ガイド 第5回

Jenkins は Javaで開発された、よく利用されているCIツールだ。今回は Jenkins をインストールし、実際に CIサーバーを構築してみよう。

インストール環境

Jnekins はさまざまな環境にインストール可能だが、今回は CentOS7 を利用する事にした。まずはCentOS7 を minimal インストールしたサーバーを用意して欲しい。もちろん仮想マシンでも構わない。ただし、インストール時にかなりのメモリを消費するので、最低でも8GB 程度のメモリを利用可能な環境を用意して頂きたい。AWS を利用するなら、 t2.large 程度がお勧めだ。HDD容量は今回の検証だけなら20GBもあれば十分だ。

ツール類のインストール

まずは Jnekins や Ruby, git等を動作させるに当たり必要な yumパッケージをインストールしておきたい。

sudo yum install -y git bzip2 gcc libffi-devel zlib-devel  openssl-devel readline-devel

Jenkinsのインストールと起動

Jenkins は標準の yum リポジトリには含まれていないので、まずは Jenkins のリポジトリを登録する。以下の手順を実行しよう。

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

次に Java と Jenkins をインストールする。

yum install -y java-1.8.0-openjdk
yum install -y jenkins

インストールは数秒で完了すると思うので、完了したらサービスを起動しよう。

sudo systemctl start jenkins

リポジトリの初期化

このサーバーは CI サーバーとして利用するが、リポジトリサーバーも兼用する事にしよう。git のリポジトリを作成し、別のマシンからSSHでログインできるようにしておきたい。まずはログインさせたいユーザーのSSH公開鍵を準備し、それを /tmp/user1.key に保存しておこう。準備ができたら以下の手順でリポジトリを初期化する。

sudo git init --bare /var/lib/sample.git
sudo adduser git
sudo chown -R git:git /var/lib/sample.git
sudo mkdir /home/git/.ssh
sudo cat /tmp/user1.key >> /home/git/.ssh/authorized_keys
sudo chown -R git:git /home/git/.ssh
sudo chmod 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys
sudo echo /usr/bin/git-shell >> /etc/shells
sudo chsh -s /usr/bin/git-shell git

うまく行けば、以下の手順でリポジトリのクローンを作成できるようになるはずだ。

git clone git@<サーバー名、またはIPアドレス>:/var/lib/sample.git

WEB画面からのセットアップ

次にWEB画面に移動して、必要な設定を行なおう。以下の Jenkins はデフォルトで 8080ポートを利用するので、以下の URLにアクセスして頂きたい。

http://<サーバー名、またはIPアドレス>:8080

初期化には少々時間がかかる。サービス起動直後にアクセスすると、以下のような画面になるかも知れない。

その場合は何もしないでしばらく待っていて欲しい。数分程度で以下の画面に移動するはずだ。

画面の指示に従い、/var/lib/jenkins/secrets/initialAdminPassword の内容を入力し「Continue」をクリックしよう。すると最初にインストールするプラグインを選択する画面に移動する。

“Install guggested plugins” をクリックし、しばらく待っていて頂きたい。以下のような画面が表示されプラグインのインストールが行われていく様子が表示されるだろう。

次にログインユーザーの作成画面に移動する。必要な情報を入力して欲しい。

次はURLの設定である。リバースプロキシサーバー等を利用している場合には適切な設定が必要かも知れない。通常は変更する必要が無いので、何も変更せずに画面右下の「Save and Finish」をクリックしよう。

これでセットアップは完了だ。以下の画面が表示されるので、「Start using Jenkins」をクリックしよう。

この後、本来なら以下のような画面が表示される。

しかし、環境によっては真っ白な画面のまま何も表示されない場合がある。その時は Jenkins のサービスを再起動するといいようだ。真っ白な画面が表示されてしまったら、コンソール画面で以下のコマンドを実行しよう。

sudo systemctl stop jenkins
sudo systemctl start jenkins

Jenkins を再起動してブラウザをリロードすると、準備中の画面が表示されるはずだ。その後しばらくまつと、以下のようにダッシュボードが表示される。

rbenvプラグインの設定

次に Jenkins からRubyの環境管理ツール rbenv を利用できるようにしておこう。左メニューから「Jenkinsの管理」をクリックすると、以下の画面に移動する。

さらに「プラグインの管理」をクリックしてプラグインをインストールしたり更新したりする画面に移動しよう。移動したら「利用可能」タブをクリックし、画面右上の「フィルター」に”rbenv” と入力して欲しい。以下の画面のように、rbenvプラグインが表示されるはずだ。

行内の左のチェックボックスをチェックし「再起動せずにインストール」をクリックして欲しい。以下の画面のようにプラグインのインストールが始まるはずなのでしばらく待って欲しい。

まとめ

ここまでで構築作業は完了だ。次回は検証用のプロジェクトを作成し、実際に動作させてみよう。

次回

第6回 CIサーバーを使ってみよう:第5回で構築した Jenkins で、実際に CI を行った様子の紹介


本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。

エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!

tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。

クラウド型バグ管理・バージョン管理ソフトの「tracpath(トラックパス)」を提供しているオープングルーヴが運営しています

You Might Also Like

No Comments

    コメントを残す

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください