Jenkins を Mac にインストールして LAN内の PC から接続するまで


この記事でわかること

  • MacJenkins をインストールして起動するまでの流れ
    • パッケージからではなく、Homebrew を使う方法
  • LAN内の 他のPCから Jenkins にアクセスするための設定
  • 無償で使える Java (JDK) のインストール方法や変更方法

やりたいことのイメージ

  • Jenkins による自動処理を MacBook や Mac mini 等で行いたい
  • Mac をサーバとして、ローカルエリアネットワーク (LAN) 内で利用

Jenkins って何?

CI(継続的インテグレーション)を支援するオープンソース・ソフトウエア(OSS)の1つで、デファクトスタンダード。

CI とは、開発ビルドサーバ配備テストリリース、のような、開発〜リリースに至る一連の流れを自動的・高頻度に行い、手作業によるミスを回避し、問題(bug)を早期に発見することで、品質の向上と開発効率の向上を目指す手法のこと。

※ 上記のような CIとしてではなく、一連の処理を自動的に行う機能として使われるケースも多い

ざっくり、入れるものは以下

  • Homebrew
  • Java (JDK)
  • Jenkins

検証環境

  • MacBook Pro (13-inch, Mid 2010)
  • macOS (Sierra) 10.12.6

インストールの流れ

Homebrew をインストール

インストール済みであればスキップ。
その場合は brew update でアップデートしておくと良い。

terminal
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 参考:Homebrew 公式サイト
  • 必要に応じて Command Line Tools (CLT) for Xcode もインストール
    • Homebrew インストールの流れで同時にインストールされるはず
    • インストールされなければ、xcode-select --install でインストール
  • インストール後、コマンドラインで brew doctor と打って、Your system is ready to brew. と表示されればOK

Java (JDK) をインストール

インストール済みであればスキップ。
コマンドラインで java -version と打って、バージョン等が表示されればインストール済み。

terminal
$ java -version

未インストールの場合、以下のダイアログが表示されるが、OK をクリックして終了する。(ここで紹介される Oracle の Java はインストールしない)

(インストール済みの場合の確認事項)

商用利用で Java (JDK) を無償利用したい場合、Mac に標準的にインストールされる Oracle JDK はサポート終了 or 有償サポートになっているので、Oracle JDK ではない事を確認しておく。
その場合を含め、JDK の確認やバージョンを変更したい場合は以下を参照。
JDK の確認・バージョン等を変更する場合(※ページ内リンク)

Java (AdoptOpenJDK) をインストール

Java (JDK) は、JavaAdoptOpenJDK 8 が 2023年9月までのサポートが確定しているのでオススメ。

参考:無償でJavaを商用使用する場合に検討すべき3つのJDK - Qiita

terminal
$ brew tap adoptopenjdk/openjdk
$ brew cask install adoptopenjdk8

途中、パスワードが求められた場合は Mac のパスワードを入力。
上記コマンドでインストール後、.bash_profile に環境変数 JAVA_HOME を設定し、パスを通す。

terminal
$ echo 'export JAVA_HOME=`/usr/libexec/java_home -v 1.8`' >> ~/.bash_profile
$ echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile

コマンドラインで java -version と打って、AdoptOpenJDK のバージョンが表示されればOK。

terminal
$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)

Jenkins をインストール

terminal
$ brew install jenkins
  :
==> Summary
🍺  /usr/local/Cellar/jenkins/2.189: 7 files, 78MB, built in 1 minute 46 seconds

成功すると上記のような表示になる。
コマンドラインで jenkins --help と打ち込んで、Jenkins のヘルプが表示されるのを確認しても良い。

Jenkins の初期設定

初期設定をするため、Jenkins を起動する。

terminal
$ jenkins

すると起動に関わるログが流れるが、途中で以下のようなログが出てくるはず。

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

abcdefghijklmnopqrstuvwxyz012345

This may also be found at: /Users/hoge/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

