gitlab和jenkins

GitLab与Jenkins搭建CI/CD流程
本文介绍如何使用GitLab和Jenkins搭建持续集成/持续交付(CI/CD)流程,包括GitLab的安装与配置,以及如何通过Jenkins自动化构建和部署代码。

一、gitlab:(使用主机ip:10.6.12.135)
页面版的git仓库,为了方便,使用docker部署。

安装与部署:

1、首先需要将真机的ssh服务的22端口修改成其他的端口(这里改为2222)
gitlab的docker要与真机的22端口进行绑定,方便使用ssh的方式下载上传
vim /etc/ssh/sshd_config
port 2222

systemctl restart sshd

2、下载对应的gitlab容器
docker search gitlab-ce-zh
docker pull docker.io/twang2218/gitlab-ce-zh	#汉化版

3、启动gitlab容器
docker run -d -h gitlib --name gitlib -p 443:443 -p 8000:80 -p22:22 --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab docker.io/twang2218/gitlab-ce-zh
# -v表示目录映射,实现了数据持久化
# -p端口映射,将docker的端口和主机的端口映射

应用:

1、浏览器输入主机ip:10.6.12.135:8000
第一次登陆需要修改密码,用户名是root

2、gitlab中重要概念:
群组group:对应一个开发团队
项目:对应一个软件项目
成员用户member:对应用的账户,可以将用户加入到组或者项目中去

3、使用:

创建一个名为sda的组,类型为公开

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

使用管理员,创建一个名为jason的用户,创建的时候不能设置密码
创建完毕之后修改用户信息可以修改密码

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

创建一个名为mypro的项目,类型为公开
创建完毕之后,会有一系列提示信息
根据这些信息可以在主机上构造自己的git然后和gitlab仓库关联起来

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

将用户sda添加到项目中,角色为主程序员

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

4、git命令补充说明:
git pull	#同步文件
git tag	#查看当前的标记
git tag 1.0	#当前的标记设置为1.0

git remote add origin http://gitlib/sda/mypro.git
需要变成
git remote add origin http://10.6.12.135:8000/sda/mypro.git
# 是为了将本地仓库和gitlab仓库进行关联,注意这里的端口是8000,如果不写则是80会出错
# 之后只需要执行 git add .	git tag 2.0		git commit -m "描述"
# git push		gitpush --tags 就可以了,不在需要指明gitlab的地址了


git clone http://10.6.12.135/sda/mypro.git
# 克隆git仓库,直接和gitlab关联


5、使用ssh免密上传:
默认使用的是http的方式进行上传和下载的
git提供了三种访问方式,hhtp,ssh,git
这里使用ssh实现免密上传
右上角个人信息-->左侧导航栏-->ssh秘钥
对应区域内填写ssh-keygen生成的公钥

在这里插入图片描述

	之后执行:
	git remote add origin git@10.6.12.135:sda/mypro.git	#关联仓库

二、jenkins:(使用主机ip:10.6.12.136)
是一款就java开发的工具,可以监视重复工作的执行,可以用于构建和测试各种项目。方便实现CI/CD(持续集成/持续交付)。结构如下:
在这里插入图片描述
如果应用服务器直接到gitlab上下载对应的代码,还需要在每一台上进行构建,这样比较麻烦。
开发人员向gitlab上提交编写好的代码,jenkins将代码同步到本地进行构建,然后应用服务器到jenkins上下载已经构建好的程序,这样节省了构建的时间。

安装与部署:

yum -y install java-1.8.0-openjdk-devel
rpm -ivh jenkins-2.204.1-1.1.noarch.rpm	#到jenkins官网下载

systemctl start jenkins
systemctl enable jenkins
访问 http://10.6.12.136:8080

首次登录的密码存放在/var/lib/jenkins/secrets/initialAdminPassword这个文件下
首次登陆先不要安装任何插件,jenkins默认使用的是外国的镜像,因此安装比较费时

安装插件:(页面默认是英文版的,我这里安装了汉化插件)
在这里插入图片描述
在这里插入图片描述

只需要修改对应的url就可以了,这里使用的是清华提供的镜像

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

在这里选择两个插件 Git Parameter 和 Localization:chinese(Simplified)两个插件
然后点击直接安装。

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

在安装的过程中可能会出现超时等错误,导致相关插件的依赖插件无法安装
可以根据错误提示到对应的镜像中去下载对应的 .hpi 文件来进行安装。

CI/CD流程:

1、gitlab仓库配置
创建一个名为website的项目,类型为公开
添加用户成为项目的主程序员

2、程序员开发程序,并且提交到gitlab仓库中
mkdir website
git init website
cd website
git remote add origin http://10.6.12.135:8000/root/website.git	#将本地仓库关联到gitlab上

echo "<h1> hello jenkins 1.0 <h1/>" > index.html
git add .
git commit -m "1.0 test"
git tag 1.0
git push -u origin --all	#首次提交
git push -u origin  --tags	#首次提交

