3.9. 运行 preflight playbook
此 Ansible playbook 配置 Ceph 存储库,并准备用于引导的存储集群。它还安装一些先决条件,如 podman
、lvm2
、chrony
和 cephadm
软件包。cephadm-ansible
和 cephadm-preflight.yml
的默认位置为 /usr/share/cephadm-ansible
。
在引导初始主机前运行 preflight playbook。
preflight playbook 使用 cephadm-ansible
清单文件来识别管理节点和存储集群中的所有其他节点。
清单文件的默认位置为 /usr/share/cephadm-ansible/hosts
。以下示例显示了典型的清单文件的结构:
示例
清单文件中的 [admin]
组包含存储了 admin 密钥环的节点的名称。在新存储集群中,[admin]
组中的节点将是 bootstrap 节点。要在引导集群后添加额外的 admin 主机,请参阅安装指南中的设置 管理节点。
preflight playbook 提供了一组全面的检查和任务,以确保 Red Hat Ceph Storage 部署的最佳系统配置。
playbook 检查和任务包括:
正确的操作系统配置。
- Red Hat Enterprise Linux 版本。
- 正确的软件配置文件。
- 已安装所有必需的软件包。如果缺少任何软件包,playbook 会安装强制缺少的软件包。
正确的硬件配置。
- CPU 配置
- RAM 配置
- 内存 swap 空间
- 网络接口卡(NIC)配置
-
root-filesystem
和/var
的分离。
如果要执行断开连接的安装,请参阅为断开连接的安装 运行 preflight playbook。
preflight playbook 安装 chrony
,但为单个 NTP 源配置它。如果要配置多个源,或者有断开连接的环境,请参阅以下文档以了解更多信息:
在以下示例中,host01
是 bootstrap 节点。
先决条件
在开始前,请确保您有以下先决条件:
- 对 Ansible 管理节点的根级别访问权限.
-
具有 sudo 的 Ansible 用户,对存储集群中所有节点的
ssh
访问和免密码访问。 -
使用
dnf install cephadm-ansible
命令安装的 cephadm-ansible 软件包。
流程
-
进入
/usr/share/cephadm-ansible
目录。 打开并编辑
hosts
文件并添加节点。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 preflight playbook。
运行 preflight playbook,为集群中的所有主机运行 playbook,或针对集群中选定的一组主机运行 playbook。
注意在运行 preflight playbook 时,
cephadm-ansible
会在客户端节点上自动安装chrony
和ceph-common
软件包。安装完成后,cephadm 驻留在 /usr/sbin/ 目录中。
为集群中的所有主机运行 playbook。
语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Preflight Check Report 和 Summary 会生成并突出显示通过、失败和信息性检查。
图 3.1. preflight playbook 输出示例
报告中的每个输出类型都有对应的可视化显示。使用下表了解报告:
重要所有检查仅都是信息。失败不会停止检查正在运行。
Expand 表 3.1. preflight 检查报告密钥 报告类型 对应的图标 描述 passed
满足基准或推荐值
INFO
常规系统或环境信息详情。
Failed
不满足推荐的值。这只是信息。
在报告的末尾提供了一个 Summary 部分。Summary 提供了失败检查的信息。
注意该报告保存在当前工作目录中,其中 playbook 作为
./preflight_report.txt
运行。报告的路径会在概述报告后显示。使用-
limit
选项,在存储集群中的一组主机上运行 preflight playbook。语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit GROUP_NAME|NODE_NAME
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit GROUP_NAME|NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 GROUP_NAME 替换为清单文件中的组名称。将 NODE_NAME 替换为清单文件中的特定节点名称。
注意另外,您可以根据组名称,如
[mons]
,[osds]
, 和[mgrs]
等对节点进行分组。但是,必须将管理节点添加到[admin]
组和客户端,必须将客户端添加到[clients]
组中。示例
ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit clients ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit host01
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit clients [ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit host01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 更新或修复 preflight 检查过程中标记的任何问题。
验证软件包是否已成功安装。
示例
rpm -q chrony ceph-common
[ansible@admin cephadm-ansible]$ rpm -q chrony ceph-common chrony-4.5-3.el9.x86_64 ceph-common-19.2.0-55.el9cp.x86_64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow