Mac安装jenkins

1,951 阅读3分钟

Mac安装jenkins

[TOC]

安装java

  1. 查看是否已经安装java
~> java -version
No Java runtime present, requesting install.

表示没有安装过; 进行安装 2.我们这里通过brew进行安装,执行下面命令进行安装

~> brew tap caskroom/versions
# 当成功后,检测java的版本
~> brew cask info java
java: 14.0.1,7:664493ef4a6946b186ff29eb326336a2
https://openjdk.java.net/
Not installed
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/java.rb
==> Name
OpenJDK Java Development Kit
==> Artifacts
jdk-14.0.1.jdk -> /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk (Generic Artifact)
==> Analytics
install: 17,765 (30 days), 55,297 (90 days), 273,317 (365 days)

安装最新版本java

~> brew cask install java
==> Downloading https://download.java.net/java/GA/jdk14.0.1/664493ef4a6946b186ff29eb326336a2/7/GPL/openjdk-14.0.1_osx-x64_bin.tar.gz
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'java'.
==> Installing Cask java
==> Moving Generic Artifact 'jdk-14.0.1.jdk' to '/Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk'.
Password:
🍺  java was successfully installed!

查看版本

~> java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

安装Jenkins

安装Jenkins

执行下面命令

~> brew install jenkins

==> Downloading https://homebrew.bintray.com/bottles/openjdk%4011-11.0.7%2B10.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/1cef37f5566ca7c60c03bad337c81516525459a7c4892519bc9badf90633a935?response-content-disposition=attachment%3Bfilename%3D%22openjdk%4011-11.0.7%2B10.catalina.bottle.tar.gz%22&Policy=eyJTdGF0ZW1lbnQi
######################################################################## 100.0%
==> Downloading http://mirrors.jenkins.io/war/2.243/jenkins.war
==> Downloading from http://ftp-chi.osuosl.org/pub/jenkins/war/2.243/jenkins.war
######################################################################## 100.0%
==> Installing dependencies for jenkins: openjdk@11
==> Installing jenkins dependency: openjdk@11
==> Pouring openjdk@11-11.0.7+10.catalina.bottle.tar.gz
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
 sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk

openjdk@11 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have openjdk@11 first in your PATH run:
 echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk@11 you may need to set:
 export CPPFLAGS="-I/usr/local/opt/openjdk@11/include"

==> Summary
🍺  /usr/local/Cellar/openjdk@11/11.0.7+10: 650 files, 295.2MB
==> Installing jenkins
==> /usr/local/opt/openjdk@11/bin/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.243: 6 files, 63.9MB, built in 6 seconds
==> Caveats
==> openjdk@11
For the system Java wrappers to find this JDK, symlink it with
 sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk

openjdk@11 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have openjdk@11 first in your PATH run:
 echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk@11 you may need to set:
 export CPPFLAGS="-I/usr/local/opt/openjdk@11/include"

==> jenkins
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

安装jenkins, Homebrew会将软件包安装到独立目录/usr/local/Cellar,并将其文件软链接至/usr/local

命令启动/停止/重启jenkins

#启动jenkins
~> brew services start jenkins
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 52, done.
remote: Counting objects: 100% (52/52), done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 829 (delta 20), reused 16 (delta 3), pack-reused 777
Receiving objects: 100% (829/829), 232.74 KiB | 58.00 KiB/s, done.
Resolving deltas: 100% (337/337), done.
Tapped 1 command (40 files, 310.9KB).
==> Successfully started `jenkins` (label: homebrew.mxcl.jenkins)
#停止jenkins 
brew services stop jenkins
#重启jenkins
brew services restart jenkins

启动Jenkins后浏览器进入http://localhost:8080/或ip:8080 访问,

然后输入密码 获取密码方式

# 获取密码
cat /Users/${计算机名称}/.jenkins/secrets/initialAdminPassword

进入后根据自己选择安装插件

修改端口或者局域网访问

修改端口或者局域网访问,jenkins默认的httpListenAddress是127.0.0.1也就是本机地址,如果局域网需要访问的话需要改成0.0.0.0,修改httpPort的值就是修改端口

# 打开配置文件
sudo vim /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

#重启jenkins
brew services restart jenkins

<?xml version="1.0" encoding="UTF-8"?>
<!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>

遇到问题

  1. 下载插件时候总是遇到网络下载超时的报错,如:
	
 Failure -
java.net.SocketTimeoutException: Read timed out
	at java.base/java.net.SocketInputStream.socketRead0(Native Method)
	at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
	at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168)
	at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
	at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:290)
	at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
	at java.base/sun.net.www.MeteredStream.read(MeteredStream.java:134)
	at java.base/java.io.FilterInputStream.read(FilterInputStream.java:133)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3505)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3498)
	at org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:78)
	at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1282)
Caused: java.io.IOException: Failed to load http://updates.jenkins-ci.org/download/plugins/snakeyaml-api/1.26.4/snakeyaml-api.hpi to /Users/shuaishuai/.jenkins/plugins/snakeyaml-api.jpi.tmp
	at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1287)
Caused: java.io.IOException: Failed to download from http://updates.jenkins-ci.org/download/plugins/snakeyaml-api/1.26.4/snakeyaml-api.hpi (redirected to: http://mirror.serverion.com/jenkins/plugins/snakeyaml-api/1.26.4/snakeyaml-api.hpi)
	at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1321)
	at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:1869)
	at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2147)
	at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1843)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:111)
	at java.base/java.lang.Thread.run(Thread.java:834)

这可以更换下Jenkins插件镜像源 在Manage Jenkins--->Manage Plugins--->Advanced--->Updatate Site; 把

https://updates.jenkins.io/update-center.json

修改为清华的镜像源

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

【详细的Jenkins的镜像地址查询:mirrors.jenkins-ci.org/status.html… 保存后,即可返回到【可选插件】选项卡下,进行搜索重新安装。

进入Jenkins的插件下载网站

下载Jenkins的插件的地址:plugins.jenkins.io/

更新Jenkins

homebrew安装的Jenkins版本较低,有些插件可能不支持,所以我们将Jenkins升级一下,找到Jenkins的下载地址https://jenkins.io/download/,下载.war格式的包。   在finder中找到Jenkins的位置~/.jenkins,会发现Jenkins的目录下有一个war文件夹,将war文件夹里面的东西都删除,然后将我们下载的.war文件里的东西全部解压到war文件夹里。重新启动Jenkins,Jenkins就升级到最新了。

一些命令

macOS Installers for Jenkins Weekly Tweet Homebrew Installer Sample commands:

  • Install the latest Weekly version: brew install jenkins
  • Install a specific Weekly version: brew install jenkins@YOUR_VERSION
  • Start the Jenkins service: brew services start jenkins
  • Restart the Jenkins service: brew services restart jenkins
  • Update the Jenkins version: brew upgrade jenkins

本文参考了如下文章