echo "<h1> hello gitlab 2.0 <h1/>" >> index.html
git add .
git commit -m "2.0test"
git tag 2.0
git push	#除了首次之外不需要再添加  -u origin了
git push --tags

在这里插入图片描述

3、配置jenkins:
	新建一个任务

在这里插入图片描述

输入任务名为website,这里选择自由风格

在这里插入图片描述

添加git parameter参数,这里的Name相当于一个变量,代表版本
Parameter Type相当于这个变量的类型,是分支/标记(branch/tag)

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

源码管理,使用git的方式,这里使用的$webversion就是上面的Name定义的变量
代表了版本号,或者是分支

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

4、构建:
	构建就是相当于将代码下载到jenkins本地然后进行操作的过程
	jenkins默认将文件下载到了/var/lib/jenkins/workspace
	
	过程:
	a.将软件所在文件夹拷贝到/var/www/html/deploy/pkgs目录下,通过http让应用服务器下载
	b.删除软件文件夹下的.git目录
	c.将软件打包,方便下载
	d.删除原有的软件目录
	e.计算tar包的md5值并且保存到/var/www/html/deploy/pkgs目录下,用于校验
	f.生成/var/www/html/deploy/{last_ver, live_ver}两个文件,last_ver记录上一个版本的版本号,live_ver记录当前版本的版本号

yum -y install httpd
systemctl start httpd
systemctl enable httpd

在这里插入图片描述

以下的脚本就是上述的构建过程

在这里插入图片描述

	deploy_dir=/var/www/html/deploy/pkgs
	cp -r website-$webversion $deploy_dir		# $webversion就是上面定义的变量
	cd $deploy_dir
	rm -fr website-$webversion/.git
	tar -czf website-$webversion.tar.gz website-$webversion
	rm -fr website-$webversion
	md5sum website-$webversion.tar.gz | awk '{print $1}' > website-$webversion.tar.gz.md5
	cd ..
	[ -f live_ver ] && cat live_ver > last_ver
	echo $webversion > live_ver

配置构建之后:

在这里插入图片描述

在git上提交的版本都在这里

在这里插入图片描述

构建完毕之后按钮变成蓝色

在这里插入图片描述

构建完毕之后jenkins服务器上的/var/www/html/deploy/pkgs中有对应的文件

写总结的第七十七天!!!

### 使用 Docker 部署 GitLab Jenkins #### 一、环境准备 为了成功部署 GitLab Jenkins,需满足以下条件: - **硬件需求**:由于 GitLab 占用资源较多,建议服务器至少具备 8GB 内存 4 核 CPU[^2]。 - **软件依赖**:安装最新版本的 Docker Docker Compose。较低版本可能导致容器间网络通信异常,从而引发诸如 `no route` 或 `no host` 的错误提示。 #### 二、拉取镜像 从官方镜像仓库中获取最新的 GitLab Jenkins 镜像: ```bash docker pull gitlab/gitlab-ce:latest docker pull jenkins/jenkins:lts ``` 上述命令会分别下载 GitLab 社区版 Jenkins LTS 版本的镜像文件[^4]。 #### 三、编写 docker-compose 文件 创建一个名为 `docker-compose.yml` 的文件,用于定义服务配置: ```yaml version: '3' services: gitlab: image: 'gitlab/gitlab-ce:latest' restart: always ports: - "80:80" - "443:443" - "2222:22" volumes: - ./gitlab/config:/etc/gitlab - ./gitlab/logs:/var/log/gitlab - ./gitlab/data:/var/opt/gitlab jenkins: image: 'jenkins/jenkins:lts' restart: always ports: - "8080:8080" - "50000:50000" volumes: - ./jenkins:/var/jenkins_home environment: - DOCKER_HOST=tcp://docker:2375 privileged: true ``` 此配置文件实现了两个主要功能: 1. 启动 GitLab 并映射其端口到主机上(HTTP 端口 80、HTTPS 端口 443 及 SSH 端口 2222)。 2. 启动 Jenkins 并设置必要的环境变量以便支持 Docker 插件运行[^1]。 执行以下命令启动服务: ```bash docker-compose up -d ``` #### 四、初始化与验证 1. 访问浏览器中的地址 http://<your-server-ip> 来确认 GitLab 是否正常工作;默认管理员账户可通过首次登录时设定密码完成初始化。 2. 对于 Jenkins,初次访问 URL 如 http://<your-server-ip>:8080 将引导用户输入初始管理密码。该密码可以通过如下指令提取: ```bash docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword ``` 此操作允许新用户进入系统并继续安装推荐插件以及创建首个管理员账号[^3]。 #### 五、集成两者的工作流 当两套工具都已就绪后,可以进一步探索它们之间的协作方式,比如利用 Webhook 实现持续交付流水线自动化等高级场景。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值