CentOS8离线安装部署ceph集群

2023-05-16

文章目录

  • 1.概念简介
    • 1.1 存储类型
      • 1.1.1 DAS设备
      • 1.1.2 NAS设备:文件服务
      • 1.1.3 SAN设备:块服务
    • 1.2 Ceph 架构简介
  • 2.集群节点规划
  • 3.准备工作
  • 4.使用 cephadm 部署一个 ceph 集群
    • 4.1 离线安装包
    • 4.2 在 ceph-mon1 节点进行部署
    • 4.3 添加 ceph-ods1、ceph-ods2 节点到集群
      • 4.3.1 集群节点间的 SSH 免密访问设置
      • 4.3.2 添加节点到集群
    • 4.4 在 ceph-ods1、ceph-ods2 节点安装 OSDs
      • 4.4.1 依赖项安装
      • 4.4.2 添加 OSD 角色(服务)到集群
  • 5.创建一个文件系统卷

1.概念简介

官方地址:https://ceph.com/en/
官方文档:https://docs.ceph.com/en/latest/
Github地址:https://github.com/ceph/ceph
版本发布地址:https://docs.ceph.com/en/latest/releases/
版本命名规则,第二个数字表示:
x.0.x:开发版
x.1.x:候选版
x.2.x:稳定、修正版,建议都是用稳定版本进行

1.1 存储类型

1.1.1 DAS设备

DAS设备:SAS、SATA、SCSI、IDE、USB
无论哪种接口,都是存储设备驱动下的磁盘设备,磁盘设备这种存储是直接接入到主板总线的

1.1.2 NAS设备:文件服务

NAS设备:NFS、CIFS、FTP
几乎所有的网络存储设备都是以文件系统进行使用

1.1.3 SAN设备:块服务

SCSI协议、FC SAN、iSCSI
基于SAN提供给客户端操作系统的一种块设备接口,设备之间主要通过SCSI协议完成通信
SCSI结构类似于TCP/IP协议,也有很多层,但是SCSI协议主要用来进行存储数据操作。既然分层实现,即有的层可以被替代。例如将物理层基于FC方式实现,就形成了FCSAN,如果基于以太网方式来传递数据,就形成了iSCSI模式。

1.2 Ceph 架构简介

Ceph: 是一个多版本存储系统,把每一个待管理的数据流(如一个文件)切分为一到多个固定大小的对象数据,并以其为原子单元完成数据存取。
对象数据的底层存储服务: 由多台主机组成的存储集群,该集群也被称为 RADOS(Reliable Automatic Distributed Object Store)存储集群,即可靠、自动化、分布式对象存储系统。
librados: 是RADOS存储集群的API,支持C、C++、Java、Python、Ruby、PHP等编程语言。
在这里插入图片描述

不管是为云平台提供 Ceph 对象存储、 Ceph 块设备、Ceph 文件系统还是把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。
在这里插入图片描述

Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但可以调整副本数)。

Monitors: Ceph Monitor 维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。

MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该归置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。

2.集群节点规划

操作系统:CentOS-8-x86_64-1905-dvd1.iso
使用虚拟机搭建集群,虚拟机创建的时候,系统盘设置50G,数据盘设置100G

节点IP数据盘(OSD)角色
ceph-mon1192.168.120.61MON、MDS、PROM、GRAFANA
ceph-osd1192.168.120.62/dev/sdbOSD
ceph-osd2192.168.120.63/dev/sdbOSD

3.准备工作

# 集群三台节点,修改 /etc/hosts 文件,并添加下面内容:
192.168.120.61 ceph-mon1
192.168.120.62 ceph-osd1
192.168.120.63 ceph-osd2

4.使用 cephadm 部署一个 ceph 集群

Ceph官网支持部署方式:https://docs.ceph.com/en/pacific/install/

