一、jenkins介绍和gitlab部署

发布于:2025-06-26 ⋅ 阅读:(21) ⋅ 点赞:(0)

一、jenkins介绍

jenkins和持续集成的关系

Jenkins 是实现持续集成(CI)最流行的自动化工具,它负责自动构建、测试和部署代码,确保团队能频繁且可靠地集成代码变更。

持续集成和敏捷开发的关系

敏捷开发是一种"快速迭代、灵活应对变化"的 开发方法,强调小步快跑、持续交付。
持续集成是一种"自动合并代码、立即测试"的 技术手段,确保代码随时能正常工作。

它们的关系就像:

  • 敏捷是"怎么干活"(方法论),持续集成是"怎么保证干得好"(工具支持)。

  • 敏捷说:"我们要每周交付新功能!" 持续集成说:"放心,每次改代码我都自动检查,不会翻车。"

没有持续集成的敏捷 → 容易代码混乱,迭代越快bug越多。
没有敏捷的持续集成 → 能保证质量,但可能跟不上快速变化的需求。

最佳搭档:敏捷靠持续集成实现"又快又稳",持续集成靠敏捷发挥最大价值。

流程整合

持续集成、持续交付

CI(持续集成) = 频繁集成代码 + 自动化测试(确保代码质量)
CD (继续交付)= 自动化发布(持续交付:手动点发布;持续部署:全自动发布)

Devops和CICD(持续集成、持续交付的)关系

DevOps 是一种软件开发和运维(IT运营)的文化、实践与工具的结合体,旨在通过自动化、协作和持续改进,缩短软件开发周期,提高交付效率和质量。

  • CI/CD 是 DevOps 的核心技术实践,是实现 DevOps 目标(快速交付、高质量)的关键工具链。

  • DevOps 是更广泛的文化和方法论,包含 CI/CD 但不仅限于此。

二、jenkins准备

getlab、gethub区别

  • 用 GitHub:想玩开源、蹭社区、轻量协作(我个人理解:就是一个社区仓库,可以把想公开的项目放上去,且基础的版的github不支持自托管)。

  • 用 GitLab:要免费私有库、自托管、或全套 DevOps(我个人理解:公司一般用这个管理项目,因为他支持部署在公司内部,私有化部署,保证代码安全)。

对比项 GitHub GitLab
私有仓库 免费但协作人数受限 完全免费,不限协作人数
CI/CD 需配置 GitHub Actions 内置强大 CI/CD(开箱即用)
自托管 付费(Enterprise Server) 免费(社区版 CE)
企业级功能 依赖插件 原生支持(安全扫描、K8s 集成)
适用场景 开源/小团队 企业私有项目/完整 DevOps 流程

 jenkins持续集成流程图

 环境准备

名称 ip地址 需要安装的软件
代理托管服务器 192.168.157.148 gitlab-12.4.2
持续集成服务器 192.168.157.159 Jenkins-2.190.3, JDK1.8, Maven3.6.2, Git, SonarQube
应用测试服务器 192.168.157.150 jdk1.8,tomcat8.5

三、gitlab

gitlab安装

gitlab用来托管代码服务。

一、安装相关依赖和基本配置
yum -y install policycoreutils openssh-server openssh-clients postfix 

二、启动ssh服务&设置为开机启动(很多机器都设置了)
systemctl enable sshd && sudo systemctl start sshd
查看是否设置成功或查看是否已设置
systemctl status sshd

三、设置postfix开机自启,并启动,postfix支持gitlab发信功能(启动这个时,主机名不要是ip,必须有主机名)
systemctl enable postfix && systemctl start postfix
查看是否启动
systemctl status postfix 

四、如果开启了防火墙,开放ssh以及http服务,然后重新加载防火墙列表(没开启防火墙救不用设置)
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

下载和安装(二进制方式安装)

五、下载git包,二进制方式传达/home/jenkins文件夹
二进制传到/home/jenkins目录
ll /home/jenkins
gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm

安装
rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rp

[root@k8s-master jenkins]# rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm 
警告:gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:gitlab-ce-12.4.2-ce.0.el6        ################################# [100%]
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

#上面提示让我们修改/etc/gitlab/gitlab.rb,可以修改访问端口
vi /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com' ---> external_url 'http://192.168.157.148:82'
#nginx['listen_port'] = nil ---> nginx['listen_port'] = 82
#分别是修改了访问ip和端口,启动gitlab是用nginx启动的,所以nginx的端口也修改为82

六、重载加载配置及启动gitlab
gitlab-ctl reconfigure #这个过程会很慢
gitlab-ctl restart

如果有防火墙,需要放开82端口
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload

 浏览器访问:http://192.168.157.148:82

第一次登录需要设置新密码,账号是root。登录成功如下:

设置中文

gitlab新增组、用户和项目

创建组,并保存

 创建用户

设置如下,其他参数可用默认值 

 保存后,在这里设置用户密码

组添加用户成员

新增用户并且分配权限:

Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developrr:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
Owner:可以设置项目访问权限-VisibilityLevel、删除项目、迁移项目、管理组成员,开发组组长可以赋予这
个权限 

该用户就可以登录了,第一次登录也是要重置密码。


网站公告

今日签到

点亮在社区的每一天
去签到