git + Jenkins + gitlab

安装Jenkins

yum install -y java-1.8.0-openjdk && \
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo && \
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key &&\
yum clean all && yum makecache && \
yum install -y jenkins 

启动Jenkins

systemctl start jenkins


修改源和端口号

[root@192 ~]# cd /var/lib/jenkins/
[root@192 jenkins]# vim hudson.model.UpdateCenter.xml
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json


[root@192 users]# vim /etc/sysconfig/jenkins
JENKINS_PORT="8089"

systemctl restart jenkins

[root@192 ~]# ss -anlt
State       Recv-Q Send-Q       Local Address:Port                      Peer Address:Port              

LISTEN      0      128                      *:22                                   *:*                  
LISTEN      0      50                      :::8089                                :::*   
LISTEN      0      128                     :::22                                  :::*                  

[root@192 users]# cat /var/lib/jenkins/secrets/initialAdminPassword
54991d91cf534a67bb8991c937a0d7be

在这里插入图片描述



创建账户
在这里插入图片描述


在这里插入图片描述



代码流水线管理

创建一个任务
在这里插入图片描述


写一个脚本用来测试

[root@192 ~]# echo 'hello world' > demo.sh
[root@192 ~]# chmod +x demo.sh



选择shell
在这里插入图片描述

生秘钥,给权限

[root@192 .ssh]# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:jSakoY2EPaoFb7rw5dIZ+88I22LxgPxI0Pf5pkg+Mmk root@192.168.30.244
The key's randomart image is:
+---[RSA 2048]----+
|                 |
| o               |
|o.+ . .          |
|.=.=.+   o       |
|.o*oo...S .      |
|.++ + oo         |
|+. =+B .         |
|.oE=O=.oo        |
|...==+=+o        |
+----[SHA256]-----+


[root@192 .ssh]# chmod  700  ~/.ssh

[root@192 .ssh]#  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

[root@192 .ssh]# chmod 600 ~/.ssh/authorized_keys


[root@192 .ssh]# visudo
jenkins ALL=(ALL)       NOPASSWD:/usr/bin/ssh


jenkins执行脚本
在这里插入图片描述


构建一下
在这里插入图片描述


输出查看结果
在这里插入图片描述


现在我们要将代码质量管理和测试部署连接起来。

这时候就用到了git钩子
我们需要安装jenkins插件parameterized

在这里插入图片描述


在这里插入图片描述


选择test001
在这里插入图片描述


再次点击项目设置的时候就会出现Trigger parameterized build on other projects
在这里插入图片描述

在这里插入图片描述


构建,测试一下
在这里插入图片描述


查看效果,增长了
在这里插入图片描述

这样我们每次点击test001 它就会在构建完成之后在对test002进行构建



下载pipeline。这样只需要构建一个项目,就会帮我们完成所有相关项目
搜索插件pipeline
在这里插入图片描述


新建一个试图
在这里插入图片描述

在这里插入图片描述

pipeline 配置
设置第一个构建的项目,从它开始,后面的项目都要跟它进行操作
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击RUN
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我们下次还想看到试图,点击

在这里插入图片描述



Jenkins + gitlab集成

Jenkins + gitlab集成后,实现的功能是 开发写好代码提交至gitlab上,当时开始push到gitlab上之后,jenkins自动帮我们立即构建

这个项目我们需要安装一个gitlab钩子的脚本

提示: jenkins不论想实现什么功能,都需要安装插件!!
在这里插入图片描述


这里需要我们在服务器里面写一个令牌,在jenkins上也写一个令牌。这两个可以连接到一起就可以。

#因为用到了令牌我们还需要在安装一个插件,否则将无法使用。因为令牌是需要登录之后才会有,所以需要有一个管理的插件

插件搜索:Build Aut

在这里插入图片描述

[root@192 ~]# openssl rand -hex 10
fbc1a45fa29bffc506c6

在这里插入图片描述
在这里插入图片描述


然后我们点击保存即可

因为jenkins上也提示我们需要在gitlab上添加钩子脚本



先配置 gitlab秘钥,后面会用到
在这里插入图片描述

[root@192 ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC645pTZtG7lJYTtfjn/JoPan73KkYA9qtAamHy34Lyit5mrUKZ+lo2VqpEIMk2FyKkZ1c9KTFLT8qqiYyVx+fuqH77vbK1sbUIA+8oH/taGagyA8IWIsaEA+77CjP9+jDUvbq1xSZpY1m9vq8CmtkmNqxDB8ePR4riLqJbqH+daKm+j1P84DIlqIV4iNZ/YX+LuO4rsbscdGTZkR9RZ3LU3SYnu3dpHNljk4GvA12X3GpZLYBExeSRfXdPXY1ME/TfcpLGkhK6t2HSuPBFCbqnx7jXx1dh/frStQ9Qa9ZHS48c8o7pyNaQWvXFBt3PvsWO55sRmrn/N23eBbeJEWkT root@192.168.30.244

在这里插入图片描述


因为我这里Jenkins和gitlab在一台主机上,
所以我需要让钩子可以访问本主机
在这里插入图片描述
在这里插入图片描述


添加Webhooks
在这里插入图片描述


填上URL和密码
在这里插入图片描述


测试,可以成功
在这里插入图片描述
在这里插入图片描述


秘钥已经做过了
向git服务器提交代码,验证是否可以自动部署:


[root@192 ~]# echo 'test001' > index.html 

[root@192 ~]# git add index.html 

[root@192 ~]# git commit -m "text"

[root@192 ~]# git push origin master

Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 265 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@192.168.30.244:zyy/test.git
   94dd7e2..c47acb3  master -> master


代码已经传到仓库了
在这里插入图片描述


看一下Jenkins服务的日志

[root@192 ~]# tail -f /var/log/jenkins/jenkins.log

在这里插入图片描述


确实已经自动构建
在这里插入图片描述
在这里插入图片描述



[root@jenkins java]# mv /root/jdk-8u261-linux-x64.rpm .
[root@jenkins java]# ls
jdk-8u261-linux-x64 (1).rpm
[root@jenkins java]# chmod +x jdk-8u261-linux-x64.rpm 
[root@jenkins java]# rpm -ivh jdk-8u261-linux-x64.rpm 
[root@192 ~]# rpm -ivh jdk-8u261-linux-x64.rpm 
[root@jenkins java]# vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}



[root@jenkins java]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
[root@192 ~]# source /etc/profile
[root@jenkins ~]# cd /var/lib/jenkins
[root@jenkins jenkins]# vim hudson.model.UpdateCenter.xml 
 http://mirror.xmission.com/jenkins/updates/update-center.json
[root@jenkins jenkins]# systemctl restart jenkins

[root@192 ~]# mkdir /opt/server/
[root@192 ~]# tar xf apache-maven-3.5.4-bin.tar.gz -C /opt/server/
export M2_HOME=/opt/server/apache-maven-3.5.4
export PATH=$PATH:$M2_HOME/bin
[root@192 ~]# source /etc/profile
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值