部署方式描述
Cephadm使用容器和 systemd 安装和管理 Ceph 集群,并与 CLI 和仪表板 GUI 紧密集成,支持 Octopus 以后的版本,当前官方推荐部署方式,cephadm 需要容器支持(podman或docker)和Python 3
Rook部署和管理运行在 Kubernetes 中的 Ceph 集群,同时也支持通过 Kubernetes api 管理存储资源和供应。推荐使用 Rook 在 Kubernetes 中运行 Ceph,或者将现有的 Ceph 存储集群连接到 Kubernetes,只支持Nautilus和以后的新版本

4.1 离线安装包

因为后续需要离线部署到实际工作环境中,所以参照网上的部署方案,制作了一个简单的离线安装部署包。安装包里面的 cephadm 程序被修改了,将里面的 command_pull 函数里面 cmd 数组中的 ‘pull’ 改为了 ‘images’ 。因为离线部署不需要使用 docker 或者 podman 去实际拉取镜像,使用本地镜像即可。离线安装包只适合在 CentOS 8 x86_64 下使用,其他系统环境无法兼顾。离线安装包主要是打包了 podman、python3、smartmontools、chrony 的安装包,以及 cephadm 及其需要用到的几个容器镜像。

cephadm 使用到的镜像列表如下:

sudo podman images
REPOSITORY                   TAG      IMAGE ID      CREATED        SIZE
quay.ceph.io/ceph-ci/ceph    v17.0.0  fb6c62c88122  11 hours ago   1.14 GB
docker.io/ceph/ceph-grafana  6.7.4    80728b29ad3f  3 months ago   495 MB
docker.io/prom/prometheus    v2.18.1  de242295e225  11 months ago  141 MB
docker.io/prom/alertmanager  v0.20.0  0881eb8f169f  16 months ago  53.5 MB

离线安装包下载地址:
安装包1:需要修改脚本,不建议使用,如果使用,请参考4.2章节进行修改
链接:https://pan.baidu.com/s/1_0lDcH8I4CsgI6eRPFbcJQ
提取码:tq0z
ceph_centos8_x86_64_20210412_114555.7z、p7zip-16.02-16.el8.x86_64.rpm
安装包2: 不需要修改脚本,可以直接执行 ./install.sh,建议下载使用安装包2
链接:https://pan.baidu.com/s/1H9tT74Wo2QwJ_s1wWH2e9A
提取码:txy4
ceph_centos8_x86_64.tar.gz

注意:在安装完成之后,可以将 cephadm 复制到 /usr/bin 目录下,后续可以直接使用,无需指定路径。

4.2 在 ceph-mon1 节点进行部署

将离线安装包上传到 ceph-mon1 节点:ceph_centos8_x86_64_20210412_114555.7z、p7zip-16.02-16.el8.x86_64.rpm
安装:rpm -ivh p7zip-16.02-16.el8.x86_64.rpm
解压:7za x ceph_centos8_x86_64_20210412_114555.7z
解压后进入 ceph_centos8_x86_64 文件夹,执行下面命令进行基础依赖组件安装:

# 修改脚本
vim cephadm
# Default container images -----------------------------------------------------
DEFAULT_IMAGE = 'quay.ceph.io/ceph-ci/ceph:master'
修改为:
# Default container images -----------------------------------------------------
DEFAULT_IMAGE = 'quay.ceph.io/ceph-ci/ceph:v17.0.0'
vim install.sh
podman load -i docker.io/prom/node-exporter.tar  docker.io/prom/node-exporter:v0.18.1
修改为:
podman load -i docker.io/prom/node-exporter.tar  docker.io/prom/node-exporter:v0.18.1
vim目录添加如下两个rpm包,否则,导入镜像报错:
libseccomp-2.5.1-1.el8.x86_64.rpm
libseccomp-devel-2.5.1-1.el8.x86_64.rpm
# 执行 install.sh 脚本,安装必要的一些软件,以及导入镜像到容器
[root@ceph-mon1 ceph_centos8_x86_64]# ./install.sh

安装完成基础组件后,再执行 cluster.gen.sh 脚本来创建集群,执行的过程中,会要求输入 MON 节点的 IP,直接输入后回车即可:

