CI/CD环境搭建

服务简介

GitLab

是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的开源代码管理平台,基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理,Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch,意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

Harbor 是一个开源的镜像仓库服务,用于容器镜像、Helm Chart 等符合 OCI 标准的 Artifact 的安全托管及高效分发,能够帮助您跨云原生计算平台(如 Kubernetes 和 Docker)一致且安全地管理 Artifact。

QingCloud Harbor 镜像仓库将 Harbor 制作成了 App,能直接在 AppCenter 进行一键部署,并提供了一个高可用、高安全、高性能的解决方案。

部署安装

Gitlab

rpm源:https://packages.gitlab.com/gitlab/gitlab-ce

1.创建部署目录及YAML

shell 复制代码
mkdir /data/gitlab
vim /data/gitlab/docker-compose-gitlab.yml
yaml 复制代码
version: "3.6"
services:
  gitlab:
    container_name: gitlab
    image: gitlab/gitlab-ce:14.1.8-ce.0
    restart: always
    environment:
      TZ: Asia/Shanghai
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.1.241'                 #WEB站点URL
        gitlab_rails['time_zone'] = 'Asia/Shanghai'          #时区
        gitlab_rails['smtp_enable'] = true                   #开启邮件服务
        gitlab_rails['smtp_address'] = "smtp.qq.com"      #设置邮件服务器地址
        gitlab_rails['smtp_port'] = 465                      #邮箱服务器端口
        gitlab_rails['smtp_user_name'] = "xxx@qq.com"  #发件邮箱
        gitlab_rails['smtp_password'] = "xxxxxxxxxx"      #发件邮箱密码
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_tls'] = true
        gitlab_rails['gitlab_email_from'] = 'xxx@qq.com'      #发件邮箱
    ports:
      - "181:80"
      - "122:22"
      - "1443:443"
    volumes:
      - ./data:/var/opt/gitlab
      - ./logs:/var/log/gitlab
      - ./config:/etc/gitlab

2.启动gitlab(需要初始化 启动会有点慢)

shell 复制代码
docker-compose -f docker-compose-gitlab.yml up -d

3.访问后台管理页面(初始root密码在config目录initial_root_password)

shell 复制代码
#查看root初始密码
cat /data/gitlab/config/initial_root_password
#登录后台
http://192.168.1.141:181

jenkins

下载地址:https://www.jenkins.io/download/

1.创建部署目录

shell 复制代码
mkdir /data/jenkins

2.创建docker-compose文件

shell 复制代码
vim /data/jenkins/docker-compose-jenkins.yml
yml 复制代码
version: '3'
services:
  jenkins:
    restart: always
    image: jenkins/jenkins:lts
    container_name: jenkins
    user: root
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - '8080:8080'
      - '50000:50000'
    volumes:
      - /data/jenkins/jenkins_data/:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker

3.启动jenkins

shell 复制代码
docker-compose -f docker-compose-jenkins.yml up -d

4.访问管理后台

shell 复制代码
http://IP:port

admin初始密码文件位置: /data/jenkins/jenkins_data/secrets/initialAdminPassword

harbor(离线安装包-v2.5.6)

官网:https://github.com/goharbor/harbor

注意: 安装时需关注对应版本的前置要求【服务器配置,docker版本,docker-compose版本等。】


1.下载离线安装包

shell 复制代码
mkdir /data/harbor/src
cd /data/harbor/src
wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz

2.解压离线安装包

shell 复制代码
cd /data/harbor/src
tar zxf harbor-offline-installer-v2.5.6.tgz
cd /data/harbor/src/habor

3.修改配置文件

shell 复制代码
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
yml 复制代码
hostname: 192.168.1.241       			#本机IP或者域名
http:
  port: 80                    			#http端口
https:
  port: 443                   			#https端口,如果不需要注释掉此部分即可
  certificate: /your/certificate/path   #ssl证书位置,本地目录绝对路径
  private_key: /your/private/key/path
harbor_admin_password: 123456 			#后台admin初始密码
database:
  password: 123456                      #设置数据库初始密码
  max_idle_conns: 100
  max_open_conns: 900
data_volume: /data/harbor/data			#数据目录位置(本地目录绝对路径)
# Log configurations
log:
  level: info 							#日志级别
  local:
    rotate_count: 50					#日志文件个数
    rotate_size: 200M					#单个日志大小
    location: /var/log/harbor			#日志位置
###########其余配置保持默认即可

4.执行安装,等待安装完成即可

shell 复制代码
cd /data/harbor/src/habor
./install

无报错打印successfully即安装完成

5.访问后台管理界面(创建用户,创建项目,用户授权)

shell 复制代码
http://IP:Port
相关推荐
IT-民工2111014 小时前
CI/CD 实践总结
运维·ci/cd·自动化
蚊子不吸吸1 天前
DevOps开发运维简述
linux·运维·ci/cd·oracle·kubernetes·gitlab·devops
老攀呀2 天前
CI/CD 的概念
ci/cd
aklry2 天前
CI_CD
ci/cd
flying robot6 天前
GitHub Actions的 CI/CD
ci/cd·github
程序员雷叔6 天前
自动化测试类型与持续集成频率的关系
功能测试·测试工具·jmeter·ci/cd·单元测试·测试用例·postman
檀越剑指大厂6 天前
【MySQL系列】理解 `utf8mb4` 和 `utf8mb4_unicode_ci`
数据库·mysql·ci/cd
划碎、时光7 天前
Jenkins Pipeline 部署总结
ci/cd·jenkins
IT-民工211107 天前
Tekton 与其他 CI/CD 工具相比,有什么不同之处
ci/cd·tekton
一叶飘零_sweeeet7 天前
Jenkins 发布 Java 项目:高效持续集成与部署
java·ci/cd·jenkins