DevOps 学习笔记(一) | DevOps 简介及环境搭建

news2025/1/10 17:40:12

1. 环境配置

本次实验需要三台服务器CI/CD 服务器应用服务器Harbor 服务器

DevOps 步骤

  1. 程序员将代码 push 到代码仓库
  2. Jenkins 根据触发条件拉取代码到CI/CD 服务器
  3. Jenkins 使用 Maven 将代码 build 成 jar 包
  4. Jenkins 使用 jar 包通过 Dockerfile 和 docker-compose.yml 文件制作自定义镜像
  5. Jenkins 将自定义镜像推送到Harbor 服务器
  6. Jenkins 调用应用服务器拉取自定义镜像
  7. 应用服务器运行镜像

在这里插入图片描述

CI/CD服务器需要安装:

  • JDK
  • Jenkins
  • Git
  • Maven
  • Docker

应用服务器需要安装:

  • Docker or Kubernetes 集群

Harbor服务器需要安装

  • Docker
  • Harbor 镜像仓库

2. 配置 CI/CD 服务器

2.1 安装 Jenkins

Jenkins 安装官方文档

CI/CD服务器环境为 CentOS 7,使用 yum 方式进行安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

如果机器没有安装 Java 的话需要使用以下命令安装 Java 11

yum install -y fontconfig java-11-openjdk

之后使用命令安装 Jenkins

yum install -y jenkins

下载安装后执行下面命令启动 Jenkins

systemctl start jenkins

使用下面命令获取初始密码

cat /var/lib/jenkins/secrets/initialAdminPassword

浏览器中输入 localhost:8080 打开 Jenkins 管理界面输入初始密码,选择安装推荐的插件,创建新的用户,之后开始使用 Jenkins。

2.2 配置 Jenkins

2.2.1 配置远程服务器

在插件管理页面安装好 Publish Over SSH 插件

进入全局配置界面,配置好远程服务器的信息,Remote Directory 是把文件传送到远程服务器的位置

在这里插入图片描述

此时点击 Test Configuration 可能会报错

jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to change to remote directory [/usr/local/test]]

在远程服务器上创建 /usr/local/test 目录即可

2.2.2 配置 Maven

在插件管理页面安装好 Maven Integration 插件

CI/CD服务器上下载并安装 Maven,步骤如下

  1. 访问 Maven 官方网站

  2. 复制红框里 Maven 的下载链接

    在这里插入图片描述

  3. 使用命令下载解压并将其移动到对应目录下

    wget https://dlcdn.apache.org/maven/maven-3/3.9.0/binaries/apache-maven-3.9.0-bin.tar.gz
    tar -xvf  apache-maven-3.9.0-bin.tar.gz
    mv -f apache-maven-3.9.0 /usr/local/
    

安装 Maven 成功后,打开 Jenkins,进入 Global Tool Configuration 页面,按照下图进行配置并保存,没有报错则 Maven 配置成功
图片.png

3. 配置应用服务器

3.1 安装 Docker

可访问 CentOS环境下使用Docker 一文进行安装 Docker 的操作

3.2 安装 Docker-compose

curl -L https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

4. 配置 Harbor 服务器

进入 Harbor releases page,下载 Harbor offline 压缩文件 harbor-offline-installer-v2.5.6.tgz 并将其传到Harbor 服务器上并解压到指定位置

tar -zxvf harbor-offline-installer-v2.5.6.tgz -C /usr/local

对 Harbor 进行配置

cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml
vi harbor.yml

将 hostname 一行内容改为Harbor 服务器的 IP 地址,并将 https 内容全部注释掉

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 192.168.80.128

# https related config
# https:
  # https port for harbor, default is 443
  # port: 443
  # The path of cert and key files for nginx
  # certificate: /your/certificate/path
  # private_key: /your/private/key/path

安装 Harbor

./install.sh

如果启动时报错

[Step 5]: starting Harbor ...
[+] Running 0/1
 ⠿ Network harbor_harbor  Error                                                                                                     0.1s
failed to create network harbor_harbor: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-79dd02c9a738 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))

只需要重启 Docker 后再次执行安装即可

systemctl restart docker
./install.sh

访问Harbor 服务器的 80 端口,默认账号为 admin,密码为 Harbor12345

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HBase JMX 指标学习

名词解释: JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项。 GC:Garbage Collection,垃圾收集,垃圾回收机制。 1、概述 说到对Hadoop和 HBase的集群监控,大家知道的和用…

YOLOv8详解 【网络结构+代码+实操】

文章目录YOLOv8 概述模型结构Loss 计算训练数据增强训练策略模型推理过程网络模型解析卷积神经单元(model.py)Yolov8实操快速入门环境配置数据集准备模型的训练/验证/预测/导出使用CLI使用python多任务支持检测实例分割分类配置设置操作类型训练预测验证…

FastDDS-4.RTPS层

4. RTPS层 eprosima Fast DDS的较低层RTPS层是RTPS标准协议的实现。与DDS层相比,该层提供了对通信协议内部的更多控制,因此高级用户可以更好地控制库的功能。 4.1 与DDS层的关系 该层的元素与DDS层的元素一一对应,并添加了一些元素。该对应…

【使用两个栈实现队列】

文章目录一、栈和队列的基本特点二、基本接口函数的实现1.栈的接口2.创建队列骨架3.入队操作4.取出队列元素5.返回队首元素6.判断队列是否为空7.销毁队列总结一、栈和队列的基本特点 栈的特点是后进先出,而队列的特点是先进先出。 使用两个栈实现队列,必…

