Windows 上安装 Jenkins
下载配置 jdk
从 Jenkins 的官网可以看到
较新的 Jenkins 需要运行在 Java 8 或者 Java 11 上,我们安装 java8 版本,由于 Oracle 下载 jdk 需要注册账户,我们下载 openjdk,这里推荐 Liberica OpenJDK
直接下载 zip 版本,并在环境变量中配置 JAVA_HOME,使用 cmd 执行 java -version 查看是否配置成功
如果电脑里已经安装了 Java 环境,直接用 java -version 验证是否 Java8+版本
下载安装 Git
我们需要使用 Jenkins 拉取项目源码,故需要先安装下 git
从 git 官网下载安装即可
命令行输入 git –version 验证安装是否成功
下载配置 Maven
目前大多数 SpringBoot 项目都采用的是 Maven 的方式进行构建,故为了进行自动构建,需要安装
可以 官网 直接下载 zip,配置环境变量 M2_HOME 即可
命令行输入 mvn -v 验证
安装配置
windows 版直接 官网 下载最新版本即可,如果是实际生产环境建议下载 LTS(长期支持版本)
按照提示直接安装即可
配置
如果前面安装的时候没有修改默认端口为,可以打开配置(Windows 版的配置在安装目录的 jenkins.xml 中) 进行配置, 修改–httpPort=8080 为其他端口
如果使用 nginx 代理的话需要加上 –prefix=/jenkins
以下是笔者的配置,供参考(省略了其他配置,不要直接复制,重点在 arguments 中的修改)
<service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins automation server.</description>
<env name="JENKINS_HOME" value="%LocalAppData%\Jenkins\.jenkins"/>
<executable>D:\env\Java\jdk1.8.0_231\bin\java.exe</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "C:\Program Files\Jenkins\jenkins.war" --prefix=/jenkins --httpPort=8080 --webroot="%LocalAppData%\Jenkins\war"</arguments>
</service>
需要注意的是 Windows 版的 Jenkins 的默认工作目录在 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins.jenkins,如果需要修改,同样在 jenkins.xml 中搜索修改 JENKINS_HOME 即可(可修改为 env name=”JENKINS_HOME” value=”%JENKINS_HOME%”,然后环境变量加入 JENKINS_HOME)
以上工作完成后,就可以运行 jenkins 了,需要注意的是 Windows 的安装版的 Jenkins 安装时会注册为 Windows 服务,需要从任务管理器-服务中找到 Jenkins 重启
初始化
浏览器打开 http://localhost:8080/ (如果配置了 prefix,则为 http://localhost:8080/jenkins/)
按照步骤一步步配置即可,需要注意的插件安装推荐的插件如果有安装失败的,一般是网络原因,重试几次即可(如果还不行,可以后面到插件管理里再安装)
安装插件
除了初始化配置中安装的插件外,还需要安装:
- Maven Integration:便于新建 maven 任务
- Publish Over SSH: 用于远程连接服务器
- Gitee : 如果是使用码云作为托管网站的推荐安装
打开系统管理(Manage Jenkins) -> 插件管理(Manage Plugins),选择可选插件,勾选中 Maven Integration 和 Publish Over SSH,点击直接安装
在安装界面勾选上安装完成后重启 Jenkins
配置 JDK、Maven、Git 环境
Jenkins 集成需要用到 Maven、JDK、Git 环境, 打开系统管理(Manage Jenkins) -> 全局工具配置(Global Tool Configuration)
新增 JDK 时,需要去掉自动安装(Install automatically) 勾选,才能配置本地 Java 环境,这里可以配置多个 jdk,主要是为了构建项目时使用,与 Jenkins 运行时的 jdk 不是一个概念
添加凭据
添加凭据用来从 Git 仓库拉取代码的,打开 凭据 -> 系统 -> 全局凭据 -> 添加凭据, 直接使用用户名和密码,设置 Github 或者码云等 git 托管网站的账户信息
添加 SSH Server
SSH Server 是用来连接部署服务器的,用于在项目构建完成后将你的应用推送到服务器中并执行相应的脚本。
打开 (Manage Jenkins) -> 系统配置,找到 Publish Over SSH 部分,选择新增
这里需要远程服务器支持 ssh 连接
远程 Windows Server 配置 SSH
如果服务器是 Windows 的,可以下载并安装 freeSSHD ,安装流程可以参考这篇文章 本机(Windows)通过 SSH 软件工具 freeSSHD、puTTY 远程连接虚拟机(Windows)
这里推荐 freeSSHD 是因为远程执行 bat 比较稳定,之前使用 openSSH 时总会有些莫名的问题,可能时我配置的有问题,就不继续探究的。
配置好后,点击【Test Configuration】出现 “Success”即可保存,如果出现的是异常日志,首先检查远程服务器是否支持 ssh 连接,再检查配置是否正确尤其用户名密码和端口号
ssh 客户端如果使用的是 windows10 推荐直接使用 powershell
ssh root@192.168.197.129 -p 22
远程 Linux 配置 SSH
一般云服务都支持 SSH 连接,可以用 SSH 的客户端连接测试(注意可能有些云服务器的安全组未开放端口,配置下即可)。当然如果确实没有安装 ssh server,可以打开 Terminal:
# 更新软件下载源
sudo apt update
# 安装 ssh 服务
sudo apt install openssh-server
# 开启防火墙 ssh 的服务端口
sudo ufw allow ssh
# 开启 ssh 服务
systemctl start ssh
# 设置开启自启
sudo systemctl enable ssh
# 查看 ssh 服务状态
systemctl status ssh
修改 sshd_config,主要是放开”PasswordAuthentication yes”和“PermitRootLogin yes”
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Include /etc/ssh/sshd_config.d/*.conf
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
# override default of no subsystems
Subsystem sftp /usr/lib/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
配置 Nginx 代理
如果需要配置了 Nginx 代理,必须设置 Jenkins 的配置中加入–prefix=/jenkins
nginx 中 server 加入配置:
location /jenkins/ {
proxy_pass http://127.0.0.1:8080/jenkins/;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
设置 Jenkins Location 中的 Jenkins URL 地址为 http://xxx/jenkins/ , 如果有公网地址添加公网地址(没有可以用类似花生壳的内网穿透软件代理下)
这里最好有公网地址,不然无法做到自动构建(自动构建需要结合 webhook 功能)。
配置镜像
使用官方默认地址安装插件的速度比较慢,可以配置国内的镜像地址
Dashboard -> Manage jenkins -> 点击右下角的中文社区 jenkins 中文社区(如果没有则先安装首先安装 Localization: Chinese (Simplified) 插件)
点击【使用】按钮,再点击【设置更新中心地址】,在最底部填入镜像的代理地址 https://updates.jenkins-zh.cn/update-center.json
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Jenkins 使用教程
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论