jenkins是一个持续集成工具,用java语言写的。官方网站:https://www.jenkins.io/
安装jenkins
准备环境
- 2台Centos7的虚拟机
- 关闭防火墙、SELINUX
- 主机名和IP
Jenkins 10.0.0.64
GitLab 10.0.0.63 安装gitlab - linux中能发邮件的账号
安装jdk依赖
yum -y install java-1.8.0-openjdk
查看安装结果:

下载安装jenkins rpm包
wget --no-check-certificate http://mirrors.jenkins-ci.org/redhat/jenkins-2.99-1.1.noarch.rpm # 是国外的源,下载有些慢
rpm -ivh jenkins-2.99-1.1.noarch.rpm
systemctl start jenkins
systemctl enable jenkins 开机自启动
测试启动
访问虚拟机地址,配置文件/etc/sysconfig/jenkins中端口我修改为9999,因为机器上还有其他的服务,占用了8080端口,一般情况下jenkins是独立在一台服务器中的。
访问:http://192.168.112.128:9999/

在服务器上对应的地址上找到初始密码,进去后跳过插件安装,对密码进行重置。


忘记密码的操作
- Configure Global Security
![image]()
- 修改配置并保存
![image]()
- 创建用户或者修改密码
![image]()
jenkins插件


下载上传安装插件
国内的话建议去清华镜像下载插件,速度很赞https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/.
如:下载backup的插件:https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/backup/latest/
jenkins的插件目录是:/var/lib/jenkins/plugins/,现在已经有了我们安装的backup插件。

覆盖插件目录安装插件
可以将一台已经安装好所有插件的jenkins机器,插件复制到新的机器上。jinkens中一切皆文件,要备份只将文件备份起来就行。
如:将一台配置好的jenkins机器上/var/lib/jenkins/plugins/打包,解压到新机器的/var/lib/jenkins/plugins/目录,将jenkins重启systemctl restart jenkins,就完成了新机器的复制配置。
对于可更新的插件,一般来说现在用的很好,就不需要去更新。插件安装的越多,jenkins的功能就越强大。
jenkins目录
rpm -ql jenkins来看jenkins的 相关目录
/etc/init.d/jenkins # 启动文件
/etc/logrotate.d/jenkins # 日志相关
/etc/sysconfig/jenkins # jenkins的配置文件,主要配置工作目录,启动用户,启动端口
/usr/lib/jenkins #
/usr/lib/jenkins/jenkins.war # jenkins的程序文件,升级jenkins,替换最新的war包,重启即可。
/var/cache/jenkins # 程序目录
/var/lib/jenkins # jenkins的主目录(工作目录),可以在配置文件中修改主目录的位置,这是最重要的一个目录,备份主要打包这个目录。
# jobs中存放jobs的配置以及每次构建的结果。
# plugins目录,存放已经安装好的插件
# workspace 工作区目录
/var/log/jenkins # 日志目录
freestyle-job创建
1.新建一个freestyle-job的项目

在jobs目录下自动生成了项目的文件。不要轻易修改项目的名字,因为修改了之后jenkins会保留原来的目录并且生成一个新的目录。

2.项目的配置


3.执行项目
点击立即构建

4.控制台输出

jenkins获取gitlab源代码
jenkins的启动用户是jenkins,是没有高级命令的操作权限的。我们可以将jenkins的用户改成root用户。

修改启动用户为root
修改启动用户:vim /etc/sysconfig/jenkins
JENKINS_USER="root"
重启: systemctl restart jenkins
获取源码
1.进入项目

2.点击配置

3.配置gitlab地址
会遇到的问题,

4.在jenkins服务器上打通gitlab获取代码的权限
以root身份进行生成ssh
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub # 公钥配置到gitlab上
测试clone

5.保存重新打开项目配置

6.配置完成

立即构建

查看工作区中,我们的代码已经在了

jenkins部署html网站
准备工作
1.需要一台安装有Apache的服务器。

安装 yum install httpd -y
启动 systemctl start httpd
测试,项目应该放到/var/www/html/下

2.jenkins服务器上编写脚本,将源码打包传输到Apache服务器上。
ssh连接配置

可以通过当前机器登录到目标机器

mkdir /server/script -p # 创建一个脚本目录
cd /server/script
touch deplpy.sh # 源码打包传输脚本
部署脚本编写
脚本放在mkdir -p /server/script这个目录
# 文件名 deploy.sh
#!/bin/bash
name=web-$(date +%F)-$(($RANDOM+10000))
host=$1
job_name=$2
cd /var/lib/jenkins/workspace/${job_name} && tar czf /opt/${name}.tar.gz ./*
ssh ${host} "cd /var/www && mkdir ${name}"
scp /opt/${name}.tar.gz ${host}:/var/www/${name}
ssh ${host} "cd /var/www/${name} && tar xf ${name}.tar.gz && rm -f ${name}.tar.gz"
ssh ${host} "cd /var/www && rm -rf html && ln -s /var/www/${name} /var/www/html"
在jenkins服务器上测试脚本

jenkins上配置执行脚本

点击构建,查看log构建成功

访问我们的apache服务器,就可以看到效果了,项目成功部署到服务器上。
Gitlab自动触发构建
当我们的代码仓库更新时,push了一份代码,自动触发jenkins来构建项目。
1.配置jenkins,添加触发器

2.在gitLab的代码仓库中配置

3.gitlab上测试

4.去jenkins上查看,成功构建了项目。

5.本地push代码测试
5.1 本地clone代码,并修改index页面如下

5.2提交代码到master分支

5.3查看接页面结果,结果生效,说明配置完工了。

jenkins返回构建状态到gitlab
在gitlab上就能看到构建的结果,不需要再去jenkins上看构建的结果了。
1.将jenkins到gitlab的链路配置通。

2.

3.在gitLab上生成一个token

4.将token添加到2中打开的add->jenkins中

5.选中配置的token,测试,添加。

6.jenkins项目配置,构建后操作
构建后操作,即及执行构建后,需要执行的动作。
添加这个选项即可。

7.仓库中push代码后看结果
7.1.对代码的改动,并且提交到远端仓库

7.2gitlab上查看执行结果,或直接连接跳转到jenkins上查看结果


直接跳转到jenkins上查看结果

直接查看简易结果




浙公网安备 33010602011771号