Jenkins 、gitlab、实现CICD持续集成

简介: 本文介绍了GitLab与Jenkins的完整安装配置流程。涵盖环境依赖、RPM包安装、配置修改、服务启停及汉化、SSH密钥设置等内容,并详细说明Jenkins插件管理与初始密码获取,助力搭建高效DevOps平台。

Gitlab 安装
1 安装环境依赖

[root@yt6fnjphmaqeyeza ~]# yum install -y curl policycoreutils-python openssh-server postfix wget
Loaded plugins: fastestmirror
Determining fastest mirrors
base                                                                                                                                                                                                                                       | 3.6 kB  00:00:00
docker-ce-stable                                                                                                                                                                                                                           | 3.5 kB  00:00:00
epel                                                                                                                                                                                                                                       | 4.7 kB  00:00:00
extras                                                                                                                                                                                                                                     | 2.9 kB  00:00:00
kubernetes                                                                                                                                                                                                                                 | 1.4 kB  00:00:00
updates                                                                                                                                                                                                                                    | 2.9 kB  00:00:00
(1/3): docker-ce-stable/7/x86_64/primary_db                                                                                                                                                                                                | 118 kB  00:00:00
(2/3): epel/x86_64/updateinfo                                                                                                                                                                                                              | 1.0 MB  00:00:00
(3/3): epel/x86_64/primary_db                                                                                                                                                                                                              | 7.0 MB  00:00:00
Package curl-7.29.0-59.el7_9.1.x86_64 already installed and latest version
Package policycoreutils-python-2.5-34.el7.x86_64 already installed and latest version
Package 2:postfix-2.10.1-9.el7.x86_64 already installed and latest version
Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openssh-server.x86_64 0:7.4p1-22.el7_9 will be updated
---> Package openssh-server.x86_64 0:7.4p1-23.el7_9 will be an update
--> Processing Dependency: openssh = 7.4p1-23.el7_9 for package: openssh-server-7.4p1-23.el7_9.x86_64
--> Running transaction check
---> Package openssh.x86_64 0:7.4p1-22.el7_9 will be updated
--> Processing Dependency: openssh = 7.4p1-22.el7_9 for package: openssh-clients-7.4p1-22.el7_9.x86_64
---> Package openssh.x86_64 0:7.4p1-23.el7_9 will be an update
--> Running transaction check
---> Package openssh-clients.x86_64 0:7.4p1-22.el7_9 will be updated
---> Package openssh-clients.x86_64 0:7.4p1-23.el7_9 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================================================================================================
 Package                                                            Arch                                                      Version                                                            Repository                                                  Size
==================================================================================================================================================================================================================================================================
Updating:
 openssh-server                                                     x86_64                                                    7.4p1-23.el7_9                                                     updates                                                    459 k
Updating for dependencies:
 openssh                                                            x86_64                                                    7.4p1-23.el7_9                                                     updates                                                    510 k
 openssh-clients                                                    x86_64                                                    7.4p1-23.el7_9                                                     updates                                                    655 k

Transaction Summary
==================================================================================================================================================================================================================================================================
Upgrade  1 Package (+2 Dependent packages)

Total download size: 1.6 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/3): openssh-7.4p1-23.el7_9.x86_64.rpm                                                                                                                                                                                                   | 510 kB  00:00:00
(2/3): openssh-clients-7.4p1-23.el7_9.x86_64.rpm                                                                                                                                                                                           | 655 kB  00:00:00
(3/3): openssh-server-7.4p1-23.el7_9.x86_64.rpm                                                                                                                                                                                            | 459 kB  00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                             3.1 MB/s | 1.6 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : openssh-7.4p1-23.el7_9.x86_64                                                                                                                                                                                                                  1/6
  Updating   : openssh-clients-7.4p1-23.el7_9.x86_64                                                                                                                                                                                                          2/6
  Updating   : openssh-server-7.4p1-23.el7_9.x86_64                                                                                                                                                                                                           3/6
  Cleanup    : openssh-server-7.4p1-22.el7_9.x86_64                                                                                                                                                                                                           4/6
  Cleanup    : openssh-clients-7.4p1-22.el7_9.x86_64                                                                                                                                                                                                          5/6
  Cleanup    : openssh-7.4p1-22.el7_9.x86_64                                                                                                                                                                                                                  6/6
  Verifying  : openssh-7.4p1-23.el7_9.x86_64                                                                                                                                                                                                                  1/6
  Verifying  : openssh-clients-7.4p1-23.el7_9.x86_64                                                                                                                                                                                                          2/6
  Verifying  : openssh-server-7.4p1-23.el7_9.x86_64                                                                                                                                                                                                           3/6
  Verifying  : openssh-server-7.4p1-22.el7_9.x86_64                                                                                                                                                                                                           4/6
  Verifying  : openssh-clients-7.4p1-22.el7_9.x86_64                                                                                                                                                                                                          5/6
  Verifying  : openssh-7.4p1-22.el7_9.x86_64                                                                                                                                                                                                                  6/6

