[Docker实现测试部署CI/CD----相关服务器的安装配置(1)]

目录

  • 0、CI/CD
    • 系统最终架构图
    • 规划IP地址
  • 1、git配置
    • Git下载
    • pycharm配置git
    • idea配置git
  • 2、GitLab安装与配置
    • 主机要求
    • 拉取镜像
    • 定义 compose.yml
    • 启动gitlab
    • 浏览器访问并修改密码
      • 查看登录密码
      • 修改密码
  • 3、SonarQube 安装与配置
    • 拉取镜像
    • 修改虚拟内存的大小
    • 启动SonarQube
    • 登录 SonarQube
    • 安装汉化插件
  • 4、harbor安装配置
    • 启动访问
    • 新建镜像仓库
  • 5、目标服务器安装配置

0、CI/CD

CI,Continuous Integration,持续集成。即将持续不断更新的代码经构建、测试后也持续不断的集成到项目主干分支。

CD,包含两层含义:Continuous Delivery,持续交付,和 Continuous Deployment,持续 部署。

  • 持续交付:是持续集成的后续步骤,持续频繁地将软件的新版本交付到类生产环境预发, 即交付给测试、产品部门进行集成测试、API 测试等验收,确保交付的产物可直接部署
  • 持续部署:是持续交付的后续步骤,将持续交付的产物部署到生产环境

系统最终架构图

在这里插入图片描述

规划IP地址

IP地址说明安装软件
192.168.40.171gitlab服务器docker、docker compose
192.164.40.172sonarqube服务器docker、docker compose
192.168.40.139目标服务器docker、docker compose
192.168.40.138harbor服务器docker、docker compose、harbor
192.168.40.137jenkins服务器docker、docker compose、jdk

1、git配置

Git下载

       Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linux Torvalds设计开发的,用于管理Linux内核开发。

下载网址:点击这里进入Git官网

在这里插入图片描述
在这里插入图片描述

官网下载太慢,我们可以使用淘宝镜像下载:镜像下载

在这里插入图片描述
在这里插入图片描述
       下载后无脑安装,安装成功后在电脑任一位置右击出现如下图所示内容,则安装成功

在这里插入图片描述

pycharm配置git

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

idea配置git

在这里插入图片描述

在这里插入图片描述

2、GitLab安装与配置

        GitLab 是一个源码托管开源工具,其使用 Git 作为代码管理工具,并在此基础上搭建起 来的 Web 服务。 生产中通常使用 GitLab 搭建私有源码托管平台。

主机要求

        这里要使用 docker 方式来安装 GitLab,所以需要一台安装有 dockerdocker-compose 的主机,且该主机内存至少 4G

拉取镜像

        这里使用由 gitlab 官网发布的社区版镜像 gitlab/gitlab-ce:latest。该镜像最好是先拉取到 本地后再使用,因为该镜像比较大。

[root@gitlab ~]# docker pull gitlab/gitlab-ce

可以看到,占用的内存还是比较大的

在这里插入图片描述

定义 compose.yml

        在任意目录 mkdir 一个子目录,例如在/opt下新建一个 glab 目录。在该目录中新 建 compose.yml 文件

[root@gitlab opt]# mkdir -p /opt/glab

compose.yml文件如下

services:
  gitlab:
    image: gitlab/gitlab-ce
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.40.171:9999' # 设置 GitLab 的配置,包括外部访问 URL 和 SSH 端口等
        gitlab_rails['gitlab_shell_ssh_port']=2222
    ports:
      - 9999:9999
      - 2222:2222
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab

启动gitlab

启动需要一段时间,耐心等待一会

[root@gitlab glab]# docker compose up -d
[+] Running 2/2
 ✔ Network glab_default  Created                                         0.1s 
 ✔ Container gitlab      Started                                         0.5s 

浏览器访问并修改密码

        在浏览器中直接键入 http://192.168.192.171:9999 即可打开登录页面。不过,这个过程 一般需要的时间较长。这里需要登录的用户名与密码。默认的用户名为root,而默认密码需要进入容器中查看。

在这里插入图片描述

查看登录密码

        初始密码在容器中/etc/gitlab/initial_root_password 文件中。所以需要首先进入容器,然后查看该文件内容。然后再将 root 用户名与复制来的密码填写到登录页面的相应位置即可登录成功。

在这里插入图片描述

修改密码

在这里插入图片描述

在这里插入图片描述

用户名为:root 设置新密码为:修改过的密码(密码复杂度要高一点,不然修改不成功),重新登陆即可

