一、Jenkins介绍
1、作为一个可扩展的自动化服务器,Jenkins 可以用作简单的 CI 服务器,或者变成任何项目的持续交付中心。
2、Jenkins 是一个基于 Java 的独立程序,可以立即运行,包含 Windows、Mac OS X 和其他类 Unix 操作系统。
3、Jenkins 可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。
4、通过更新中心中的 1000 多个插件,Jenkins 集成了持续集成和持续交付工具链中几乎所有的工具。
5、Jenkins 可以通过其插件架构进行扩展,从而为 Jenkins 可以做的事提供几乎无限的可能性。
6、Jenkins 可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建、测试和部署。
官网-中文版
镜像
二、Jenkins部署
1、配置java环境
(1)配置jdk环境
tar xf jdk-8u212-linux-x64.tar.gz #解压jdk文件
ln -sv /usr/local/src/jdk1.8.0_212/ /usr/local/jdk #配置软链接,方便之后jdk版本升级
ln -sv /usr/local/src/jdk1.8.0_212/bin/java /usr/bin #jenkins需要在/usr/bin中使用java命令,要不然会报错
(2)修改环境变量
vim /etc/profile #修改环境变量
export HISTTIMEFORMAT="%F %T `whoami` " #修改history命令的输出,添加时间和用户
export export LANG="en_US.utf-8"
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile #加载环境变量
2、安装jenkins
(1)直接war包启动(生产中不建议)
java -jar jenkins-2.164.3.war --help #启动jenkins的war包可以添加的配置项
(2)使用tomcat启动(生产中不建议)
将jenkins的war包上传到tomcat指定的目录,再将tomcat启动即可
(3)deb文件或者rpm包安装
1》安装jenkins
dpkg -i jenkins_2.346.3_all.deb
apt-get install -y daemon net-tools #jenkins进程运行依赖daemon进程
vim /etc/default/jenkins #安装高版本的jenkins配置文件修改后不生效,直接修改/usr/lib/systemd/system/jenkins.service文件
JAVA_ARGS="-Djava.awt.headless=true
-server -Xms1g -Xmx1g -Xss512k -Xmn1g \
-XX:CMSInitiatingOccupancyFraction=65 \
-XX:+UseFastAccessorMethods \
-XX:+AggressiveOpts -XX:+UseBiasedLocking \
-XX:+DisableExplicitGC -XX:MaxTenuringThreshold=10 \
-XX:NewSize=2048M -XX:MaxNewSize=2048M -XX:NewRatio=2 \
-XX:PermSize=128m -XX:MaxPermSize=512m -XX:CMSFullGCsBeforeCompaction=5 \
-XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:+UseParNewGC \
-XX:+CMSParallelRemarkEnabled -Djava.awt.headless=true \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname="192.168.43.112""
JENKINS_USER=root #jenkins要有权限去获取代码
JENKINS_GROUP=root
systemctl start jenkins
2》登录浏览器开始配置
3》安装插件
如果没有特殊的要求,可以先按照推荐的插件进行安装
如出现下述情况,可以先继续安装,之后在进行安装(jenkins的版本低,需要升级jenkins的版本)
4》创建管理员用户
5》实例配置
保存默认的实例就行,修改以后可能会出现问题
6》开始使用
3、jenkins的使用
(1)jenkins版本的升级
jenkins版本的升级也可以在官网下载好war包文件,然后将/usr/share/java/jenkins.war文件替换
(2)jenkins插件安装
(3)jenkins用户管理
安装好jenkins后,添加的用户权限都和管理员的权限一样,容易出现问题,所以需要使用插件Role-based Authorization Strategy
1》首先安装插件
2》创建新用户
首页---》系统管理---》管理用户
3》修改授权策略
首页---》系统管理---》全局安全配置
4》创建角色
在上面的一步应用保存后,系统管理中会出现一个新的选项
5》分配角色
(4)jenkins的邮箱管理
首页---》系统管理---》全局配置
1》配置管理员邮箱,当jenkins出现问题时,会进行邮箱通知
2》发送邮箱(可使用163或者qq邮箱)
(5)jenkins配置免秘钥拉取代码
1》生成秘钥
root@jenkins:/home# su - jenkins
jenkins@jenkins:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jenkins/.ssh/id_rsa):
Created directory '/home/jenkins/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkins/.ssh/id_rsa
Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:EduV9mXtedAueJFVJ28nwtAjgTTqg2+48cUS6iZC9nQ jenkins@jenkins
The key's randomart image is:
+---[RSA 3072]----+
| .+.oo...+*|
| ..=.+= +o*|
| . o .oo+.B=|
| o . ..++=|
| . + S . ..|
| o . E + |
|o o = + o |
|. .o.= o |
| . oo . |
+----[SHA256]-----+
jenkins@jenkins:~$ ls .ssh/
id_rsa id_rsa.pub
2》gitlab添加公钥
3》jenkins配置私钥
首页---》系统管理---》Manger Credentials
4》jobs中配置秘钥
job中配置私钥时,可能会出现报错信息,是因为在两台虚拟机上第一次使用秘钥进行克隆时,需要进行确认,确认完之后就正常了
(6)构建简单的job
1》jenkins实现免秘钥连接web服务器(执行用户命令使用的是jenkins账户)
su - jenkins
ssh-keygen
ssh-copy-id -i /home/jenkins/.ssh/id_rsa.pub www@192.168.43.111
2》配置job
cd /var/lib/jenkins/workspace/linux
tar czvf code.tar.gz index.html
scp code.tar.gz www@192.168.43.111:/data/tomcat/tomcat_appdir/
ssh www@192.168.43.111 "/etc/init.d/tomcat stop && rm -rf /data/tomcat/tomcat_webdir/myapp/* && tar xvf /data/tomcat/tomcat_appdir/code.tar.gz -C /data/tomcat/tomcat_webdir/myapp "
ssh www@192.168.43.111 "/etc/init.d/tomcat start"