CICD实践1:环境安装篇

发布时间 2023-07-17 16:39:58作者: hqq的进阶日记

一、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

重启dockersudo 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下的jdkmaven挪到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.指定容器卷下的jdkjenkins

容器内的路径:/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