一、CICD技术选型

配置管理工具 工具
需求管理工具 使用禅道
代码管理工具 使用Gitlab
编译构建工具 搭建Jenkins,使用Jenkinsfile
制品库工具 nexus
文档管理工具 Confluence

二、虚拟机的Linux发行版

$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 20.04.6 LTS

Release:        20.04

Codename:       focal

三、软件安装

1、安装Docker

1.安装必要的一些系统工具

$ sudo apt-get update

$ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

2.安装GPG证书

首先 /usr/share/keyrings/docker-archive-keyring.gpg通过命令添加密钥:

$ sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg

其次,更新权限:

$ sudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg

最后:

$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

结果如下:

3.写入软件源信息

$ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

4.更新并安装Docker-CE

$ sudo apt-get -y update

$ sudo apt-get -y install docker-ce

5.执行hello-world验证

$ sudo docker run hello-world

输出:Hello from Docker!

查看安装的docker版本:

$ docker version

6.常用命令

$ sudo systemctl daemon-reload //重载系统服务

$ sudo systemctl list-unit-files --type service //查看全部服务命令

$ sudo systemctl status docker  // 查看docker服务状态

$ sudo systemctl enable docker //设置docker开机自启动

$ sudo systemctl disable docker // 关闭docker开机启动

$ sudo systemctl start docker // 启动docker服务

$ sudo systemctl stop docker // 停止docker服务

$ sudo systemctl restart docker // 重启docker服务

2、安装docker-compose

$ sudo apt-get update

$ sudo apt-get install docker-compose-plugin

$ docker compose version

3、安装gitlab

1.访问安全

服务器:需要设置安全组,设置可访问的安全端口

虚拟机:需要关闭防火墙,

$ systemctl stop firewalld

 2.在/usr/local下创建/docker/ gitlab_docker目录

$ cd /usr/local

$ sudo mkdir docker

$ cd docker

$ sudo mkdir gitlab_docker

$ cd gitlab_docker/

 3.在/usr/local /docker/ gitlab_docker下创建docker-compose.yml文件

$ sudo vi docker-compose.yml

用于编写启动docker的配置信息的文件

4.配置/usr/local /docker/ gitlab_docker/docker-conpose.yml 文件内容

external_url说明:
   云服务器:访问的公网ip

 虚拟机:虚拟机的ip 

文件示例:

version: '3.1'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url '虚拟机ip:8829'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8829:8829'
      - '2224:2224'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'

5.修改配置文件后重启docker,后台启动gitlab

$ sudo systemctl restart docker

$ sudo docker compose up -d

$ sudo docker logs –f gitlab

6.进入gitlab容器查看root密码

$ docker exec –it gitlab bash

$ cat /etc/gitlab/initial_root_password

该文件记录了初始密码,登陆成功后修改密码,用户名root

4、安装JDK和Maven

1.安装wget

$ sudo apt-get update

$ sudo apt-get install wget

2.wget下载maven

$ sudo wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

需要的版本:

jdk-8u231-linux-x64.tar.gz 官网下载后使用fileZilla软件上传到服务器

apache-maven-3.6.3-bin.tar.gz

3.解压缩

1)在apache-maven-3.6.3-bin.tar.gz的包下载处/usr/local/docker/gitlab_docker解压:

$ sudo tar zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local

2)解压jdk

$ sudo tar zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local

4.修改目录名称

$ cd /usr/local

$ sudo mv apache-maven-3.6.3/ maven/

$ sudo mv jdk1.8.0_151/ jdk/

5.设置maven的信息:/usr/local/maven/conf/settings.xml

包括localRepository、mirror和profile中的jdk

5、 安装配置Jenkins

1.准备目录

$ cd /usr/local

$ mkdir docker

$ cd docker

$ mkdir jenkins_docker

$ cd jenkins_docker/

2.创建docker-compose.yml文件

$ vi docker-compose.yml

重启docker:sudo systemctl restart docker

说明:拉取到Jenkins最新的镜像,可以避免插件下载安装失败的问题。

3.创建data目录并给予可读可写可执行权限

$ sudo chmod –R 777 data

$ sudo docker compose restart

4.启动

$ sudo docker compose up –d

查看日志是否启动出现问题:

$ sudo docker logs –f jenkins

启动成功可以看到root用户的初始密码,如:

Please use the following password to proceed to installation:

1343f9e3570c4f01b53ab4431b3f1631

 5.将 /usr/local下的jdk、maven挪到docker/jenkins_docker/data