この時点で Jenkins は立ち上がっているので、インストールした Mac のブラウザから http://localhost:8080/ にアクセスする。

すると以下の画面が表示されるので、上記のターミナルに表示された文字列「abcdefghijklmnopqrstuvwxyz012345」(※この文字列は仮、実際はターミナル上に表示された文字列)を、Administrator password 欄に入力して、Continue をクリック。

※ もしパスワードが見つけられない場合、コマンドラインで cat /Users/{アカウント名}/.jenkins/secrets/initialAdminPassword とすることでも確認できる。

次にプラグインのインストールの確認画面が出るので、左側のオススメセット(Install suggested plugins)をクリック。

しばらくインストール中の画面が表示されて…

管理ユーザーを作成する画面が表示されるので、項目を記入して Save and Continue をクリック。

次に URLの設定画面になるが、変更せずに Save and Finish をクリック。

もう1画面…!
Start using Jenkins をクリック。

で、無事に起動。

初期設定が終わったので、ここで 一旦 Jenkins を終了させる。
(先ほど Jenkins を起動したターミナル上で Ctrl-C

他の PC からアクセスできるように Jenkins を起動

設定ファイルの書き換え

Jenkins を起動する時に適用される設定ファイルを編集する。
以下は vi を使う例だが、使い慣れているテキストエディタでも可。

terminal
$ vi /usr/local/Cellar/jenkins/{バージョン名}/homebrew.mxcl.jenkins.plist

以下の行を見つけて、Jenkins を起動する Mac のIPアドレス に書き換える。

editor
    <string>--httpListenAddress={IPアドレス}</string>

例:<string>--httpListenAddress=192.168.1.10</string>
もしIPアドレスが分からなければ、0.0.0.0 でもOK

Jenkins のバックグラウンド起動

初期設定時は jenkins で起動したが、バックグラウンドで起動したいので、brew services コマンドを使用する。

terminal
$ brew services start jenkins

先の例の場合、他の PC から http://192.168.1.10:8080/ で接続できる。
なお、Jenkins が起動しているかどうかは、以下のコマンドで確認可能。

terminal
#プロセスで確認する場合
$ ps aux | grep jenkins

#brewコマンドでも確認できる
$ brew services list

Jenkins の終了や再起動は以下で。

terminal
#Jenkins を終了する時
$ brew services stop jenkins
#Jenkins を再起動したい時
$ brew services restart jenkins

以上です。

補足:JDK の確認・バージョン等を変更する場合

コマンドラインで java -version とすることで、JDK のバージョン等を確認できる。

terminal
$ java -version
java 11.0.1 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

上記のようなバージョン表記の場合、Oracle の Java (JDK) であり、商用利用には有償ライセンス契約が必要になるので、無償&サポート期間の長い JavaAdoptOpenJDK 8 をインストールして切り替える。

terminal
$ brew tap adoptopenjdk/openjdk
$ brew cask install adoptopenjdk8

上記コマンドでインストール後、現在インストールされている Java を /usr/libexec/java_home -V で確認する。(※ V は大文字)

terminal
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
  11.0.1, x86_64:    "Java SE 11.0.1" /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
  1.8.0_222, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

この例の場合、Oracle の Java SE 11.0.1AdoptOpenJDK 8 の2つがインストールされている。

インストールした AdoptOpenJDK 8(ver. 1.8.0) に切り替えるため、~/.bash_profile に環境変数 JAVA_HOME を設定し、パスを通す。
(もちろん、既に ~/.bash_profileJAVA_HOMEJAVA_HOMEへのパス を通す設定があれば、該当箇所を書き換え)

terminal
$ echo 'export JAVA_HOME=`/usr/libexec/java_home -v 1.8`' >> ~/.bash_profile
$ echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile

インストール後、コマンドラインで java -version と打って、OpenJDK のバージョン が表示されればOK。

terminal
$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)

参考