jenkins_gitlab 搭建

基本概念:

持续集成(Continuous Integration),简称CI,是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试。

持续交付(Continuous Delivery),指的是在持续集成的环境基础之上,将代码部署到预生产环境

持续部署(Continuous Deployment),是指在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

 

Gitlab:

 

官网: https://docs.gitlab.com/

 

GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

 

Git的优点

git是分布式的,svn不是

git分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看log。

GIT分支和SVN的分支不同

分支在SVN中实际上是版本库中的一份copy,而git一个仓库是一个快照,所以git 切换、合并分支等操作更快速。

git有一个强大的代码仓库管理系统 - gitlab

可以很方便的管理权限、代码review,创建、管理project

 

 

 

Gitlab部署:

 

安装组件:

 yum install curl policycoreutils openssh-server openssh-clients postfix git –y

 

启动postfix设置开机自启动:

systemctl start postfix && systemctl enable postfix

 

 

设置gitlab源:

cd /etc/yum.repos.d/

touch gitlib.repo

cat >> gitlib.repo <<Eof

[gitlab-ce]

name=gitlab-ce

baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7

gpgcheck=0

enabled=1

gpgkey=https://packages.gitlab.com/gpg.key

Eof

 

安装gitlan源:

yum install -y gitlab-ce

 

初始化配置,并启动gitlab(时间比较长):

gitlab-ctl reconfigure

 

查看gitlab-ctl状态:

gitlab-ctl status   

 

 

注:建议内存为2G或以上,否则可能出现有进程id一直变化,访问报错502

注:如果内存为2G以上,访问502,可以通过:

gitlab-ctl status 查看是否存在有进程的id一直变化

gitlab-ctl tail 进程名 查看具体报错信息

 

 

浏览器输入服务器ip,访问Gitlab页面:

 

 

 

设置好新密码后,会自动跳转到登陆界面,默认用户名为:root,输入设置的密码登陆即可.

 

设置中文:

 

关闭自动注册功能:

测试创建项目:

在一开始的gitlab首页,选择新建项目,填写项目信息:

可以参考创建后的项目提示,在本机使用该项目,并推送:

 

在客户端建立ssh免密验证,并测试:

useradd test

passwd test

su test

ssh-keygen -t rsa -C "gitlab-test"

 

cd /home/test/.ssh/

cat id_rsa.pub

 

将创建的pub,添加到gitlab上

 

再到test项目,获取链接信息:

 

服务器上执行:

git clone git@192.168.1.28:root/test.git  (git@192.168.1.28为应该为再项目上获取的链接信息,因为该链接的域名是默认的,目前是修改为ip地址)

 

注:测试的时候时用的子账号,非root且没有设置sodu权限,是在子账号的家目录去git的

 

在gitlab上添加部署密钥,密钥创建的方式同上面创建与gitlab密钥方式一样:

 

 

 

Jenkins:

 

官网: https://www.jenkins.io/

 

 Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

 

 

 

配置JAVA环境:

因为Jenkins是用java写的,所有需要配置下java环境

JDK下载地址: https://www.oracle.com/java/technologies/javase-downloads.html

 

将jdk下载完毕后,上传到服务器内进行解压:

tar -xf jdk-8u261-linux-x64.tar.gz   ##解压jdk文件

mv jdk1.8.0_261 jdk_1.8    ##修改解压jdk文件名称

 

编辑/etc/profile环境变量文件,设置JAVA_HOME和PATH,指定java文件

 vim /etc/profile 在最下方添加:

   export JAVA_HOME="/app/jdk_1.8"    ##java_home信息为解压的jdk路径信息

   export PATH=”$JAVA_HOME/bin:$PATH”

 

使配置文件生效,并测试环境变量设置正常

  source /etc/profile

  java –version   ##java版本信息

 

 

安装Jenkins:

  wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install jenkins

 

修改配置文件:

由于是自定义安装的java包,不是在默认的/usr/bin/ 下,需要修改下jenkins搜索java的路径

vim  /etc/init.d/jenkins

在 candidates=  字段.添加下:

 

 

 

因为gitlab所使用的puma占用了8080端口,而jenkins的默认端口也为8080,需要修改下默认端口:

vim /etc/sysconfig/jenkins

JENKINS_PORT=  字段进行修改

 

 

 

启动Jenkins:

 systemctl start jenkins && systemctl enable jenkins

 

修改update源(不修改可能访问会出现: Please wait while Jenkins is getting ready to work 报错):

cd /var/lib/jenkins/

vim hudson.model.UpdateCenter.xml

将原本的url链接修改为:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

 

使用ip:8081访问jenkins:

 

 

根据界面的提示输入密码登陆,选择推荐安装,创建密码即可,

 

 

安装Gitlab插件:

Manage Jenkins >Manage Plugins> 搜索 gitlab 选项需要的插件 下载

 

 


 

 

实现持续集成:

 

 

创建一个项目,选择git的方式(如果是svn需要下载svn插件)

 

 

选择添加证书,选择ssh证书,将部署证书的私钥复制上去

(主要是私钥文件,在gitlab上给的是公钥信息,这一步是gitlan与jenkins建立认证)

凭证的username 需要时存在与gitlab的用户

 

 

 

 

 

选择证书文件,如果免密建立不起来的话,会有报红,显示无法连接到gitlab链接

 

 

 

 

 

设置完毕后,点击保存,跳转到工程界面,点击立即构建即可:

 

posted @ 2021-02-26 10:14  努力变强的菜鸟  阅读(1353)  评论(0)    收藏  举报