[root@ceph-mon1 ceph_centos8_x86_64]# ./cluster.gen.sh
... ...
Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。
请输入 MON (Ceph Monitor) 节点 IP:192.168.120.61
... ...
Enabling firewalld port 8443/tcp in current zone...
Ceph Dashboard is now available at:

             URL: https://ceph-mon1:8443/
            User: admin
        Password: 0yaqy67njv

You can access the Ceph CLI with:

        sudo ./cephadm shell --fsid 192e064c-e56a-11ec-92a0-000c2965ed0e -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

Please consider enabling telemetry to help improve Ceph:

        ceph telemetry on

For more information see:

        https://docs.ceph.com/docs/master/mgr/telemetry/

Bootstrap complete.
sudo ./cephadm shell --fsid 192e064c-e56a-11ec-92a0-000c2965ed0e -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

使用以上用户名和密码访问:https://192.168.120.61:8443/
在这里插入图片描述
在这里插入图片描述

4.3 添加 ceph-ods1、ceph-ods2 节点到集群

4.3.1 集群节点间的 SSH 免密访问设置

# 在 ceph-mon1节点执行
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-osd1
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-osd2

# 或者,需要在集群三个节点,都执行以下命令,保证集群间所有节点都是免密登录的:
ssh-keygen -t rsa
ssh-copy-id -f -i /root/.ssh/id_rsa.pub root@ceph-osd1
ssh-copy-id -f -i /root/.ssh/id_rsa.pub root@ceph-osd2

4.3.2 添加节点到集群

直接将离线安装包拷贝到 ceph-osd1、ceph-osd2 节点上,并执行 install.sh 脚本
其实保证 ceph-osd1、ceph-osd2节点(python3、podman)即可

# 执行完成上面的操作之后,可以回到 ceph-mon1 节点,执行下面的命令将 ceph-osd1 和 ceph-osd2 添加到集群:
ceph orch host add ceph-osd1 192.168.120.62
ceph orch host add ceph-osd2 192.168.120.63

[root@ceph-mon1 ~]# ceph orch host add ceph-osd1 192.168.120.62
Added host 'ceph-osd1'
[root@ceph-mon1 ~]# ceph orch host add ceph-osd2 192.168.120.63
Added host 'ceph-osd2'

在这里插入图片描述

# 在 ceph-mon1 节点执行,给节点添加标签
ceph orch host label add ceph-osd1 mgr
ceph orch host label add ceph-osd2 mgr

ceph orch apply mgr label:mgr

[root@ceph-mon1 ~]# ceph orch host label add ceph-osd1 mgr
Added label mgr to host ceph-osd1
[root@ceph-mon1 ~]# ceph orch host label add ceph-osd2 mgr
Added label mgr to host ceph-osd2
[root@ceph-mon1 ~]# ceph orch apply mgr label:mgr
Scheduled mgr update...

在这里插入图片描述

4.4 在 ceph-ods1、ceph-ods2 节点安装 OSDs

下面的操作都是在 ceph-ods1、ceph-ods2 节点进行的,两个节点都要执行

4.4.1 依赖项安装

保证节点 ceph-osd1、ceph-osd2 节点(ceph-common、chrony、docker.io、quay.ceph.io)即可

将 ceph-mon1 节点上的 /etc/ceph/ceph.conf 和 ceph.client.admin.keyring 文件拷贝到其他节点即可
scp /etc/ceph/ceph.conf root@ceph-osd1:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring root@ceph-osd1:/etc/ceph/

scp /etc/ceph/ceph.conf root@ceph-osd2:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring root@ceph-osd2:/etc/ceph/

保证 ceph-osd1、ceph-osd2 节点 执行 ceph 命令不报错

4.4.2 添加 OSD 角色(服务)到集群

前面添加了节点到集群,并且也在每个节点都进行必要的依赖项安装,以及 podman 镜像的导入,下面可以进行 OSD 角色(服务)的添加了。
在任意节点执行(因为都已经安装了 ceph-common,所以那个节点都一样)

