【DevOps实战系列】第一章:详解DevOps运行环境

news2024/11/18 16:35:04

个人亲自录制全套DevOps系列实战教程手把手教你玩转DevOps全栈技术

DevOps是什么?

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。

透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

## 运行环境:OMV 本文采用omv nas服务器作为运行环境,当然有条件或根据自己喜好可以选择Proxmox、OpenStack等环境均可。

omv的安装很简单,官网下载iso镜像写入到U盘,引导安装即可。

Docker环境

因为omv是一个底层linux系统,而他可以直接安装docker服务(通过插件的方式安装)并同时安装portainer图形界面来管理docker容器。具体插件安装就不细说了。

当然如果使用proxmox等虚拟服务器的,可以单台虚拟机安装或组建k8s安装devops的各个组件,这是都可以的,而我这里使用的是omv,所以都在docker中以容器的方式安装各个组件。

后续我会单独讲一下升级成proxmox虚拟化和k8s的过程。此处如果大家没有omv环境,只是一台单物理linux或一台虚拟机linux,只需要安装一个docker服务就行了,

安装方法比较简单,网上也有很多教程,避免浪费时间且不是我要讲的重点就不说了。

注意:docker安装完后,避免拉取镜像较慢,需要更换成国内镜像源,或使用阿里云镜像加速,本人使用的是阿里云镜像加速。

  • Docker中国区官方镜像 https://registry.docker-cn.com
  • 网易 http://hub-mirror.c.163.com
  • 中国科技大学 https://docker.mirrors.ustc.edu.cn
  • 阿里云容器 https://cr.console.aliyun.com/cn-beijing/instances/mirrors

我的加速地址是:https://mtu7rhzd.mirror.aliyuncs.com
将地址给docker的配置即可:/etc/docker/daemon.json

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mtu7rhzd.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

补充[docker 安装]:避免有些小伙伴对安装docker不熟悉,这里补充下安装脚本:基于centos7安装
官网参考:https://docs.docker.com/engine/install/centos/

# 安装必要依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里云的 docker-ce yum源,避免连接到国外无法现在成功
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
# 重建 yum 缓存 
yum makecache fast
# 查看可用 docker 版本
yum list docker-ce.x86_64 --showduplicates | sort -r
# 根据以上列出的支持版本,此处选择docker-ce-20.10.8-3.el7版本【注意版本号不包含“:”与之前的数字】
yum install -y docker-ce-20.10.8-3.el7
# 验证
docker version

补充[docker compose安装]:
官方地址:https://docs.docker.com/compose/install/other/
离线地址:https://github.com/docker/compose/releases/tag/v2.12.2

# 在线从github拉取并安装到/usr/local/bin目录
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose->linux-x86_64 -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证
docker-compose version

Portainer安装:https://docs.portainer.io/start/install

docker run -d \
-p 8000:8000 \
-p 9443:9443 \
--name portainer \
--restart=always 
-v /var/run/docker.sock:/var/run/docker.sock 
-v /docker/portainer/data:/data 
portainer/portainer-ce:latest

OMV的docker目录规划

因为我的机器是1块128G固态+1块1T机械硬盘,而通过df -h命令可以知道磁盘挂载情况
在这里插入图片描述
如图可知,1T硬盘挂载在”“目录,为了方便我本想将docker的根据目录设置到/srv/dev-disk-by-uuid-27aed415-2dc4-4511-ae70-e0ec850787dd/下的docker目录,在把这个docker通过软连接的方式链接到/docker目录,但是实际操作在omv安装docker指定根目录时,如果用/srv/dev-disk-by-uuid-27aed415-2dc4-4511-ae70-e0ec850787dd/docker会报错,无奈只能使用原始目录作为docker的根目录,即/var/lib/docker,所以只能将这个docker映射到/docker目录,后续有时间可以研究下将docker服务的跟目录改到1T硬盘上。

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

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

相关文章

子序列的权值最小值

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 给定一个长度为 nnn 的数组 aaa&#xff0c;求数组所有非空子序列权值的最小值。 定义子序列 ai,aj,…,aka_i,a_{j},\dots,a_kai​,aj​,…,ak​ 的权值为 其中 &\&& 为二进制中…

Nat. Commun. | 基于最优传输的单细胞数据集成统一计算框架

本文介绍由同济大学控制科学与工程系的洪奕光和中国科学院数学与系统科学研究院的万林共同通讯发表在 Nature Communications 的研究成果&#xff1a;单细胞数据集成可以提供细胞的全面分子视图。然而&#xff0c;如何整合异质性单细胞多组学以及空间分辨的转录组学数据仍然是一…

Linux C编程一站式学习笔记3

lLinux C编程一站式学习笔记 chap3 简单函数 文章目录lLinux C编程一站式学习笔记 chap3 简单函数一.数学函数C标准库和glibc二.自定义函数三.形参和实参Man Page习题四.全局变量、局部变量和作用域局部变量 local variable全局变量 global variable全局变量和局部变量重名的情…

【linux】linux centos 6 日志服务、rsyslogd日志服务

1.概述 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务。rsyslogd日志服 务更加先进,功能更多。但是不论该服务的使用,还是日志文件的格式其实都是和 syslogd服务相兼容的,所以学习起来基本和syslogd服务一致。 rsyslogd的新特点: 基于TCP网络协议传输日志…

测试人,为什么建议你要去大厂看一下,绝不仅仅是为了薪资和面子

&#x1f4cc; 博客主页&#xff1a; 程序员二黑 &#x1f4cc; 专注于软件测试领域相关技术实践和思考&#xff0c;持续分享自动化软件测试开发干货知识&#xff01; &#x1f4cc; 公号同名&#xff0c;欢迎加入我的测试交流群&#xff0c;我们一起交流学习&#xff01; 之前…

