【2019年版】MACへJenkinsをインストールする方法と起動方法について説明します!

MACにJenkinsをインストールして起動する方法はいくつかあるが、自分が利用した方法を記載して説明します。

前提として、開発する環境は下記の通りです。

・環境
MacOS Mojave(バージョン10.14.3)
MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)
Jenkins2.187

では詳しく説明していこうと思います。

インストールする方法

homebrewを利用する

ターミナルを立ち上げて、下記コマンドを実行

インストール.(brewがインストールされていることが前提)
brew install jenkins

すると下記のようなログが出力されてjenkinsがインストールされる。
もしここでなんらかのエラーログが見つかれば、インストールは失敗なので、エラー内容を確認する。

brew install jenkins
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
ahoy                                     leela-zero
aliyun-cli                               libevhtp
allureofthestars                         libgr
anime-downloader                         libgusb
antibody                                 libkeccak
anycable-go                              libnova
anyenv                                   libopenmpt
aom                                      libpulsar

※長いので一部省略

==> Renamed Formulae
ark -> velero              gutenberg -> zola          php72 -> php@7.2
gloo-ctl -> glooctl        hh -> hstr                 resin-cli -> balena-cli
gnatsd -> nats-server      mat -> mat2                todolist -> ultralist
==> Deleted Formulae
apple-gcc42         gtk-engines         monax               ruby@2.3
aptly-completion    gtk-murrine-engine  nethack4            safe
at-spi2-atk         guile@2.0           node@6              scala@2.10
at-spi2-core        gv                  pdftoedn            smlnj
cctools             hyper               percona-server@5.6  solr@5.5
cctools-headers     js-test-driver      php@5.6             solr@6.6
compose2kube        kibana@4.4          php@7.0             swig@3.04
cputhrottle         ld64                plan9port           tmux-cssh
dsd                 libggz              pldebugger          tomcat@6
erlang@18           libguess            protobuf@2.5        typesafe-activator
ffmbc               liblastfm           protobuf@2.6        varnish@4
gdnsd               libutf              pyexiv2             whirr
gnome-doc-utils     lysp                rlvm                xmoto
go@1.4              maven@3.0           rock                zxing-cpp
go@1.8              maven@3.1           ruby@1.8
gradle@2.14         minisat             ruby@2.2

==> Downloading http://mirrors.jenkins.io/war/2.187/jenkins.war
==> Downloading from http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/war/2.187/j
######################################################################## 100.0%
==> jar xvf jenkins.war
==> Caveats
Note: When using launchctl the port will be 8080.

To have launchd start jenkins now and restart at login:
  brew services start jenkins
Or, if you don't want/need a background service you can just run:
  jenkins
==> Summary
 /usr/local/Cellar/jenkins/2.187: 7 files, 77.5MB, built in 19 seconds
==> `brew cleanup` has not been run in 30 days, running now...

たったの1行のコマンドでjenkinsはインストールできます!

jekinsをhomebrewでアップデートすると起動ファイルも更新されてしまうのでシンボリックリンクを張るのではなくコピーを ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist に置くため以下を実行する。

cp -p /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents

必要であれば下記の内容を変更する
~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

環境によって(8080ポートをすでに利用している)は下記の箇所のポートなどを変更した方がよいです。
<string>–httpPort=8080</string>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.jenkins</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/libexec/java_home</string>
      <string>-v</string>
      <string>1.8</string>
      <string>--exec</string>
      <string>java</string>
      <string>-Dmail.smtp.starttls.enable=true</string>
      <string>-jar</string>
      <string>/usr/local/opt/jenkins/libexec/jenkins.war</string>
      <string>--httpListenAddress=127.0.0.1</string>
      <string>--httpPort=8080</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

続いて起動する方法も説明しておきます!

起動する方法

起動もたったの一つのコマンドでOK

jenkins起動.
sudo java -jar /usr/local/opt/jenkins/libexec/jenkins.war

起動すると下記のようなパスワードが求められ、パスワードを入力すると下記ログが出力される。

