预置剧本

如何使用预置的 ansible 剧本来管理 Etcd 集群,常用管理命令速查。

Etcd 模块提供了一个默认的剧本 etcd.yml ,用于安装 Etcd 集群。


etcd.yml

剧本原始文件:etcd.yml

执行本剧本,将会在硬编码的固定分组 etcd 上安装配置 Etcd 集群,并启动 etcd 服务。

etcd.yml 中,提供了以下是可用的任务子集:

  • etcd_assert :生成 etcd 身份
  • etcd_install :安装 etcd rpm 包
  • etcd_clean :清理现有的 etcd 实例
    • etcd_check :检查 etcd 实例是否在运行
    • etcd_purge :删除正在运行的 etcd 实例和数据
  • etcd_dir :创建 etcd 数据和配置目录
  • etcd_config :生成 etcd 配置
    • etcd_conf :生成 etcd 主配置
    • etcd_cert :生成 etcd ssl 证书
  • etcd_launch :启动 etcd 服务
  • etcd_register : 将 etcd 注册到 prometheus

Etcd 模块没有提供专门的卸载剧本,如果您需要卸载 Etcd,可以使用剧本中的 etcd_clean 子任务,请参考 保护机制 中的介绍。


执行演示

asciicast


命令速查

Etcd 剧本与快捷方式:

./etcd.yml                                      # 初始化 etcd 集群 
./etcd.yml -t etcd_launch                       # 重启整个 etcd 集群
./etcd.yml -t etcd_clean                        # 移除整个集群,会检查现有实例是否存在,根据安全保险判断是否执行
./etcd.yml -t etcd_purge                        # 强制移除整个集群,根本不管安全保险是否启用。
./etcd.yml -t etcd_conf                         # 使用最新状态刷新 /etc/etcd/etcd.conf
./etcd.yml -l 10.10.10.12 -e etcd_init=existing # 扩容节点:一定要添加 existing 参数,命令行或配置文件均可
./etcd.yml -l 10.10.10.12 -t etcd_purge         # 删除节点

保护机制

出于防止误删的目的,Pigsty 的 ETCD 模块提供了防误删保险,由以下参数控制:

  • etcd_clean 默认为 true,即,默认在初始化时清理现有实例。
  • etcd_safeguard: 默认为 false,即默认不打开防误删保护。

默认配置使得您可以使用剧本重置 etcd 集群的状态,这对于开发、测试和生产环境中紧急重建 etcd 集群非常有用。

如果您希望在初始化时清理现有实例,请修改配置文件,显式关闭此保险,或者在执行时使用命令行参数 -e etcd_clean=true 进行覆盖。

如果您单纯希望清理现有实例,而不安装新实例,直接执行 etcd_clean 子任务即可:

./etcd.yml -l <cls> -e etcd_clean=true -t etcd_clean

如果您确定要摧毁这个 etcd 集群,更简单暴力直接的方式是:

./etcd.yml -l <cls> -t etcd_purge

除非您清楚地知道自己在做什么,我们并不建议用户这样清理 Etcd 集群。





Last modified 2024-12-02: update en blog pg-ext-repo (561aa114)