预置剧本
Etcd 模块提供了两个核心剧本:etcd.yml 用于安装与配置 Etcd 集群,etcd-rm.yml 用于移除 Etcd 集群或成员。
自 Pigsty v3.6 起,etcd.yml 剧本专注于集群安装和成员添加,所有移除操作已迁移至独立的 etcd-rm.yml 剧本和 etcd_remove 角色。
etcd.yml
剧本原始文件:etcd.yml
执行本剧本,将会在硬编码的固定分组 etcd 上安装配置 Etcd 集群,并启动 etcd 服务。
在 etcd.yml 中,提供了以下是可用的任务子集:
etcd_assert:验证 etcd 身份参数(etcd_seq必须定义且为非负整数)etcd_install:安装 etcd 软件包etcd_dir:创建 etcd 数据和配置目录etcd_config:生成 etcd 配置etcd_conf:生成 etcd 主配置文件/etc/etcd/etcd.confetcd_cert:生成 etcd TLS 证书(CA、服务器证书、私钥)
etcd_member:将新成员添加到现有集群(仅当etcd_init=existing时执行)etcd_launch:启动 etcd 服务etcd_auth:启用 RBAC 认证(创建 root 用户并启用认证)etcd_register:将 etcd 注册到 VictoriaMetrics 监控
etcd-rm.yml
剧本原始文件:etcd-rm.yml
用于移除 Etcd 集群或单个成员的专用剧本。在 etcd-rm.yml 中,提供了以下可用的任务子集:
etcd_safeguard:检查防误删保险,如果启用则中止执行etcd_pause:暂停 3 秒,允许用户使用 Ctrl-C 中止执行etcd_deregister:从 VictoriaMetrics 监控目标中移除 etcd 注册etcd_leave:在清理前尝试优雅地离开 etcd 集群etcd_svc:使用 systemd 停止并禁用 etcd 服务etcd_data:移除 etcd 数据(可通过etcd_rm_data=false禁用)etcd_pkg:卸载 etcd 软件包(需通过etcd_rm_pkg=true显式启用)
移除剧本使用 etcd_remove 角色,支持以下可配置参数:
etcd_safeguard:设置为true时阻止意外移除etcd_rm_data:控制是否删除 ETCD 数据(默认:true)etcd_rm_pkg:控制是否卸载 ETCD 软件包(默认:false)
etcd_safeguard 默认是 false,etcd_rm_data 默认是 true。因此,完整执行 etcd-rm.yml 会尝试将目标退群、注销并停服,随后删除本机 Etcd 数据、配置、单元和客户端环境文件。
剧本会忽略部分退群与清理错误,也不会证明剩余成员仍有仲裁;每次都应使用精确的 -l,并核对近期备份、成员列表与剩余仲裁。
执行演示
命令速查
Etcd 安装与配置:
Etcd 移除与清理:
便捷脚本:
保护机制
出于防止误删的目的,Pigsty 的 ETCD 模块提供了防误删保险,由 etcd_safeguard 参数控制,默认为 false,即默认不打开防误删保护。
对于生产环境已经初始化好的 etcd 集群,建议打开防误删保护,避免误删现有的 etcd 实例:
当 etcd_safeguard 设置为 true 时,etcd-rm.yml 会在任何注销、退群、停服或删除动作前直接中止;它是布尔保护开关,并不探测实例是否存活。您可以使用命令行参数来覆盖这一行为:
无论保护开关取值如何,真实运行后都要重新检查 etcdctl member list、端点健康和剩余仲裁;任务返回成功不能替代这些运行态验收。