3、SonarQube 安装与配置

        SonarQube 是一个开源的代码扫描与分析平台,用来持续扫描、分析和评测项目源代码的质量与安全。 通过 SonarQube 可以检测项目中代码量、安全隐患、编写规范隐患、重复 度、复杂度、代码增量、测试覆盖率等多个维度,并通过 SonarQube web UI 展示出来。

拉取镜像

        由于 SonarQube 需要 Postgres 数据库的支持,所以安装 SonarQube 之前需要先安装 Postgres 数据库。所以需要下载PostgresSonarQube 两个镜像。

[root@sonarqube opt]# docker pull postgres
[root@sonarqube opt]# docker pull sonarqube:9.9-community

/opt下新建一个 sonarqube 目录。在该目录中新建 compose.yml 文件

compose.yml

services:
  postgres:
    images: postgres
    container_name: pgdb
    restart: always
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
  sonarqube:
    image: sonarqube:9.9-community
    container_name: sonarqb
    restart: always
    depends_on:
      - postgres
    ports:
      - 9000:9000
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://pgdb:5432/sonar # 连接postgresql
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar

修改虚拟内存的大小

/etc/sysctl.conf 文件中指定 vm.max_map_count 虚拟内存大小

vm.max_map_count=262144

修改保存后再运行 sysctl –p 命令使 Linux 内核加载文件中的配置

sysctl –p

启动SonarQube

[root@sonarqube sonarqube]# docker compose up -d
[+] Running 3/3
 ✔ Network sonarqube_default  Created                                                                             0.1s 
 ✔ Container pgdb             Started                                                                             0.7s 
 ✔ Container sonarqb          Started 

在这里插入图片描述

登录 SonarQube

        在浏览器键入 SonarQube 服务器的 IP 与端口号 9000,即可打开登录页面。默认用户名与密码都是 admin。

在这里插入图片描述

用户名:admin 设置新密码为:123456

安装汉化插件

在这里插入图片描述

安装成功后,在页面上部就可看到 Restart Server 的提示,重启 SonarQube。

在这里插入图片描述

4、harbor安装配置

harbor的安装可以看我这篇文章 docker harbor的安装使用以及镜像上传和拉取

启动访问

默认用户名为admin,密码是Harbor12345

在这里插入图片描述

新建镜像仓库

在这里插入图片描述

在这里插入图片描述

5、目标服务器安装配置

       目标服务器需要从镜像中心 Harbor 中 docker pull 镜像,然后使用 docker run 来运行容器,所以目标服务器中需要安装 Docker 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/54013.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023 蓝桥杯真题B组 C/C++

https://www.dotcpp.com/oj/train/1089/ 题目 3150: 蓝桥杯2023年第十四届省赛真题-冶炼金属 题目描述 小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金 属 O…

价值 1k 嵌入式面试题-计算机网络 OSI

开门见山 请讲下 OSI 各层协议的主要功能? 常见问题 回答不系统回答不确切无法和实际网络协议做关联对应 答题思路 OSI 代表了开放互联系统中信息从一台计算机的一个软件应用流到另一个计算机的另一个软件应用的参考模型 OSI 包含 7 层,每一层负责特…

51单片机学习--串口通信

首先需要配置寄存器: 下面这里SCON配0x40和0x50都可以,因为暂时还不需要接受信息,所以REN置1置0都可 void Uart_Init(void) //4800bps11.0592MHz {PCON | 0x80; //使能波特率倍速位SMODSCON 0x50; //8位数据,可变波特率TMOD & 0x0F…

tinkerCAD案例:29. 摇头娃娃

Research Your Favorite Bobblehead 摇头娃娃 Project Overview: 项目概况: Design and create your favorite Minecraft 3D bobble head. All you need is a computer, 3D printer, spring and your creativity to your favorite Minecraft character in the for…

1、Hadoop3.x 从入门到放弃,第一章:概念

Hadoop3.x从入门到放弃,第一章:概念 一、什么是大数据 1、主要解决什么 大数据主要解决:海量数据的“采集”、“存储” 和 "分析计算" 问题2、大数据特点 1> Volume 大量 2> velocity 高速 3> variety 多样性数据分为…

网络层:IP协议/Mac协议