Updated:
  openssh-server.x86_64 0:7.4p1-23.el7_9

Dependency Updated:
  openssh.x86_64 0:7.4p1-23.el7_9                                                                                             openssh-clients.x86_64 0:7.4p1-23.el7_9

Complete!

2 获取gitlab 包

[root@yt6fnjphmaqeyeza opt]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm
--2023-11-28 11:22:05--  https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.15.130, 2402:f000:1:400::2
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 427374190 (408M) [application/x-redhat-package-manager]
Saving to: ‘gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm’

100%[========================================================================================================================================================================================================================>] 427,374,190 32.8MB/s   in 11s

2023-11-28 11:22:16 (38.1 MB/s) - ‘gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm’ saved [427374190/427374190]

3、安装gitlab-通过本地的 rpm 包安装gitlab

#执行报错 fastestmirror不能使用,fastestmirror是yum的一个加速插件处理办法就是禁用这个插件 
解决如下:
[root@yt6fnjphmaqeyeza gitlab]# yum localinstall gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm
Loaded plugins: fastestmirror
No such command: locainstall. Please use /usr/bin/yum --help
[root@yt6fnjphmaqeyeza gitlab]# vi /etc/yum/pluginconf.d/fastestmirror.conf
把enabled=1改为0
vi /etc/yum.conf
把plugins=1改为0

3.1 继续执行

[root@yt6fnjphmaqeyeza gitlab]# yum localinstall gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm
Examining gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm: gitlab-ce-10.5.7-ce.0.el7.x86_64
Marking gitlab-ce-10.5.7-ce.0.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package gitlab-ce.x86_64 0:10.5.7-ce.0.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================================================================================================
 Package                                                 Arch                                                 Version                                                       Repository                                                                       Size
==================================================================================================================================================================================================================================================================
Installing:
 gitlab-ce                                               x86_64                                               10.5.7-ce.0.el7                                               /gitlab-ce-10.5.7-ce.0.el7.x86_64                                               1.2 G

Transaction Summary
==================================================================================================================================================================================================================================================================
Install  1 Package

Total size: 1.2 G
Installed size: 1.2 G
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : gitlab-ce-10.5.7-ce.0.el7.x86_64                                                                                                                                                                                                               1/1
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

  Verifying  : gitlab-ce-10.5.7-ce.0.el7.x86_64                                                                                                                                                                                                               1/1

Installed:
  gitlab-ce.x86_64 0:10.5.7-ce.0.el7

Complete!

4、修改gitlab 的配置

[root@yt6fnjphmaqeyeza ~]#  grep -Ev '^#' /etc/gitlab/gitlab.rb |grep -Ev '^$'
external_url 'http://203.34.153.182'
 gitlab_rails['gitlab_email_enabled'] = true
 gitlab_rails['gitlab_email_from'] = '1321529864@qq.com'
 gitlab_rails['gitlab_email_display_name'] = 'jiangshiguang'
 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.qq.com"
 gitlab_rails['smtp_port'] = 587
 gitlab_rails['smtp_user_name'] = "1321529864@qq.com"
 gitlab_rails['smtp_password'] = "pprugrufscxwhbgj"
 gitlab_rails['smtp_domain'] = "smtp.qq.com"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['smtp_tls'] = true

5、测试gitlab命令行是否正确