【DataX】数据同步到PG时遇到的分区不存在问题

数据同步到PG时遇到的分区不存在问题前言正文问题分析解决方法结语前言 大概说下这个问题牵扯出来的背景,一个外场项目,选型用PG存业务数据,然后客户要求保存保留一年的数据,运行到现在服务器5个T的磁盘已经有点扛不住了&#xf…

内存的管理

取指令——译码——执行——返存 计组课我们学过cpu真正读指令并非是从内存中读入,而是从cache读和存,再由cache进行取指或返存,因为cpu指令周期比内存周期速度快很多,cpu若要取指或返存都需要等待内存完成他的动作才可以进行下一…

python爬虫:如何定义内容提取器

项目背景 在python 即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间,从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作中。 解决方案 为了解决这个问题…

微信小程序使用scss编译wxss文件的配置步骤

文章目录1、在 vscode 中搜索 easysass 插件并安装2、在微信开发工具中导入安装的easysass插件3、修改 spook.easysass-0.0.6/package.json 文件中的配置4、重启开发者工具,就可用使用了微信小程序开发者工具集成了 vscode 编辑器,可以使用 vscode 中众多…

C++修炼之练气期三层——函数重载

目录 1.引例 2.函数重载的概念 3.C支持函数重载的原理 1.引例 倘若现在要实现一个加法计算器,用C语言实现的话我们会选择这样的方式: int Add_int(int a, int b) {return a b; }double Add_double(double a, double b) {return a b; } 在使用加…

Exposure2023专业摄影RAW格式大师专业滤镜特效

Exposure2023是一款专为摄影艺术设计的图像编辑器。新的 Exposure2023结合了专业级的照片调整、庞大的华丽照片库和令人愉悦的高效设计。可以提供最大,最准确的电影外观选择。Exposure的创意外观不仅限于电影模拟,从干净优雅的现代风格到引人注目的色彩变…

SpringBoot+Nacos+OpenFeign环境搭建

目录 1.boot方式nacos与openFeign集成 1.引入依赖 2.添加配置 3.测试接口调用 4.常见问题: 1.版本依赖 2.nacos客户端 2.cloud方式nacos与openFeign集成 1.引入依赖 2.添加配置 3.接口定义 4.开启FeignClients客户端 5.远程接口测试 6.Nacos配置中心 1…

Java - 数据结构,二叉树

一、什么是树 概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 1、有…

SAP ERP系统MM模块常用增强之四:采购申请输入字段的校验检查

在SAP/ERP项目的实施中采购管理模块(MM)的创建和修改采购申请一般都会有输入字段校验检查的需求,来防止业务人员录入错误或少录入数据,这方面需求部分是可以通过配置实现,比如一些字段是否必输,是否显示等&…

WebRTC拥塞控制算法——GCC介绍

网络拥塞是基于IP协议的数据报交换网络中常见的一种网络传输问题,它对网络传输的质量有严重的影响, 网络拥塞是导致网络吞吐降低, 网络丢包等的主要原因之一, 这些问题使得上层应用无法有效的利用网络带宽获得高质量的网络传输效果…

C++——智能指针1

目录 RAII auto_ptr模拟实现 智能指针拷贝问题 唯一指针 shared_ptr(可以拷贝) shared_ptr模拟实现 完整代码 循环引用 weak_ptr模拟实现 定制删除器 shared_ptr定制删除器模拟实现 内存泄漏 RAII RAII(Resource Acquisit…

SkyWalking使用案例

SkyWalking监控java项目Halo博客 Halo是一个开源的博客项目,使用java编写,官网地址:https://halo.run/ 安装java环境,Halo对java版本有限制,1.4.3版本以上需要使用java11以上 apt -y install openjdk-11-jdk java -…

matplotlib常用操作

文章目录1 matplotlib绘图1.1 绘图步骤2 matplotlib基本元素2.1 matplotlib 画布2.2 设置坐标轴长度和范围2.3 设置图形的线型和颜色2.4 设置图形刻度范围、刻度标签和坐标轴标签等2.4.1 设置刻度范围2.4.2 设置坐标轴刻度2.5 文本标签图例3 matplotlib的ax对象绘图4 绘制子图5…

2.3 黑群晖驱动:开启nvme缓存、将nvme缓存作为存储盘 教程

黑群晖驱动安装工具下载:链接:https://pan.baidu.com/s/1CMLl6waOuW-Ys2gKZx7Jgg?pwdchct提取码:chct一、开启NVME缓存在群辉->控制面板->终端机和SNMP->终端机中 勾选“启动SSH”功能,并点击应用;下载安装P…

HACKTHEBOX——Teacher

nmapnmap -sV -sC -p- -T4 -oA nmap 10.10.10.153nmap只发现了对外开放了80端口,从http-title看出可能是某个中学的官网http打开网站确实是一个官网,查看每个接口看看有没有可以利用的地方发现了一个接口,/images/5.png,但是响应包…

国内有哪些支持定制化的低代码平台?

编者按:贴合企业业务需求的系统才是好系统,高程度的定制能力平台意味着可以提供更高契合度的产品,更好地匹配业务需求。本文介绍了国内支持定制化的老厂商低代码平台,具有源码交付、私有化部署、国产化、数据对接等优势。关键词&a…