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生活の始まりです!



コメントを残す
コメントを投稿するにはログインしてください。