/usr/local/docker/jenkins_docker/data$ sudo mv /usr/local/maven/ ./

/usr/local/docker/jenkins_docker/data$ sudo mv /usr/local/jdk/ ./

6.指定容器卷下的jdk和jenkins

容器内的路径:/var/jenkins_home/

【系统管理-全局工具配置-JDK/Maven】

jdk配置:/var/jenkins_home/jdk

maven配置:/var/jenkins_home/maven

7.容器内配置maven

1)容器内新建仓库地址:

/var/jenkins_home/.m2/repository

2)修改配置文件

$ vi /usr/local/docker/jenkins_docker/data/maven/conf/settings.xml

配置的仓库地址:

<localRepository>/var/jenkins_home/.m2/repository</localRepository>

3)服务器配置/etc/profile文件:

# maven env

export MAVEN_HOME=/usr/local/docker/jenkins_docker/data/maven

export PATH=$PATH:$MAVEN_HOME/bin

# jdk env

export JAVA_HOME=/usr/local/docker/jenkins_docker/data/jdk

export PATH=$PATH:$JAVA_HOME/bin

4)保存退出后生效:

$ source /etc/profile

6.安装nexus3

1.拉取镜像

$ docker pull sonatype/nexus3:latest

2.创建目录

/usr/local/docker/nexus3_docker/nexus-data

chmod -R 777 /usr/local/docker/nexus3_docker/nexus-data

3.创建docker-compose.yml文件

# 在/docker/nexus3_docker目录创建vi docker-compose.yml

version: '3'

services:

nexus3:

image: 'sonatype/nexus3:latest'

restart: always

container_name: 'nexus3'

hostname: 'nexus3'

environment:

- NEXUS_CONTEXT=nexus # 默认不指定上下文为根/,这是和nexus2不同的地方

ports:

- '9081:8081'

networks:

- 'exist-net-bloom'

volumes:

- '/usr/local/docker/nexus3_docker/nexus-data:/nexus-data'

- '/etc/timezone:/etc/timezone:ro'

- '/etc/localtime:/etc/localtime:ro'

networks:

exist-net-bloom:

driver: bridge

4.启动docker

$ sudo systemctl restart docker

$ docker compose up -d

5.查看密码

进入容器的cat /nexus-data/admin.password文件中查看。

bash-4.4$ cat admin.password

4b7f7031-039b-4fe2-90a1-e37c7d467e15bash-4.4$

6.修改密码并访问:

nexus的访问地址:http://服务器ip:9081/nexus/

7. 安装Harbor

1.下载Harbor的压缩包

harbor-offline-installer-v2.5.3.tgz

1) 新建/usr/local/harbor

2)下载压缩包

$sudo wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz

2.Linux环境下解压缩

$sudo tar zxvf harbor-offline-installer-v2.5.3.tgz -C /usr/local/harbor

3.修改配置文件

sudo cp harbor.yml.tmpl harbor.yml

说明:install.sh启动时只会加载harbor.yml

1)修改harbor.yml文件

hostname: 改成虚拟机或服务器的ip

注释https

默认端口:80

密码:harbor_admin_password: Harbor12345

2)启动 ./install.sh

解决:

sudo apt install docker-compose

再次启动:sudo ./install.sh

4.登录

网址:http://服务器ip:80

用户名/密码:admin/Harbor12345

