推广 热搜: 可以  企业  page  搜索引擎  个数  百度  使用    选择  设备 

部署GitLab服务器

   日期:2024-12-18     移动:http://ww.kub2b.com/mobile/quote/5725.html

  • 本实验采用华为云ECS进行,模拟真实工作环境
  • 当然本地电脑环境配置达标,也可以在本地电脑使用VMware虚拟机完成
  • 本实验供需4台云主机,全部使用Rocky Linux8.5操作系统,2vCPU,4G内存
  • 具体要求如下
主机名IP地址配置角色windows––程序员develop192.168.0.10|公网IP2vCPU,4G内存程序员gitlab192.168.0.20|公网IP2vCPU,4G内存远程仓库jenkins192.168.0.30|公网IP2vCPU,4G内存CI/CD服务器web1192.168.0.40|公网IP2vCPU,4G内存web服务器

项目架构图

  • 它是一个开源的git仓库服务器。用于实现代码集中托管

  • 分为企业版和CE社区版

  • 部署方式:软件包部署、容器部署

  • 云主机192.168.0.20,远程连接时需要连接其对应的公网IP地址
  • 将2024-AI大模型Java全链路工程师环境资料/第四模块/gitlab_zh.tar拷贝到gitlab服务器的/root
  • 将2024-AI大模型Java全链路工程师环境资料/第四模块/docker文件夹拷贝到gitlab服务器的/root
  • 通过容器部署GitLab服务
 

修改gitlab服务器的的sshd服务端口号为8022,因为gitlab容器也要用到22端口,有冲突。

vim +17是指打开配置文件时,光标直接定位到第17行。

 

gitlab容器运行需要/etc/resolv.conf文件,如果该文件已存在,则无需创建

 
  • 导入镜像
    • 一个镜像可以创建很多容器。镜像是只读的,容器是可以改变的。
    • 容器相当于是精简的虚拟机,可以像虚拟机一样,对外提供服务。
 
  • 保障数据完整性
    • 为了删容器,不丢失数据,需要把容器需要的数据保存在宿主机上。
    • 在哪台主机上启动容器,哪台主机就是宿主机。
 
  • 创建容器
    • -d后台运行
    • -h gitlab设置容器的主机名
    • –name gitlab是docker ps查看到的容器名
    • -p指定发布的端口号,当访问宿主机443/80/22端口时,这样的请求就发给容器的相关端口
    • –restart always是开机自启
    • -v是映射路径,将容器中指定的路径,映射到宿主机,以便保存容器产生的数据
    • 最后的gitlab_zh是镜像名
 

:如果容启动失败,再次创建有以下错误

 

 

配置gitlab

  • 第一次登陆‑时,要求改密码。密码需要是复杂密码,如1234.com。修改之后,登陆的用户名是root
  • 修改外观设置

点击头像–>退出,重新登录验证

  • 用户:为使用gitlab的用户创建的账号。
  • :用户的集合,可以为部门创建组。将来可以在项目上为组授权,组中所有的用户都会得到相应的权限。
  • 项目:用于保存代码文件的空间。
  • 用户、组、项目之间的关系如下
  • 创建用户
    • 用户名:jerry
    • 密码:1234.com

填写截图上的几项后,其他使用默认配置,点保存。

创建好用户后,点击编辑,可以为他/她设置密码

  • 保存修改后,退出当前账号,使用新账号jerry与其密码1234.com登陆测试。

  • 第一次登陆时,也是要求修改密码,新密码可以设置与旧密码一样。

  • 新建的jerry用户因为权限较小,所以看到的界面,没有root的功能多。

  • 创建组,注意,需要使用root账号创建,这里需要切换回root账户
  • 将jerry用户加到devops组中,角色是"主程序员"
  • 创建项目,管理员root操作
  • 切换为jerry用户,查看项目是否负责

部署GitLab服务器

  • 查看项目路径,采用http方式上传

  • 查看项目说明

  • 在客户端develop服务器(192.168.0.10,连接其公网IP地址)上下载项目,编写代码并上传
 

从gitlab服务器复制地址之后,需要将gitlab单词改为自己gitlab服务器的公网IP地址

 

windows客户端也可以使用git clone克隆远程仓库,提前安装git客户端(安装包在2024-AI大模型Java全链路工程师环境资料/第四模块/cicd中

如果是刚刚安装的git软件需要首先定义全局配置,方可继续使用(执行一次即可

 
 

使用develop服务器编写README.txt文件,并上传至远程仓库

 

重新操作编写代码,并提交远程仓库

 

另一个客户端Windows拉取新代码,并且上传自己的代码(需要windows安装好git客户端)

 

Windows本地仓库中已经多出了数据

Windows上传数据至远程仓库,编写win.txt文件,内容为"Here is Windows file."

 

develop服务器拉取新代码,验证是否能够同步Win.txt

 
 
  • CI:持续集成(Continuous Integration
  • CD:持续交付(Continuous Delivery/Deployment

软件程序上线流程

  1. 程序员将代码上传到gitlab服务器
  2. SRE工程师,通过jenkins服务器自动下载gitlab上的代码
  3. SRE工程师编写自动部署到服务器上的脚本

安装Jenkins服务器

  • jenkins服务器操作(192.168.0.30,需要远程它的公网IP地址
 
 
  • 访问http://jenkins服务器公网IP:8080,进行初始化
 

把查看到的密码粘贴到文本框中,如下

  • 不用创建管理员,使用自带的admin
  • 修改admin密码

使用admin用户,密码123456登录jenkins

  • 安装插件:jenkins的很多功能都是能过插件实现的,比如发邮件、比如中文支持
 
 
  • develop服务器操作
  • 可以在git中使用tag标记将某一次commit提交标识为某一版本
 

在gitlab上查看标记

  • 新建任务
  • 参数化构建过程中"名称"是自己定义的变量名,用于标识tag或分支

git仓库地址,在gitlab上找到myproject仓库的http地址,注意将gitlab名称改为IP地址

指定分支构建的时候,使用上面步骤创建的变量$web

  • 构建测试

在jenkins服务器查看内容,查看是否下载成功

 
 
  • 此时有个问题,1.1版本的代码会覆盖1.0版本的代码,无法实现多个版本代码并存
  • 这个问题可以使用jenkins子目录的方式解决
  • jenkins下载不同的版本到自己的子目录,不共享相同目录

新增时,如果没有中文,英文是"checkout to a sub directory"

测试

 

执行多次构建,构建不同版本

查看下载目录

 
 

自动化部署流程

  1. 程序员编写代码,推送到gitlab服务器
  2. Jenkins服务器从gitlab上下载代码
  3. Jenkins处理下载的代码
      • 删除下载目录的版本库(.git本地仓库)
      • 将下载的代码打包
      • 计算程序压缩包的md5值
      • 在Jenkins上安装httpd服务,共享程序压缩包
  4. web服务器下载软件包,并应用(通过脚本实现
  5. 访问测试
  • 在jenkins上安装、配置httpd共享服务器
 

配置jenkins把gitlab下载的代码打包

  • 在jenkins上修改myproject项目
 

测试修改的任务

浏览器访问:http://jenkins公网IP/deploy/packages/即可看到打包的代码

 

编写自动上线脚本

  • 下载软件包
  • 检查软件包是否损坏
  • 解压、部署到web服务器
 
 

浏览器访问http://web服务器公网IP/current 可以看到部署的文件页面

本文地址:http://ww.kub2b.com/quote/5725.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号