5.1 需要先执行gitlab的配置重新读取
[root@yt6fnjphmaqeyeza ~]# gitlab-ctl reconfigure
5.2 测试gitlab命令行是否正确
[root@yt6fnjphmaqeyeza ~]# gitlab-rails console
5.3 #测试邮件发送
Notify.test_email('1321529864@qq.com','hello,'hell jiangshiguang').deliver_now

6、 gitlab 的相关命令

##改了gitlab 的配置文件需执行
[root@yt6fnjphmaqeyeza ~]# gitlab-ctl reconfigure
# 启动 | 暂停
gitlab-ctl start | restart | status |stop
#初始化后,gitlab 组件就全部启动了;netstat -tunlp
[root@yt6fnjphmaqeyeza ~]# gitlab-ctl status

7、gitlab 运行的组件如下:
GitLab 由主要由以下服务构成,他们共同承担了 Gitlab 的运作需要
Nginx:静态 web 服务器
gitlab-shell:用于处理 Git 命令和修改 authorized keys 列表
gitlab-workhorse:轻量级的反向代理服务器。
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekig:用于在后台执行队列任务(异步执行)
unicorn:An HTTP server for Rack applications,GitLab Rails 应用是托管在这个

8、首次访问gitlab
访问对应机器的IP地址即可
localhost:端口

9、首次运行gitlab,需要输入2次密码

10、首次访问gitlab完成

#相关组件访问命令
gitlab-ctl start
gitlab-ctI stop
gitlab-ctl stop postgresql
gitlab-ctl restart
gitlab-ctl status
gitlab-ctl reconfigure
gitlab-ctl tail
gitlab-ctl tail redis

gitlab 汉化配置

1.获取汉化代码包
汉化地址 https://gitlab.com/xhang/gitlab,可以进行下载

2.检查汉化包,一定要保证,汉化包的版本,和你gitlab的版本是一致
下载地址 https://gitlab.com/xhang/gitlab/-/tree/v10.2.2-zh
[root@gite1 gitlab learn]# ls
gitlab-ce-10.2.2-ce..e17.x86 64.rpm gitlab-v10.2.2-zh.zip

3.关闭gitlab服务
gitlab-ctl stop

4.解压缩汉化包,拷贝其中内容
[root@git01 gitlab learn]# \cp -rf gitlab-v10.2.2-zh/*
/opt/gitlab/embedded/service/gitlab-rails/
cp: cannot overwrite non-directory /opt/gitlab/embedded/service/gitlabrails/log’ with directory gitlab-v10.2.2-zh/log’cp: cannot overwrite non-directory “/opt/gitlab/embedded/service/gitlabrails/tmp’ with directory gitlab-v19.2.2-zh/tmp

5.再次启动
gitlab-ctl start
检查gitlab的运行日志,检测所有组件的日志,看运行结果
gitlab-ctl tail

gitlab ssh-key 配置

在Linux 机器上 生成密钥对

[root@git01 gitlab learn]# ssh-key  ras

jenkins 安装

1、准备安装所需要的软件环境依赖包:
jdk、jenkins 、Jenkins所需要的插件

下载 jdk、jenkins  所需要的rpm 包
#下载 jdk
[root@jobpsihhlxfisgm2 package]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u181-linux-x64.rpm
--2023-11-28 16:54:32--  http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u181-linux-x64.rpm
#下载jenkins
[root@jobpsihhlxfisgm2 package]# wget https://pkg.jenkins.io/redhat-stable/jenkins-2.99-1.1.noarch.rpm --no-check-certificate

2、安装jdk

[root@jobpsihhlxfisgm2 package]# rpm -ivh jdk-8u181-linux-x64.rpm
warning: jdk-8u181-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8-2000:1.8.0_181-fcs        ################################# [100%]
Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...


验证 是否安装成功
[root@jobpsihhlxfisgm2 package]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

3.安装Jenkins

[root@jobpsihhlxfisgm2 package]# rpm -ivh jenkins-2.99-1.1.noarch.rpm
warning: jenkins-2.99-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jenkins-2.99-1.1                 ################################# [100%]

   验证是否成功
[root@jobpsihhlxfisgm2 package]# java -jar /usr/lib/jenkins/jenkins.war --version
2.99

4、启动jenkins

# 启动 jenkins
[root@jobpsihhlxfisgm2 package]# systemctl start jenkins
# 查看jenkins 状态
[root@jobpsihhlxfisgm2 package]# systemctl status jenkins

5、检查jenkins端口 、防火墙

# 端口
[root@jobpsihhlxfisgm2 package]# netstat -tunlp | grep 8080
# SELinux的命令
[root@jobpsihhlxfisgm2 package]# getenforce
# 防火墙
[root@jobpsihhlxfisgm2 package]# iptables -L

6、检查jenkins 配置文件

[root@jobpsihhlxfisgm2 package]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins 
/usr/lib/jenkins        
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins

jenkins加载插件很多,非常吃内存,且所有操作都是io操作,需要系统IO速度较快,需要机器配置较号
 /etc/sysconfig/jenkins  jenkins配置文件
/var/lib/jenkins  jenkins核心目录:
/usr/lib/jenkins/jenkins.war 存放jenkins WAR包
/etc/sysconfig/jenkins  配置文件
/var/lib/jenkins/  默认的JENKINS HOME目录
/var/log/jenkins/jenkins.log  Jenkins日志文件
/var/lib/jenkins/secrets/initialAdminPassword  存放初始密码
/var/lib/jenkins/plugins  插件目录

7、访问jenkins 初始页面

7.1 访问 jenkins 
ip:port/
报错------------------

7.2 获取admin 初始密码
[root@jobpsihhlxfisgm2 secrets]# cat /var/lib/jenkins/secrets/initialAdminPassword
92bd358fa97a4a2c9b34c3ce6b4770a0

7.3 等待出现安装插件的页面 直接关掉 后面选择导入插件的方式

8、修改密码
必须去修改密码 不然下次无法登录

9、Jenkins 安装插件

修改jenkins的插件下载源
在页面上导入jenkins插件
在服务器上,进行插件迁移

9.1修改jenkins的插件下载源/9.2在页面上导入jenkins插件
在这里插入图片描述

9.3 服务器上进行 jenkins 插件导入

找到提前下载的插件包解压然后移动到Jenkins对应的插件目录
[root@jobpsihhlxfisgm2 package]# tar -zxcf jenkins-plugins.tar.gz
[root@jobpsihhlxfisgm2 plugins]# mv ./* /var/lib/jenkins/plugins/
[root@jobpsihhlxfisgm2 plugins]# systemctl restart jenkins

jenkins 可以进行正常创建任务了...

jenkins 服务器还得和应用服务器进行免密登录

[root@jobpsihhlxfisgm2 plugins]# ssh-copy-id root@[主机ip]

jenkins 主要配置文件

目录
相关文章
|
22天前
|
存储 Kubernetes 数据库
K3S ——轻量化K8S 入门指南
本文介绍轻量级Kubernetes发行版K3s,适用于边缘计算、IoT等场景。涵盖其架构、安装部署(单节点/高可用/离线)、核心组件、网络存储配置及生产建议,助力快速构建轻量化容器平台。
256 4
|
21天前
|
安全 jenkins 测试技术
解密高效测试系统:利用Dify工作流与Jira API的自优化实践
本文介绍测试智能体与Jira集成的四种方案:从基础API同步到全链路CI/CD融合。通过自动化结果反馈、智能解析工单及工作流编排,实现测试任务从触发到验证的闭环管理,有效提升质量保障效率。
|
存储 前端开发 安全
前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
本文全面解析前端三种数据存储方式:Cookie、LocalStorage与SessionStorage。涵盖其定义、使用方法、生命周期、优缺点及典型应用场景,帮助开发者根据登录状态、用户偏好、会话控制等需求,选择合适的存储方案,提升Web应用的性能与安全性。(238字)
548 0
|
Linux
linux grep查看指定内容上下几行
linux系统中,可以利用grep查看指定的内容, 比如:grep “123” test.log //查看test.
5410 0
|
18天前
|
关系型数据库 MySQL Java
开源PolarDB-X备份恢复操作实操
作者介绍: 付文革,航天壹进制(江苏)信息科技有限公司产品研发,专注于数据库备份,主攻MySQL相关数据库以及各种国产分布式数据库的备份恢复,主要使用Java 、Python、Shell等编程语言 航天壹进制(江苏)信息科技有限公司(简称航天壹进制)作为中国航天科工集团有限公司旗下上市公司航天工业发展股份有限公司的全资下属企业,专注于数据安全领域,自主研发并提供数据保护与业务连续性管理产品、解决方案及服务。
|
5天前
|
Linux Docker 容器
docker下部署 vLLM 启动Qwen3-VL-32B-Instruct模型
本文介绍在CentOS系统、A10 6×24G显卡环境下,通过Docker部署vLLM并启动Qwen3-VL-32B-Instruct大模型的完整流程,涵盖镜像拉取、容器配置、多卡并行与显存优化设置,支持32K上下文,附带启动脚本及调用验证示例。
282 1
|
22天前
|
人工智能 自然语言处理 JavaScript
AI智能体实现自主化UI回归测试全解析 Playwright+MCP
Playwright结合MCP与大语言模型,实现AI驱动的自动化测试。通过自然语言指令操控浏览器,降低技术门槛,提升测试效率与可靠性,开启智能测试新时代。
|
21天前
|
设计模式 Java 数据库连接
10大 spring源码设计模式 (图解+秒懂+史上最全)
10大 spring源码设计模式 (图解+秒懂+史上最全)
10大 spring源码设计模式 (图解+秒懂+史上最全)
|
28天前
|
SQL 人工智能 自然语言处理
Spring Boot + GPT:我做了一个能自己写 SQL 的后端系统
本文介绍如何基于Spring Boot与GPT(或国产大模型如通义千问、DeepSeek)构建智能后端系统,实现自然语言自动生成SQL。系统采用分层架构,集成AI语义理解、SQL安全验证与执行功能,提升开发效率并降低数据查询门槛,兼具安全性与可扩展性。
156 7