jenkins

jenkins是一个持续集成工具,用java语言写的。官方网站:https://www.jenkins.io/

安装jenkins

准备环境

  1. 2台Centos7的虚拟机
  2. 关闭防火墙、SELINUX
  3. 主机名和IP
    Jenkins 10.0.0.64
    GitLab 10.0.0.63 安装gitlab
  4. linux中能发邮件的账号

安装jdk依赖

yum -y install java-1.8.0-openjdk
查看安装结果:
image

下载安装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/
image
在服务器上对应的地址上找到初始密码,进去后跳过插件安装,对密码进行重置。
image
image

忘记密码的操作

  1. Configure Global Security
    image
  2. 修改配置并保存
    image
  3. 创建用户或者修改密码
    image

jenkins插件

image
image

下载上传安装插件
国内的话建议去清华镜像下载插件,速度很赞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插件。
image

覆盖插件目录安装插件
可以将一台已经安装好所有插件的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的项目
image
在jobs目录下自动生成了项目的文件。不要轻易修改项目的名字,因为修改了之后jenkins会保留原来的目录并且生成一个新的目录。
image

2.项目的配置
image
image

3.执行项目
点击立即构建
image
4.控制台输出
image

jenkins获取gitlab源代码

jenkins的启动用户是jenkins,是没有高级命令的操作权限的。我们可以将jenkins的用户改成root用户。
image

修改启动用户为root

修改启动用户:vim /etc/sysconfig/jenkins

JENKINS_USER="root"

重启: systemctl restart jenkins

获取源码

1.进入项目
image
2.点击配置
image
3.配置gitlab地址
会遇到的问题,
image

4.在jenkins服务器上打通gitlab获取代码的权限
以root身份进行生成ssh

ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub # 公钥配置到gitlab上

测试clone
image
5.保存重新打开项目配置
image
6.配置完成
image

立即构建

image

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

jenkins部署html网站

准备工作

1.需要一台安装有Apache的服务器。
image
安装 yum install httpd -y
启动 systemctl start httpd
测试,项目应该放到/var/www/html/下
image

2.jenkins服务器上编写脚本,将源码打包传输到Apache服务器上。
ssh连接配置
image
可以通过当前机器登录到目标机器
image

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服务器上测试脚本
image

jenkins上配置执行脚本

image
点击构建,查看log构建成功
image
访问我们的apache服务器,就可以看到效果了,项目成功部署到服务器上。

Gitlab自动触发构建

当我们的代码仓库更新时,push了一份代码,自动触发jenkins来构建项目。
1.配置jenkins,添加触发器
image
2.在gitLab的代码仓库中配置
image
3.gitlab上测试
image
4.去jenkins上查看,成功构建了项目。
image
5.本地push代码测试
5.1 本地clone代码,并修改index页面如下
image
5.2提交代码到master分支
image
5.3查看接页面结果,结果生效,说明配置完工了。
image

jenkins返回构建状态到gitlab

在gitlab上就能看到构建的结果,不需要再去jenkins上看构建的结果了。
1.将jenkins到gitlab的链路配置通。
image
2.
image
3.在gitLab上生成一个token
image
4.将token添加到2中打开的add->jenkins中
image
5.选中配置的token,测试,添加。
image
6.jenkins项目配置,构建后操作
构建后操作,即及执行构建后,需要执行的动作。
添加这个选项即可。
image
7.仓库中push代码后看结果
7.1.对代码的改动,并且提交到远端仓库
image
7.2gitlab上查看执行结果,或直接连接跳转到jenkins上查看结果
image
image
直接跳转到jenkins上查看结果
image
直接查看简易结果
image

posted on 2021-12-06 22:30  爱吃沙拉的狮  阅读(421)  评论(0)    收藏  举报