IP协议 主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统 称; IP 目标网络(前半部分) 目标主机(后半部分) IP层的核心:IP地址定位主机(定…

Socks IP轮换:为什么是数据挖掘和Web爬取的最佳选择?

在数据挖掘和Web爬取的过程中,IP轮换是一个非常重要的概念。数据挖掘和Web爬取需要从多个网站或来源获取数据,而这些网站通常会对来自同一IP地址的请求进行限制或封锁。为了避免这些问题,数据挖掘和Web爬取过程中需要使用Socks IP轮换技术。在…

《向量数据库指南》——如何持久化存储 LlamaIndex 向量索引?

随着 AGI 时代的到来,越来越多的开发者开始思考如何有效利用大模型,不过,大家在构建 LLM 应用时普遍会面临三大挑战: LLM 的使用成本高昂LLM 无法及时提供最新信息LLM 缺乏特定专业领域的知识 针对上述问题,业界主流的做法是采用两种主要框架:微调和缓存 + 注入。 …

集团MySQL的酒店管理系统

酒店管理系统 概述 基于Spring Spring MVC MyBatis的酒店管理系统,主要实现酒店客房的预定、入住以及结账等功能。使用Maven进行包管理。 用户端主要功能包括: 登录注册、客房预订、客房评论(编写评论和查看评论) 后台管理主要…

如何在 Ubuntu 22.04 下编译 StoneDB for MySQL 8.0 | StoneDB 使用教程 #1

作者:双飞(花名:小鱼) 杭州电子科技大学在读硕士 StoneDB 内核研发实习生 ❝ 大家好,我是 StoneDB 的实习生小鱼,目前正在做 StoneDB 8.0 内核升级相关的一些事情。刚开始接触数据库开发没多久&#xff0c…

Linux 学习记录59(ARM篇)

Linux 学习记录59(ARM篇) 本文目录 Linux 学习记录59(ARM篇)一、IIC总线1. 概念2. IIC总线硬件连接 二、系统框图三、IIC时序1. 起始信号 / 停止信号2. 数据传输信号3. 应答信号 / 非应答信号4. 寻址信号 四、IIC协议1. 主机给从机发送一个字节(写)2. 主机给从机发送多个连续字…

MySQL 的 Join 查询及 Hash Join 优化 | StoneDB 技术分享会 #3

StoneDB开源地址 https://github.com/stoneatom/stonedb 设计:小艾 审核:丁奇、宇亭 编辑:宇亭 作者一:徐鑫强(花名:无花果) 电子科技大学-计算机技术-在读硕士、StoneDB 内核研发实习生 作…

Android 卡顿分析与布局优化

一、什么是卡顿?或者说我们怎么感知APP卡顿? 这里面涉及到android UI渲染机制,我们先了解一下android UI是怎么渲染的,android的View到底是如何一步一步显示到屏幕上的? android系统渲染页面流程: 1&…

重新审视MHA与Transformer

本文将基于PyTorch源码重新审视MultiheadAttention与Transformer。事实上,早在一年前博主就已经分别介绍了两者:各种注意力机制的PyTorch实现、从零开始手写一个Transformer,但当时的实现大部分是基于d2l教程的,这次将基于PyTorch…

使用javax.validation.constraints进行数据验证

使用javax.validation.constraints进行数据验证 在Java应用中,数据的验证是一个很重要的部分,特别是在接收用户输入或处理外部数据时。为了简化和标准化数据验证的过程,Java提供了javax.validation.constraints包,其中包含一系列注…

乳腺癌CT影像数据的深度学习:R语言与ANN神经网络构建高性能分类诊断模型

一、引言 乳腺癌是全球最常见的女性恶性肿瘤之一,也影响着男性的健康。据统计,每年有数百万人被诊断出患有乳腺癌[1]。乳腺癌的早期检测和准确诊断对于治疗和预后至关重要。然而,乳腺癌的早期诊断面临许多挑战,如图像解读的主观性…

uniapp 微信小程序:v-model双向绑定问题(自定义 props 名无效)

uniapp 微信小程序:v-model双向绑定问题(自定义 props 名无效) 前言问题双向绑定示例使用 v-model使用 v-bind v-on使用 sync 修饰符 参考资料 前言 VUE中父子组件传递数据的基本套路: 父传子 props子传父 this.$emit(事件名, …

Linux安装VScode

从本篇开始,打算有时间就写写在VScode中编写一些ros相关的案例程序用于学习记录。本篇是如何在Linux安装VScode的第一篇。 一、下载VScode 在Linux中打开浏览器输入:https://code.visualstudio.com/Download,选择与你电脑相匹配的版本下载&…

AssertionError: CUDA_HOME does not exist, unable to compile CUDA op(s)

安装deepspeed的时候出现如下错误: 检查是否有CUDA: 根据提示安装: 安装完之后检测,重新安装,成功安装。 参考资料 A100单机多卡大模型训练踩坑记录(CUDA环境、多GPU卡住且显存100%)

socket 基础

Socket是什么呢? ① Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。 ② Socket是连接运行在网络上的两个程序间的双向通信的端点。 ③ 网络通讯其实指…