# 在 ceph-osd1 和 ceph-osd2 节点创建 osd 服务
# 注意:下面的  /dev/sdb 是在节点机器上的一个未使用的磁盘
ceph orch daemon add osd ceph-osd1:/dev/sdb
ceph orch daemon add osd ceph-osd2:/dev/sdb

# 添加别的角色也是类似的操作,比如添加一个 mon
ceph orch daemon add mon ceph-osd1:192.168.120.62/24

在这里插入图片描述
在这里插入图片描述

查看集群状态(因为只有两个 OSDs ,所以会有警告):
[root@ceph-mon1 ~]# ceph -s
  cluster:
    id:     192e064c-e56a-11ec-92a0-000c2965ed0e
    health: HEALTH_WARN
            OSD count 2 < osd_pool_default_size 3

  services:
    mon: 2 daemons, quorum ceph-mon1,ceph-osd1 (age 69s)
    mgr: ceph-mon1.otlyjq(active, since 6m)
    osd: 2 osds: 2 up (since 109s), 2 in (since 2m)

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   9.9 MiB used, 200 GiB / 200 GiB avail
    pgs:

5.创建一个文件系统卷

# 可以先创建两个 Pool,如果不创建的话,会默认创建的
# ceph osd pool create testfs.data    # 用于保存数据
# ceph osd pool create testfs.meta    # 用于保存元数据

# 创建一个文件系统卷 testfs
# 下面命令中的 testfs.meta testfs.data 不指定就会创建默认名称是
# cephfs.testfs.meta 和 cephfs.testfs.data 的 Pool
# 如果上面创建了别的名字的 Pool ,这里也是可以用的,指定 Pool 名称就是
ceph fs volume create testfs        # testfs.meta testfs.data

# 查看一下当前的文件系统卷有哪些
[root@ceph-mon1 ~]# ceph fs volume ls
[
    {
        "name": "testfs"
    }
]

创建完成之后,添加一个 mds (元数据)服务

# 设置一下副本数量
ceph orch apply mds testfs --placement="2 ceph-osd1 ceph-osd2"

# 在节点 ceph-mon1 上添加 mds 服务
ceph orch daemon add mds testfs ceph-mon1

# 查看一下文件系统状态
[root@ceph-mon1 ~]# ceph fs status testfs
testfs - 0 clients
======
RANK  STATE             MDS               ACTIVITY     DNS    INOS   DIRS   CAPS
 0    active  testfs.ceph-mon1.mzkpbb  Reqs:    0 /s    10     13     12      0
       POOL           TYPE     USED  AVAIL
cephfs.testfs.meta  metadata  64.0k  94.9G
cephfs.testfs.data    data       0   63.3G
MDS version: ceph version 17.0.0-2904-g116ef525 (116ef52566c5fb8f7621439218fb492595e2d85a) quincy (dev)

使用命令 ceph mds stat 查看下 mds 服务状态

[root@ceph-mon1 ~]# ceph mds stat
testfs:1 {0=testfs.ceph-mon1.mzkpbb=up:active}

重新看一下集群状态:

