GitLab + Jenkins + Sonar Qube 持续集成
一. 持续集成
让产品快速迭代,同时还能保证高质量,简化工作流程
二. 持续交付
让通过持续集成后的代码可以部署
三. 持续部署
四. 持续集成的实施流程
五. gitlab
5.1 gitlab安装配置
5.1.1 安装gitlab服务依赖包
从gitlab官网找依赖包安装方法:
[root@gitlab2 ~]# sudo dnf install -y curl policycoreutils openssh-server perl
[root@gitlab2 ~]# sudo dnf install postfix
[root@gitlab2 ~]# sudo systemctl enable postfix
[root@gitlab2 ~]# sudo systemctl start postfix
5.1.2 下载并安装gitlab服务
从官网下载慢,从清华大学源下载:
- 下载
- 安装
[root@gitlab2 ~]# yum localinstall gitlab-ce-14.3.0-ce.0.el8.x86_64.rpm -y
5.1.3 配置gitlab服务(访问域名、邮箱、关闭Prometheus)
5.1.3.1 配置访问域名
- 配置/etc/gitlab/gitlab.rb这个配置文件, 配置external_url = 域名或ip
2. 启动gitlab实例
sudo gitlab-ctl reconfigure
5.1.3.2 配置邮箱(新注册用户给用户放邮件修改密码用)
配置/etc/gitlab/gitlab.rb这个配置文件, 来配置邮箱:
- emai settings
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
# 发件邮箱
gitlab_rails['gitlab_email_from'] = 'kkang@bj-tangseng.com'
# 邮件显示的发件人
gitlab_rails['gitlab_email_display_name'] = 'ts-gitlab'
- GitLab email server settings
gitlab_rails['smtp_enable'] = true
# smtp发件服务器
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
# 发件邮箱账号
gitlab_rails['smtp_user_name'] = "kkang@bj-tangseng.com"
# 发件邮箱客户端授权码
gitlab_rails['smtp_password'] = "111"
gitlab_rails['smtp_domain'] = "bj-tangseng.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
5.1.3.3 关闭Prometheus
配置/etc/gitlab/gitlab.rb这个配置文件, 来关闭Prometheus:
5.1.4 初始化gitlab服务,启动gitlab服务
5.1.4.1 初始化gitlab服务
[root@gitlab2 ~]# gitlab-ctl reconfigure
5.1.4.2 启动gitlab服务
gitlab-ctl restart
5.1.4.3 每次修改/etc/gitlab/gitlab.rb这个配置文件后都要gitlab-ctl reconfigure
5.2 gitlab中的组、项目、用户的关系
六. jenkins
6.1 jenkins介绍
开源持续集成工具,由java开发;
jenkins本身是一个调度平台,本身不处理任何事情,调用插件来完成工作
6.2 jenkins安装
先安装,然后启动后跳过安装插件的步骤,进入jenkins先改管理员密码
6.3 jenkins安装插件
6.3.1 直接安装插件
- 设置国内服务器加速插件安装
- 查找插件并安装
6.3.2 下载 .hpi 插件文件安装
- 从清华大学网下载 .hpi插件文件
- 安装
6.3.3 从其他jenkins上导出插件包直接安装
- 停止jenkins服务
systemctl stop jenkins
- 进入jenkins存放插件的目录
- 将plugins目录删除
- 将插件包解压,然后将解压后的plugins目录复制到/var/lib/jenkins/目录下
- 将目录/var/lib/jenkins/目录的属主和属组改为jenkins
chown -R /var/lib/jenkins/
- 启动jenkins服务
systemctl start jenkins
6.4 jenkins配置文件
vim /etc/sysconfig/jenkins
六 jenkins与gitlab集成
6.1 开发提交代码到gitlab
6.2. jenkins上安装与gitlab集成所需插件
插件名称 插件作用
Credentials Plugin 允许在Jenkins中存储认证的凭据
Git Client 允许Jenkins使用git
Git 允许Jenkins集成git
Gitlab 允许gitlab触发Jenkins构建并在gitlab中显示结果
Gitlab Hook 允许gitlab自动触发jenkins构建项目
Gitlab Authentication gitlab身份验证插件
6.3. jenkins创建freestyle项目,然后配置代码源为gitlab项目地址
-
在Jenkins后台为用户root生成一对密钥
-
将Jenkins的公钥放到gitlab中
-
在Jenkins上配置ssh凭据
-
将项目源码管理设置为指定gitlab地址,然后配置使用的免密登录gitlab凭据,配置要下载的代码分支
七 jenkins参数化构建
7.1 文本参数
-
在项目中设置一个文本参数test-variable
-
构建时使用这个文本参数
7.2 选项参数
7.3 Git Parameter
-
需要安装插件Git Parameter Plug-In
-
在项目中设置Git Parameter
- 在项目中使用Git Parameter