python数据容器分类

目录 一.数据容器可以从以下视角进行简单的分类: 1.是否支持下标索引 2.是否支持重复元素: 3.是否可以修改 二.数据容器特点对比 三.数据容器的通用操作 1.遍历 2.len(容器)、max(容器)、min(容器) 3.类型转换 注意 4.排序 一.数据容器可以从以下视角进行简单的分类:…

Clipper库 | 坐标圆整和精度控制

坐标圆整造成的问题 在Clipper库中顶点&#xff08;IntPoint&#xff09;的坐标使用的是整数类型&#xff0c; 目的是为了保持数字的鲁棒性&#xff0c;所以用整数类型来存储坐标&#xff0c;而不是我们常见的浮点数类型&#xff08;浮点存在不精确性&#xff09;。然而坐标圆…

Kerberos身份验证在ChunJun中的落地实践

Kerberos&#xff0c;在古希腊神话故事中&#xff0c;指的是一只三头犬守护在地狱之门外&#xff0c;禁止任何人类闯入地狱之中。 那么在现实中&#xff0c;Kerberos指的是什么呢&#xff1f; 一、Kerberos介绍 01 Kerberos是什么 根据百度词条释义&#xff0c;Kerberos是一…

Java——并查集

概念 当我们将多个元素分配到不同的集合中&#xff0c;这些集合有的是相关的&#xff0c;有的是不相关的。并查集就是用来查找两个元素是否在同一个集合中的 其主要实现方式是&#xff1a;将所有的元素以下标的形式存储在数组中。例如一共有十个人&#xff0c;那么就将这些人…

C语言tips-野指针

0.写在最前 最近因为工作需要开始重新学c语言&#xff0c;越学越发现c语言深不可测&#xff0c;当初用python轻轻松松处理的一些数据&#xff0c;但是c语言写起来却异常的复杂&#xff0c;这个板块就记录一下我的c语言复习之路 1. 什么是野指针&#xff1f; 如果一个指针指向的…

一文带你深入理解【Java基础】· IO流(上)

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

机器学习100天(五):005 数据预处理之划分训练集

机器学习100天,今天讲的是:数据预处理之划分训练集。 在上一节,我们对类别特征进行了编码,X 和 y 已经变成了机器学习可以理解和处理的数据格式。 下面我们就要对数据集进行划分,划分成训练集和测试集。 在监督式机器学习中,我们一般使用训练集的数据来训练模型,然后…

【LVGL学习笔记】(二) 基础概念

LVGL全程LittleVGL&#xff0c;是一个轻量化的&#xff0c;开源的&#xff0c;用于嵌入式GUI设计的图形库。并且配合LVGL模拟器&#xff0c;可以在电脑对界面进行编辑显示&#xff0c;测试通过后再移植进嵌入式设备中&#xff0c;实现高效的项目开发。 LVGL中文教程手册&#…

心理健康网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 管理员功能&#xff1a; 1、管理关于我们、联系我们 2、管理文章类型、添加心理文章 3、审核咨询师注册信息 4、查看咨询…

我的创作纪念日——为什么要写博客

文章目录收获意义憧憬收获 转载和摘抄只是对知识的搜集&#xff0c;不仅不会起到扩充知识体系的作用&#xff0c;反而会让人陷入盲目的自信或者自卑。一些人会把收藏当作底蕴&#xff0c;例如看到一个如何快速学Python的标题&#xff0c;就会逢人说自己会Python&#xff1b;另…

哈夫曼树,哈夫曼编码及应用——(代码实现)

哈夫曼树&#xff0c;哈夫曼编码及应用1.哈夫曼树1.1 什么是哈夫曼树2.如何构造哈夫曼树&#xff08;哈夫曼算法&#xff09;2.1 举例实现哈夫曼树2.1.1手动实现具体步骤2.1.2代码实现具体步骤3.哈夫曼编码3.1 什么是哈夫曼编码3.2哈夫曼编码的具体实现END!!!1.哈夫曼树 路径长…

零基础可以学习Python吗?转行小白怎么学Python?

ython学习常用的技巧有这些&#xff1a;一是要明确自己的学习目的;二是从易到难&#xff0c;循序渐进;三是合理的选择资料&#xff0c;有所取舍;四是坚定自己的信念。以下是关于Python学习技巧的具体介绍。 1、明确自己的学习目的 每个人学Python的初衷绝对是不一样的&#xf…

【观察】Akamai:向分布式云迈出坚实一步,让云和边缘“无处不在”

近年来&#xff0c;云正如同日常生活中的水、电那样&#xff0c;融入到社会的各个层面&#xff0c;它不再是一种单纯的架构或者技术&#xff0c;而是千行百业走向数字化的核心基础设施&#xff1b;云也正在变成一种融合剂&#xff0c;无论是大数据、人工智能、物联网等&#xf…

多目标背包问题:MOJAYA求解多目标背包问题(Multi-objective Knapsack Problem,MOKP)提供Matlab代码

一、多目标背包问题 1.1多目标背包问题描述 多目标背包问题(Multi-objective Knapsack Problem&#xff0c;MOKP)是一种重要的组合优化问题&#xff0c;在生活的许多领域都有着十分广泛的应用。多目标背包问题可以描述为&#xff1a;给定一个背包和n种物品&#xff0c;其中&a…

docker-compose安装gogs

1.gogs是什么 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发&#xff0c;并且支持 Go 语言支持的 所有平台&#xff0c;包括 Linux、Mac OS X、Windows 以及 ARM 平台。 2.准备工作gogs 在安装软…