[root@ceph-mon1 ~]# ceph -s
  cluster:
    id:     192e064c-e56a-11ec-92a0-000c2965ed0e
    health: HEALTH_WARN
            Degraded data redundancy: 22/66 objects degraded (33.333%), 10 pgs degraded, 128 pgs undersized
            OSD count 2 < osd_pool_default_size 3

  services:
    mon: 2 daemons, quorum ceph-mon1,ceph-osd1 (age 8m)
    mgr: ceph-mon1.otlyjq(active, since 13m)
    mds: 1/1 daemons up
    osd: 2 osds: 2 up (since 9m), 2 in (since 9m)

  data:
    volumes: 1/1 healthy
    pools:   4 pools, 128 pgs
    objects: 22 objects, 2.3 KiB
    usage:   12 MiB used, 200 GiB / 200 GiB avail
    pgs:     22/66 objects degraded (33.333%)
             118 active+undersized
             10  active+undersized+degraded

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS8离线安装部署ceph集群 的相关文章

  • ubuntu20 编译dpdk错误 -Werror=address-of-packed-member

    0x0 在ubuntu20上编译dpdk 18 11报错 xff0c gcc 版本为9 3 0 xff0c 报错如下 xff1a error converting a packed const struct ether addr point
  • Docker安装EMQX

    寻找EMQX镜像 Docker Hub 查找官方镜像 下载EMQX镜像 下载最新版EMQX镜像 span class token function docker span pull emqx emqx 等同于 span class toke
  • Aspose.Cells中文版文档

    Aspose Cells相应操作 1 上传 1 1 Workbook Workbook workBook 61 new Workbook 属性 名称 值类型 说明 Colors Color 获取或设置Excel颜色 ConvertNumer
  • expdp/impdp 详细参数解释

    数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输 数据对象的机制 该实用程序可以使用以下命令进行调用 示例 expdp scott tiger DIRECTORY 61 dmpdir DUMPFILE 61 scott dm
  • MSDN,我告诉你

    VS MSSQL Windows Windows Server等下载地址均为电骡下载地址 http msdn itellyou cn
  • ASP.NET MVC 4 插件化架构简单实现-思路篇

    用过和做过插件的都会了解插件的好处 xff0c 园子里也有很多和讨论 xff0c 但大都只些简单的加载程序集什么的 xff0c 这里主要讨论的就是使用 ASP NET MVC 4 来实现每个插件都可以完全从主站点剥离出来 xff0c 即使只
  • Quartz.NET 2.0 学习笔记(4) :cron表达式

    Quartz NET 项目地址 http quartznet sourceforge net Quartz NET 2 0 学习笔记 1 xff1a Quartz NET简介 Quartz NET 2 0 学习笔记 2 xff1a 和1 0
  • 修改oracle用户密码永不过期

    1 以在SQL Plus下以DBA身份登陆 用户名 密码 64 服务器SID as sysdba 方法一 xff1a xff08 注意必须用双引号把后面的引上 xff09 C Documents and Settings ssy gt sq
  • Log4Net记录日志到数据库启动24小时后将无法向mysql数据库插入数据

    最近用Log4Net做成服务把日志记录到MySql数据库可是发现可以个奇怪的的问题 xff0c 每过一个晚上Log4Net就不会自动向MySql 数据库记录日志 xff0c 后来经过多方面测试发现 这个问题主要是Mysql会把空闲8小时 x
  • Mysql 密码过期导致无法登陆

    1 停止当前mysql服务 2 mysqld defaults file 61 34 C ProgramData MySQL MySQL Server 5 7 my ini 34 skip grant tables 一定是my ini 我一
  • 上拉电阻 以及 阻抗匹配

    如上图 xff0c 这是UART通信部分原理图 xff0c 先分析一下TX0部分的电路 xff0c 图上TX0是从芯片直接引出来 xff0c 左边四PIN的J7是接到外部设备的插针 xff0c 当TX0输出低电平时 xff0c 由于D2阳极
  • 计算机网络实践

    计算机网络实践 第一章 计算机基本命令 一 网线制作 材料 xff1a 双绞线 xff08 8根线两两绞在一起为减弱电磁干扰 xff09 xff1b 水晶头 xff1b 压线钳双绞线测试仪 制作过程 xff1a 用压线钳将双绞线一端的灰色表
  • 1.FreeRTOS操作系统简介

    1 1 FreeRTOS是什么 xff1f 操作系统 xff08 operation system 简称OS xff09 xff1a 是管理计算机硬件和软件资源的计算机程序 实时操作系统 xff08 Real Time Operating
  • ROS运行python脚本报错ImportError: No module named srv

    最近又写了个ROS xff08 robot operating system xff09 包 xff0c 格式照抄之前的包 xff0c 结构如下 xff1a haipeng 64 wang catkin ws src tree net ma
  • Git如何修改commit信息

    一 git 如何修改最近一次的commit信息 1 git commit amend 2 进入vim操作界面之后 点击字母键 i 然后进入INSERT模式 xff0c 然后对commit信息进行修改 xff0c 然后ESC 然后 wq 保存
  • vscode下git的常见操作

    目录 一 第一次从git下载代码 xff0c 前期流程 二 输入相关命令 xff1a 2 1 下载master分支代码 xff1a 2 2 下载dev分支的代码 2 3 服务器新建了新的分支 xff0c 本地刷新分支 一 第一次从git下载
  • ubuntu配置novnc通过web访问服务器

    希望通过vnc去连接主机去看控制服务器系统 xff0c 集成到web中使用 novnc是一种选择 环境如下 xff0c 两个主机host1 host2 xff0c web装载81 224中 xff0c 环境使用的Ubuntu 16 04 具
  • 简单的命令快速下载远程各种docker 镜像 github 库,各种软件资料。

    做研究开发和项目实战中经常要下载国外的docker镜像和软件源代码 xff0c 软件安装包 xff0c 这个过程如果子国外的服务器上执行 xff0c 一般不会超过10秒 xff0c 如果在中国境内的机器上执行 xff0c 一般要5分钟甚至几
  • 字节序(byte order)、比特序(bit order)、MSB/LSB、大端模式/小端模式 概念误混淆

    发现之前概念一直混淆 xff0c 今天就理清楚以作备忘 前提 xff1a 内存的读写永远从低地址开始读 写 xff0c 从低到高 xff01 从低到高 xff01 从低到高 xff01 内存的读写永远从低地址开始读 写 xff01 xff0
  • 蓝牙协议栈(六、芯片组)

    在本章中 xff0c 我们首先解释蓝牙芯片组如何物理连接 xff0c 然后提供有关流行的蓝牙芯片组及其与BTstack一起使用的信息 HCI接口 主机 xff08 计算机或MCU xff09 与主机控制器 xff08 实际蓝牙芯片组 xff

