Gitlab+Jenkins自动化部署

一、Gitlab搭建

1、准备源

cat >>/etc/yum.repos.d/gitlab-ce.repo<<EOF
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
EOF

2、yum安装

yum install gitlab-ce -y

gitlab-ctl reconfigure  #第一次启动重载配置
netstat -tunlp|grep 80  #查看80端口

网页打开http://IP:80

3、管理命令

gitlab-ctl reconfigure        #第一次启动加载配置
gitlab-ctl start                   # 启动
gitlab-ctl stop                   #停止
gitlab-ctl restart                #重启
gitlab-ctl status                #查看状态

gitlab-ctl tail                     #查看日志

二、java环境安装

1、把下载jdk包解压

tar zxvf jdk-8u211-linux-x64.tar.gz

mv jdk1.8.0_211 /usr/local/jdk1.8

2、配置环境变量

vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar

source /etc/profile

3、查看java安装完成没

java -version

三、安装Jenkins

1、安装下载完的rpm包

yum install jenkins-2.190.1-1.1.noarch.rpm -y

2、修改Jenkins的配置文件

vim /etc/sysconfig/jenkins

JENKINS_HOME="/data/jenkins"  #修改目录
JENKINS_USER="root"        #修改执行的用户,用jenkins用户会出现权限问题
JENKINS_PORT="8001"        #修改下端口号

3、创建目录,启动

mkdir /data/jenkins

systemctl restart jenkins

这时候报错了,找不到java启动文件

Starting Jenkins bash: /usr/bin/java: No such file or directory

解决办法:

vim  /etc/init.d/jenkins

candidates="
/usr/local/jdk1.8/bin/java
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/bin/java
"

4、重启下服务

systemctl daemon-reload

systemctl restart jenkins

打开网页http://ip:8001

 出现Jenkins离线的情况,解决办法:

cd /data/jenkins/updates/
vim default.json
{"connectionCheckUrl":"http://www.baidu.com/"改成百度
cd /data/jenkins/
vim hudson.model.UpdateCenter.xml
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>

重启服务:

systemctl restart jenkins

安装推荐的软件就可以

主页-系统管理-插件管理
我们安装几个插件 ,直接搜索就可以
ssh #执行远程脚本
gitlab #集成gitlab用
Build Authorization Token Root #构建授权token
Gitlab hook #钩子插件

四、配置jenkins和gitlab秘钥对

配置秘钥对,让Jenkins和gitlab通信无需验证

在服务器执行ssh-keygen

系统管理-凭据-添加凭据-导入私钥

 把公钥放入gitlab中

五、配置Jenkins的ssh服务器

jenkins主页面-系统管理-系统设置

六、创建一个gitlab和Jenkins项目

1、gitlab

创建就行了 点点点就玩了,而且gitlab有步骤,按照步骤用git命令搞git仓库出来

2、jenkins

取个名,项目名,最好可gitlab的项目名一致

在源码管理点git

这个RUL填写git项目的url就是这个 SSH的这个 点开你的项目就能看到了

 触发器,当gitlab有提交时可以触发

 

ssh配置(可选)

如果你不需要执行自定义脚本的话这布跳过

 保存!

七、gitlab hook配置

这第一行就写http://jenkins的地址/job/test_jenkins_gitlab/build?token=123456    #test_jenkins_gitlab 是jenkins的项目名,token是我刚才设置的

点下边ok

如果报错403 说明没有权限,其他的则是配置问题

403报错解决办法:我们把jenkins配置,系统管理-全局安全配置

照我的一致就没问题

参考:https://www.cnblogs.com/wsy1030/p/9228488.html

原文地址:https://www.cnblogs.com/guantou1992/p/11763303.html