当前位置: 首页 > news >正文

[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-cecontainer_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.40.171:9999' # 设置 GitLab 的配置,包括外部访问 URL 和 SSH 端口等gitlab_rails['gitlab_shell_ssh_port']=2222ports:- 9999:9999- 2222:2222volumes:- ./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: postgrescontainer_name: pgdbrestart: alwaysports:- 5432:5432environment:POSTGRES_USER: sonarPOSTGRES_PASSWORD: sonarsonarqube:image: sonarqube:9.9-communitycontainer_name: sonarqbrestart: alwaysdepends_on:- postgresports:- 9000:9000environment:SONAR_JDBC_URL: jdbc:postgresql://pgdb:5432/sonar # 连接postgresqlSONAR_JDBC_USERNAME: sonarSONAR_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 。

相关文章:

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

目录 0、CI/CD系统最终架构图规划IP地址 1、git配置Git下载pycharm配置gitidea配置git 2、GitLab安装与配置主机要求拉取镜像定义 compose.yml启动gitlab浏览器访问并修改密码查看登录密码修改密码 3、SonarQube 安装与配置拉取镜像修改虚拟内存的大小启动SonarQube登录 SonarQ…...

【自动化运维】编写LNMP分布式剧本

目录 一 playbook编写LNMP1.1环境设置1.2编写Nginx剧本1.3、编写Mysql剧本1.4准备PHP剧本 一 playbook编写LNMP 1.1环境设置 ip服务192.168.243.100ansible192.168.243.102nginx192.168.243.103PHP192.168.243.104mysql 1.2编写Nginx剧本 1.编写Nginx源 mkdir -p /etc/ans…...

用Rust实现23种设计模式之单例

话不多说,上代码! 1. 使用Arc Mutex 在这个例子中,我们使用了 Arc (原子引用计数)和 Mutex (互斥锁)来实现线程安全的单例。通过 get_instance 方法,我们可以获取到单例实例&…...

小米平板6将推14英寸版!与MIX Fold 3同步推出

今天,知名数码博主数码闲聊站爆料消息,称小米平板6将推出一款Max版本,预计与小米MIX Fold 3同步推出。 据介绍,小米平板6 Max将是小米首款14英寸大屏的旗舰平板,平板搭载骁龙8处理器,在性能释放、影音表现、…...

webpack 的一点知识

多个入口共享多个模块 在使用webpack搭建多页面应用时候需要多个入口,这个时候需要考虑到模块共享问题了 可以使用entry.dependOn 来处理 entry: {home: {import: "./pages/home/index.js",// 其中vendors里边使用到模块,不会打入home对应的…...

Python 双目摄像机控制(windows + linux)

一、Windows 下载 Download libusb-win32-devel-filter-1.2.6.0.exe (libusb-win32) 安装,在弹出框中选择摄像机usb设备 pip install pyusb pip install libusb 代码如下,注意如果报错要以管理员权限运行: import cv2 import usb.corecam…...

mybatisplus实现自动填充 时间

mybatisplus实现自动填充功能——自动填充时间 数据库表中的字段 创建时间 (createTime)更新时间 (updateTime) 每次 增删改查的时候,需要通过对Entity的字段(createTime,updateTime)进行set设置,但是,每…...

P5732 【深基5.习7】杨辉三角

题目描述 给出 n ( n ≤ 20 ) n(n\le20) n(n≤20),输出杨辉三角的前 n n n 行。 如果你不知道什么是杨辉三角,可以观察样例找找规律。 输入格式 输出格式 样例 #1 样例输入 #1 6样例输出 #1 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 11.题目…...

ubuntu调整路由顺序

Ubuntu系统跳转路由顺序 1、安装ifmetric sudo apt install ifmetric2、查看路由 route -n3、把Iface下面的eth1调到第一位 sudo ifmetric eth1 0命令中eth1是网卡的名称,更改网卡eth1的跃点数(metric值)为0(数值越小&#xf…...

集成学习算法是什么?如何理解集成学习?

什么是集成学习? 集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。 机器学习的两个核心任务 任务一&#xff1…...

npm配置最新淘宝镜像

目录 1、设置淘宝镜像2、查看源 1、设置淘宝镜像 默认的官方镜像:https://registry.npmjs.org,切换国内淘宝镜像,访问下载更快。 npm config set registry https://registry.npmmirror.com/其他,如pnpm: pnpm confi…...

网络基础1

文章目录 网络基础11. 计算机网络背景1.1 网路发展1.2 认识 "协议" 2. 网络协议初识2.1 协议分层2.2 OSI七层模型2.3 TCP/IP五层(或四层)模型协议栈与OS的关系 3. 网络传输基本流程3.1 同一个局域网两台主机通信3.2 同一个路由器的两个子网通信 4. 网络中的地址管理4…...

2023年电赛---运动目标控制与自动追踪系统(E题)发挥题思路

前言 &#xff08;1&#xff09;因为博客编辑字数超过1W字会导致MD编辑器非常卡顿。所以我将发挥题和基础题的思路拆开了。 &#xff08;2&#xff09;更新日记&#xff1a; <1>2023年8月4日&#xff0c;9点20分。分离发挥题思路和基础题思路&#xff0c;增加了博主Huiye…...

61 # http 数据处理

node 中的核心模块 http 可以快速的创建一个 web 服务 const http require("http"); const url require("url");// req > request 客户端的所有信息 // res > respone 可以给客户端写入数据 const server http.createServer();server.on("r…...

模版下载和Excel文件导入

模版下载 模版下载 模版下载 /*** 生成模版** param* return AppResponse*/public AppResponse ExcelFile() throws IOException {// 创建一个新的Excel工作簿Workbook workbook new XSSFWorkbook();// 创建一个工作表Sheet sheet workbook.createSheet("页面拨测模板&…...

Datax 数据同步-使用总结(一)

1&#xff0c;实时同步&#xff1f; datax 通常做离线数据同步使用。 目前能想到的方案 利用 linux 的定时任务时间戳的方式做增量同步。 2&#xff0c;同步速度快不快&#xff1f; 单表同步速度还是挺快的 但是如果遇到复杂的 sql 查询&#xff0c;其同步效率&#xff0c…...

代码随想录算法训练营第九天| 232.用栈实现队列,225.用队列实现栈

232. 用栈实现队列 232.用栈实现队列 这里用两个栈来模拟队列以此实现队列的先进先出&#xff0c; 注意点 1.dump()方法将stackin的元素移入到stackout的操作&#xff0c;是要将stackin的全部元素放到stackout中&#xff0c;所以用while循环判断 stackIn是否为空 2.新建栈…...

求解二次方程

描述 编写一个程序&#xff0c;实现求解形如ax^2 bx c 0的二次方程的根。要求使用三个函数分别计算b^2 - 4ac大于0、等于0和小于0时的根&#xff0c;并在主函数中输出结果。 输入 输入三个浮点数a、b和c&#xff0c;分别表示二次方程的系数。 输出 输出二次方程的根&am…...

【hive 运维】hive注释/数据支持中文

文章目录 一. 设置mysql中的hive库二. hive-site.xml 设置三. 测试 hive支持中文需要关注两个方面&#xff1a; 设置hive 元数据库中的一些表设置hive-site.xml. 一. 设置mysql中的hive库 use hivedb; alter table TBLS modify column TBL_NAME varchar(1000) character se…...

架构,性能和游戏 《游戏编程模式》学习笔记

开新坑&#xff0c;准备把《游戏编程模式》这本书啃完。这是一本讲设计模式的书&#xff0c;针对游戏开发而作&#xff0c;写得很好。 以下是读书笔记&#xff0c;文末有原文链接 每个程序都有一定的软件架构&#xff0c;哪怕是全塞到main里也是一种架构好的架构可以把代码写成…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...