随机推荐

  • 【C++深度解析】16、类的静态成员

    文章目录 1 静态成员变量2 静态成员函数3 小结 1 静态成员变量 静态成员变量属于整个类 xff0c 所有对象共享类的静态成员变量可直接通过对象名 类名访问静态成员变量的生命期不依赖于任何对象 特性 xff1a 静态成员变量需要在类外单
  • catkin init/build 遇到catkin:command not found 的解决办法。

    背景 xff1a 安装ROS环境点击打开链接后 xff0c catkin make可以跑 xff0c 但是如果跑catkin init或者catkin build就会遇到catkin xff1a command not found 原因 x
  • 矩形检出算法介绍

    背景 矩形检出算法即从一副图像中找出候选矩形 xff0c 不同于hough找圆等算法在opencv中有现成接口 xff0c 矩形检出算法需要自己手动实现 其常见用途是移动端拍摄文档进行矫正等 xff0c 近期开发二维码识别时也用到了矩形检出
  • www-authenticate

    www authenticate是一种简单的用户身份认证技术 很多验证都采用这种验证方式 尤其在嵌入式领域中 优点 方便 缺点 xff1a 这种认证方式在传输过程中采用的用户名密码加密方式为BASE 64 其解码过程非常简单 如果被嗅探密码
  • 【无人驾驶系列】光学雷达(LiDAR)在无人驾驶技术中的应用

    作者 xff1a 刘博聪 xff0c 刘少山 xff0c James Peng 责编 xff1a 周建丁 xff08 投稿请联系zhoujd 64 csdn net xff09 声明 xff1a 程序员 原创文章未经允许不得转载 xff0c
  • 小程序内嵌webview无法使用JSAPI调起支付

    需求背景 xff1a 原本做了在H5页面浏览器环境 xff08 H5方式调起支付 xff09 及微信环境 xff08 微信JSAPI调起支付 xff09 xff0c 有需要在小程序中发起微信支付 调研 xff1a 在小程序内嵌webview
  • 轻松玩转Makefile | 基础用法

    前言 本文通过几个简单的示例 xff0c 可以快速了解Makefile的基本使用方法 xff0c 适用于编译我们平时练习所编写的小量代码 1 make命令 Makefile文件内容 all为目标 xff0c 这里没有依赖的文件 xff0c
  • CentOS7使用Selenium截图时中文乱码

    文章目录 1 问题2 CentOS7安装中文字体3 解决 1 问题 在CentOS7环境下 xff0c 使用Selenium进行Web自动化测试 xff0c 页面截图时 xff0c 遇到中文乱码 xff0c 中文显示为小框框 xff0c 问
  • CentOS7 Selenium设置窗口最大模式

    文章目录 1 问题2 解决 1 问题 在CentOS7环境下 xff0c Selenium进行截图时 xff0c 发现 xff0c 截图比较小 xff0c 窗口最大化 driver maximize window 没有生效 xff0c 截图
  • CentOS7安装Selenium

    文章目录 1 安装Chrome2 配置chromedriver3 验证4 运行程序 1 安装Chrome 下载地址 xff1a 链接 xff1a https pan baidu com s 1Kfe tch MOQK8nHydBNEvA 提
  • Linux-Jenkins添加Windows节点并执行Python脚本

    文章目录 1 Jenkins添加节点2 Win 启动3 Jenkins在Windows执行Python脚本 1 Jenkins添加节点 系统管理 节点管理 新建节点 填写节点名称 xff08 WinSelf xff0c 中间不要带段横杠 x
  • CentOS7离线安装Zabbix4.4

    文章目录 1 安装MySQL1 1 卸载Mariadb1 2 准备MySQL离线安装包 2 安装HTTPD服务2 1 HTTPD离线安装包准备2 2 HTTPD离线安装 3 安装PHP3 1 PHP离线安装包准备3 2 PHP离线安装 4
  • Gazebo 详细介绍

    Gazebo is a 3D multi robot simulator with dynamics It is capable of simulating articulated robot in complex and realisti
  • CentOS7安装Firefox-Selenium

    文章目录 1 下载并安装2 执行Python 1 下载并安装 创建目录 mkdir firefox 下载Firefox 在Linux的安装包 https ftp mozilla org pub firefox releases wget h
  • Pytest+Allure安装

    文章目录 1 Pytest 环境安装2 Window环境下Allure安装3 Linux环境下Allure安装 1 Pytest 环境安装 span class token comment 在线安装 span pip3 install py
  • CentOS7搭建Gerrit服务

    文章目录 1 环境准备2 下载Gerrit3 安装并初始化4 更新监听URL5 重启Gerrit6 访问Gerrit 1 环境准备 Linux xff08 CentOS7 span class token punctuation span
  • CentOS7详细搭建Gerrit服务

    文章目录 0 环境准备1 安装Git2 下载Gerrit3 安装Java3 1 旧JDK卸载3 2 安装指定JDK 4 安装MySQL4 1 卸载Mariadb4 2 安装MySQL4 3 创建数据库 5 初始化Gerrit6 使用HTTP
  • CentOS7详细搭建Gitlab服务

    文章目录 1 环境准备2 yum源配置3 安装Gitlab4 配置启动5 访问 1 环境准备 span class token comment 操作系统信息 span span class token punctuation span ro
  • CentOS7-ELK集群搭建

    文章目录 1 准备 xff08 集群所有节点 xff09 1 1 安装JDK xff08 集群所有节点 xff09 2 Elasticsearch搭建2 1 ES下载2 2 安装 xff08 集群所有节点 xff09 2 3 修改配置文件
  • CentOS8离线安装部署ceph集群

    文章目录 1 概念简介1 1 存储类型1 1 1 DAS设备1 1 2 NAS设备 xff1a 文件服务1 1 3 SAN设备 xff1a 块服务 1 2 Ceph 架构简介 2 集群节点规划3 准备工作4 使用 cephadm 部署一个