CICD实践1:环境安装篇
一、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 文件示例: version: '3.1' |
|
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)下载压缩包 |
|
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.登录 用户名/密码:admin/Harbor12345 |
CICD实践1:环境安装篇的更多相关文章
- git在工作中的用法总结-环境安装篇
使用git有很长一段时间了 ,平时用到的时候都是直接google,经常用到的一些也记录在笔记中,但有时候笔记太多,实在是太乱了(其实是我太懒~ 哈?),找都要半天的时候还不如直接google,今天有空 ...
- Disconf实践指南:安装篇
Disconf是百度开源出来的一款基于Zookeeper的分布式配置管理软件.目前很多公司都在使用,包括滴滴.百度.网易.顺丰等公司.通过简单的界面操作就可以动态修改配置属性,还是很方便的.使用Dis ...
- 不用写代码的框架 - RobotFramework+Eclispe环境安装篇
环境安装是学习任何一个新东西的第一步,这一步没走舒坦,那后面就没有心情走下去了. 引用名句:工欲善其事必先利其器!! Robotframework:一款 自动化测试框架. Eclipse:一款编辑工具 ...
- Nagios学习实践系列——基本安装篇
开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Ente ...
- 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 环境安装篇
最近因为有个项目需要制作APP,考虑到需要兼容Android和IOS,所以想采用WebAPP的方式来开发.现在是从零开始学习之路,走起- 通过网上博客和论坛,开始安装了一堆软件: 1. Sench ...
- Disconf实践指南:使用篇
在上一篇文章Disconf实践指南:安装篇介绍了如何在本地搭建Disconf环境,下面我们介绍如何在项目中使用Disconf.由于某些功能特性对源码做了修改,所以在官方文档并没有提及. 环境基于mac ...
- NetCore入门篇:(一)Net Core环境安装
一.下载Visual Studio 2017 1.下载地址:https://www.visualstudio.com/zh-hans/downloads/ 2.选择要下载的版本 二.安装Net Cor ...
- 从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建
一.Overview 最近的一段时间,在公司里我都在进行基于 Jenkins 和 SonarQube 配合已有的 Gitlab 搭建部门的持续集成环境的工作,虽然之前有使用过 GitHub Actio ...
- 从零开始针对 .NET 应用的 DevOps 运营实践 - Jenkins & SonarQube 安装配置
一.Overview 继续 DevOps 实施的相关内容,在上一篇的博客中,完成了对于工具链中使用到的软件所需的运行环境的配置,在这一篇的博客中,将聚焦于我们使用到的两个主要的软件:Jenkins 与 ...
- 使用专业的消息队列产品rabbitmq之centos7环境安装
我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis, 当然还有重量级的专业产品rabbitmq,rabbitmq ...
随机推荐
- 回归克里格、普通克里格插值在ArcGIS中的实现
本文介绍基于ArcMap软件,实现普通克里格.回归克里格方法的空间插值的具体操作. 目录 1 背景知识准备 2 回归克里格实现 2.1 采样点与环境变量提取 2.2 子集要素划分 2.3 异常值提 ...
- 【Azure Batch】在批处理的Task中如何让它执行多个CMD指令呢
问题描述 根据Azure Batch的入门文档(使用 Azure 门户创建 Batch 帐户并运行作业 : https://docs.azure.cn/zh-cn/batch/quick-create ...
- 慢SQL治理实践及落地成果分享
一.治理背景 数据库系统性能问题会对应用程序的性能和用户体验产生负面影响.慢查询可能导致应用程序响应变慢.请求堆积.系统负载增加等问题,甚至引发系统崩溃或不可用的情况.慢SQL治理是在数据库系统中针对 ...
- 2023-09-23:用go语言,假设每一次获得随机数的时候,这个数字大于100的概率是P。 尝试N次,其中大于100的次数在A次~B次之间的概率是多少? 0 < P < 1, P是double类型,
2023-09-23:用go语言,假设每一次获得随机数的时候,这个数字大于100的概率是P. 尝试N次,其中大于100的次数在A次~B次之间的概率是多少? 0 < P < 1, P是dou ...
- oj练习题 数字 eval 整数 int ???
s = input()if 'hello world!' == s.casefold(): print("Yes")else: print("No") A+B问 ...
- 通过资源名称得到资源id
demo地址 主要应用类 package com.example.activitylibrary; import android.app.Activity; import android.os.Bun ...
- Java21上手体验-分代ZGC和虚拟线程
一.导语 几天前Oracle刚刚发布了Java21, 由于这是最新的LTS版本,引起了大家的关注. 我也第一时间在个人项目中进行了升级体验. 一探究竟,和大家分享. 二.Java21更新内容介绍 官方 ...
- Hugging Face 分词器新增聊天模板属性
一个幽灵,格式不正确的幽灵,在聊天模型中游荡! 太长不看版 现存的聊天模型使用的训练数据格式各各不同,我们需要用这些格式将对话转换为单个字符串并传给分词器.如果我们在微调或推理时使用的格式与模型训练时 ...
- k8s部署xxl-job-admin
概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. 下载好要用到的镜像 docker pull ...
- Python使用pymysql和xlrd2将Excel数据导入MySQL数据库
在数据处理和管理中,有时候需要将Excel文件中的数据导入到MySQL数据库中进行进一步的分析和操作.本文将介绍如何使用Python编程语言实现这个过程. 导入所需库 import xlrd2 # 导 ...