sudo java -jar /usr/local/opt/jenkins/libexec/jenkins.war
Password:
Running from: /usr/local/Cellar/jenkins/2.187/libexec/jenkins.war
webroot: $user.home/.jenkins
2019-07-23 02:09:44.241+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @250ms to org.eclipse.jetty.util.log.JavaUtilLog
2019-07-23 02:09:44.321+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file
2019-07-23 02:09:44.342+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2019-07-23 02:09:44.383+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: jetty-9.4.z-SNAPSHOT; built: 2019-05-02T00:04:53.875Z; git: e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 1.8.0_181-b13
2019-07-23 02:09:44.602+0000 [id=1] INFO o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2019-07-23 02:09:44.637+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2019-07-23 02:09:44.638+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2019-07-23 02:09:44.640+0000 [id=1] INFO o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 660000ms
Jenkins home directory: /var/root/.jenkins found at: $user.home/.jenkins
2019-07-23 02:09:46.116+0000 [id=1] INFO o.e.j.s.handler.ContextHandler#doStart: Started w.@7d9f158f{Jenkins v2.187,/,file:///private/var/root/.jenkins/war/,AVAILABLE}{/var/root/.jenkins/war}
2019-07-23 02:09:46.143+0000 [id=1] INFO o.e.j.server.AbstractConnector#doStart: Started ServerConnector@2c6a3f77{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2019-07-23 02:09:46.143+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: Started @2153ms
2019-07-23 02:09:46.144+0000 [id=23] INFO winstone.Logger#logInternal: Winstone Servlet Engine v4.0 running: controlPort=disabled
2019-07-23 02:09:46.893+0000 [id=30] INFO jenkins.InitReactorRunner$1#onAttained: Started initialization
2019-07-23 02:09:46.931+0000 [id=43] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2019-07-23 02:09:47.732+0000 [id=43] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2019-07-23 02:09:47.734+0000 [id=43] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins
2019-07-23 02:09:47.741+0000 [id=31] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2019-07-23 02:09:47.941+0000 [id=39] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2019-07-23 02:09:47.950+0000 [id=56] INFO hudson.model.AsyncPeriodicWork$1#run: Started Download metadata
2019-07-23 02:09:47.955+0000 [id=56] INFO hudson.model.AsyncPeriodicWork$1#run: Finished Download metadata. 3 ms
2019-07-23 02:09:48.374+0000 [id=39] INFO o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@14acff58: display name [Root WebApplicationContext]; startup date [Tue Jul 23 11:09:48 JST 2019]; root of context hierarchy
2019-07-23 02:09:48.374+0000 [id=39] INFO o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@14acff58]: org.springframework.beans.factory.support.DefaultListableBeanFactory@5c63a54e
2019-07-23 02:09:48.380+0000 [id=39] INFO o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5c63a54e: defining beans [authenticationManager]; root of factory hierarchy
2019-07-23 02:09:48.502+0000 [id=39] INFO o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@3a26126d: display name [Root WebApplicationContext]; startup date [Tue Jul 23 11:09:48 JST 2019]; root of context hierarchy
2019-07-23 02:09:48.502+0000 [id=39] INFO o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@3a26126d]: org.springframework.beans.factory.support.DefaultListableBeanFactory@4fa8987d
2019-07-23 02:09:48.502+0000 [id=39] INFO o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4fa8987d: defining beans [filter,legacy]; root of factory hierarchy
2019-07-23 02:09:48.538+0000 [id=41] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
2019-07-23 02:09:48.547+0000 [id=57] INFO hudson.UDPBroadcastThread#run: Cannot listen to UDP port 33,848, skipping: java.net.SocketException: Can't assign requested address
2019-07-23 02:09:48.552+0000 [id=22] INFO hudson.WebAppMain$3#run: Jenkins is fully up and running
2019-07-23 02:10:18.883+0000 [id=17] INFO o.k.s.LocaleDrivenResourceProvider#getLocaleDrivenResourceProviders: Registered LocaleDrivenResourceProvider: jenkins.MetaLocaleDrivenResourceProvider@5fccc442

セットアップ方法

下記にアクセス(ポートを変更した方はそのポート)

http://localhost:8080/

jenkinsへアクセスするとセットアップ手続き画面が表示されます。

表示されているinitialAdminPasswordを開き、パスワードを確認し、そのパスワードを画面に入力する。

パスワード確認コマンド
sudo cat /Users/〇〇/.jenkins/secrets/initialAdminPassword

入力したらContinueボタンを押下。

Customize Jenkinsという画面が表示される。

どちらかを選択する。

・Install suggested plugins おすすめプラグインをインストール

・Select plugins to install  自分でプラグインを選択してインストール

よくわからない人はInstall suggested pluginsで良いと思います。(ここではInstall suggested pluginsを選択したものとします)

下記画面のように自動的にプラグインのダウンロード&インストールが始まるのでインストールが完了するまで待つ。

次はユーザー情報の入力画面になります。

ここは任意の文字列になるので、自分で決めたものを入力し、Save and Finishボタンを押下。

Start using Janekinsボタンを押下すると、ようやく下記のjenkinsさんの起動画面が!!!

お疲れ様でした!

以上でJenkinsのインストールから起動まで完了になります。

まとめ

Jenkinsのインストールと起動までは意外と簡単

さぁCI生活の始まりです!

コメントを残す