CICD实践1:环境安装篇的更多相关文章

  1. git在工作中的用法总结-环境安装篇

    使用git有很长一段时间了 ,平时用到的时候都是直接google,经常用到的一些也记录在笔记中,但有时候笔记太多,实在是太乱了(其实是我太懒~ 哈?),找都要半天的时候还不如直接google,今天有空 ...

  2. Disconf实践指南:安装篇

    Disconf是百度开源出来的一款基于Zookeeper的分布式配置管理软件.目前很多公司都在使用,包括滴滴.百度.网易.顺丰等公司.通过简单的界面操作就可以动态修改配置属性,还是很方便的.使用Dis ...

  3. 不用写代码的框架 - RobotFramework+Eclispe环境安装篇

    环境安装是学习任何一个新东西的第一步,这一步没走舒坦,那后面就没有心情走下去了. 引用名句:工欲善其事必先利其器!! Robotframework:一款 自动化测试框架. Eclipse:一款编辑工具 ...

  4. Nagios学习实践系列——基本安装篇

    开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Ente ...

  5. 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 环境安装篇

    最近因为有个项目需要制作APP,考虑到需要兼容Android和IOS,所以想采用WebAPP的方式来开发.现在是从零开始学习之路,走起-   通过网上博客和论坛,开始安装了一堆软件: 1. Sench ...

  6. Disconf实践指南:使用篇

    在上一篇文章Disconf实践指南:安装篇介绍了如何在本地搭建Disconf环境,下面我们介绍如何在项目中使用Disconf.由于某些功能特性对源码做了修改,所以在官方文档并没有提及. 环境基于mac ...

  7. NetCore入门篇:(一)Net Core环境安装

    一.下载Visual Studio 2017 1.下载地址:https://www.visualstudio.com/zh-hans/downloads/ 2.选择要下载的版本 二.安装Net Cor ...

  8. 从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建

    一.Overview 最近的一段时间,在公司里我都在进行基于 Jenkins 和 SonarQube 配合已有的 Gitlab 搭建部门的持续集成环境的工作,虽然之前有使用过 GitHub Actio ...

  9. 从零开始针对 .NET 应用的 DevOps 运营实践 - Jenkins & SonarQube 安装配置

    一.Overview 继续 DevOps 实施的相关内容,在上一篇的博客中,完成了对于工具链中使用到的软件所需的运行环境的配置,在这一篇的博客中,将聚焦于我们使用到的两个主要的软件:Jenkins 与 ...

  10. 使用专业的消息队列产品rabbitmq之centos7环境安装

      我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis, 当然还有重量级的专业产品rabbitmq,rabbitmq ...

随机推荐

  1. 论文解读(PERL)《PERL: Pivot-based Domain Adaptation for Pre-trained Deep Contextualized Embedding Models》

    Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:PERL: Pivot-based Domain Adaptation for Pre-trained D ...

  2. C# 异步执行操作

    为了方便测试异步,先加个计时 计时相关(可以直接跳过该部分) //开始计时 Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 停 ...

  3. Codeforces 1257D - Yet Another Monster Killing Problem

    题意: 有\(n\)个怪物,每个怪物有攻击力\(a_i\)点:有\(m\)个英雄,每个英雄有攻击力\(p_i\)点,耐力\(s_{i}\)点. 怪物需要被依次杀死(按输入顺序). 每一天可以挑选一个英 ...

  4. Python ChatGPT Telegram Bot

    注册 这里如何注册我就不说明了,大家自行去注册,主要是现在GPT的基本上已经备用很多了,导致了接码的价格也上涨了,而且使用token的话,其实还是很快可以用完免费的18美金: 接码:https://s ...

  5. Kruskal重构树 学习笔记

    Kruskal 重构树 最大生成树将部分内容倒置即可 回顾:Kruskal 基本信息 求解最小生成树 时间复杂度:\(O(m \log m)\) 更适合稀疏图 算法思想 按照边权从小到大排序 依次枚举 ...

  6. 🖖少年,该升级 Vue3 了!

    你好,我是 Kagol. 前言 根据 Vue 官网文档的说明,Vue2 的终止支持时间是 2023 年 12 月 31 日,这意味着从明年开始: Vue2 将不再更新和升级新版本,不再增加新特性,不再 ...

  7. Pisces.IM.Mood 前言

    关于 Pisces.IM.Mood Mood Pisces.IM.Mood 一款基于TCP协议的即时通讯开源系统 多个客户端目前支持以下功能: 支持文字,图片,文件,emoji表情的发送 文件限制为5 ...

  8. 这些负载均衡都解决哪些问题?服务、网关、NGINX

    这篇文章解答一下群友的一系列提问: 在微服务项目中,有服务的负载均衡.网关的负载均衡.Nginx的负载均衡,这几个负载均衡分别用来解决什么问题呢? 在微服务项目中,服务的负载均衡.网关的负载均衡和Ng ...

  9. Arduino Uno 引脚 –

    Arduino Uno 引脚 – Arduino Uno 板有 20 多个引脚,可用于许多不同的应用.在这篇文章中,我将为您提供 Arduino Uno 主要引脚的完整实用概述. 如果您刚开始使用 A ...

  10. 获取 + 查看 Android 源码的 方法

    Android源码获取方法. 作为一个Android开发者,必要的时候阅读以下源码可以拓宽一下自己的视野和对android的认知程度. Google的Android的源码管理仓库是用的是Git.And ...