Ubuntu 18.04 搭建 Jenkins

前言

工欲善其事,必先利其器

打包是开发过程中必不可少的一步,随着项目的壮大,打包时间越来越长,如果一直手动操作,浪费时间不说,还容易出错。记录一下安装Jenkins的过程,以备不时之需。

环境(要求)

  • 宿主机系统:Ubuntu 18.04
  • root用户最高权限

步骤

安装 JAVA

Jenkins是基于JAVA的应用程序,所以要先安装Java OpenJDK

添加源

安装包software-properties-common,添加java OpenJDK PPA 仓库源

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y

安装JAVA 8

sudo apt install openjdk-8-jdk -y

检查 JAVA 是否安装成功

java -version

安装 Jenkins

Jenkins提供Ubuntu安装包,从该仓库安装

添加Jenkins签名

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add 

添加Jenkins仓库

添加稳定版

sudo apt-add-repository "deb https://pkg.jenkins.io/debian-stable binary/"

添加最新版

sudo apt-add-repository "deb http://pkg.jenkins-ci.org/debian binary/"

更新apt,安装Jenkins

sudo apt update
sudo apt install jenkins -y

启动Jenkins并加入开机自启

systemctl start jenkins
systemctl enable jenkins

检查Jenkins是否启动

Jenkins已经启动,默认端口是8080,检查一下是否已运行

netstat -plntu

配置防火墙

ufw allow ssh
ufw allow http
ufw allow https
ufw enable

如果需要从外部机器打开Jenkins,记得开启防火墙端口,以默认8080端口为例

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

启动Jenkins

浏览器打开localhost:8080,不出意外进入Jenkins界面了,Jenkins会有一个初始的管理密码,查看:

cat /var/lib/jenkins/secrets/initialAdminPassword

安装推荐的插件

复制该密码到浏览器,将进入到Jenkins初始化界面,按照指引安装推荐的插件,等待结束。如果一直提示网络离线,请确保没有使用 VPN,如果用了Shadowsocks,走PAC模式都不行,请关闭。

安装其它插件

正常联网安装

如果网络一直没问题的话,在jenkins内可以安装插件就在 Manage Jenkins -> Manage Plugins -> Available里面搜索想要安装的插件,安装完后记得重启Jenkins,如果网络一直不好,可以选择下面的方式离线安装。

离线下载安装

https://plugins.jenkins.io 下载Jenkins插件,下载好后在Jenkins页面安装,在 Manage Jenkins -> Manage Plugins -> Advanced -> Upload Plugin里上传安装。这里建议安装Environment Injector Pluginbuild-name-setter,第一个是在构建时可以在运行时引入环境变量,在master-slave模式下尤为有用,第二个是可以动态修改构建名称,默认的是#1#2 这样直接根据构建次数命名的非常不直观,自定义以后就能实现类似于DongKe_ad_hoc_#9_origin/ftr-1.5.0_bbeec66325a14413ae17257793028ceb5cd6204b 这样非常直观的名称。

使用 Jenkins

新建 Item开始使用,具体使用方法谷歌,其实不难。也可以查看 WIKI

注意点

如果更改了用户组,记得修改权限,否则Jenkins将抛出IO error无法启动。比如本来/var/lib/jenkins目录所有者是usera,现在需要更改为userb所有:

sudo chown -R userb:userb /var/lib/jenkins
# 修改权限,我是直接给了777
sudo chmod -R 777 /var/lib/jenkins