参数列表
VAULT 模块的参数列表,共有 8 个参数,分为两个部分:
VAULT:5 个参数,用于 VAULT 集群的部署与配置VAULT_REMOVE:3 个参数,控制 VAULT 集群的移除
VAULT 刻意只开放很少的参数:集群模式由成员数推导,高可用入口复用 NODE 模块的 VIP 参数,其余端口、目录、引擎与备份策略都是 固定约定。
参数概览
VAULT 参数组用于 VAULT 集群的部署与配置,包括实例标识、集群名称、数据目录、端口以及服务域名。
| 参数 | 类型 | 级别 | 说明 |
|---|---|---|---|
vault_seq | int | I | VAULT 实例标识符,必填 |
vault_cluster | string | C | VAULT 集群名,默认为 vault |
vault_data | path | C | VAULT 数据目录,默认为 /data/vault |
vault_port | port | G | VAULT API 端口,默认为 8200 |
vault_domain | string | G | VAULT 服务域名,默认为 vault.pigsty |
VAULT_REMOVE 参数组控制 VAULT 集群的移除行为,包括防误删保险、数据清理以及软件包卸载。
| 参数 | 类型 | 级别 | 说明 |
|---|---|---|---|
vault_safeguard | bool | G/C/A | 防误删保险,默认为 true,阻止移除操作 |
vault_rm_data | bool | G/C/A | 移除时是否删除 VAULT 数据?默认为 true |
vault_rm_pkg | bool | G/C/A | 移除时是否卸载 openbao 软件包?默认为 false |
VAULT
本节包含 vault 角色的参数,
这些是 vault.yml 剧本使用的参数。
相关参数定义于 roles/vault/defaults/main.yml
vault_seq
参数名称: vault_seq, 类型: int, 层次:I
VAULT 实例标号,这是必选参数,必须为每一个 VAULT 成员指定一个在组内唯一的非负整数。
实例名由集群名与实例号组成:<vault_cluster>-<vault_seq>,例如 vault-1。实例名同时用作 Raft 节点 ID、服务端证书的 CN 与监控标签 ins。
vault_seq 最小 的成员负责集群的首次初始化。实例号应当终生不变:一旦分配就不再修改,也不要回收给其他节点复用。
剧本会校验:vault_seq 必须是非负整数,且在 vault 分组内不能重复,否则立即中止。
vault_cluster
参数名称: vault_cluster, 类型: string, 层次:C
VAULT 集群名称,默认值为 vault。
它用作实例名前缀、OpenBao 的 cluster_name 与监控标签 cls,也参与解封密钥 ID 的生成。
请注意,VAULT 成员所在的 Ansible 分组名是硬编码的 vault,与 vault_cluster 无关;每套 Pigsty 部署只有一套 VAULT 集群。通常无需修改此参数。
vault_data
参数名称: vault_data, 类型: path, 层次:C
VAULT 数据目录,默认为 /data/vault。
该目录下包含两个子目录:raft/ 存放 Raft 存储,backup/ 存放本地快照。
它必须是一个 专用 的绝对路径,且至少有两级(例如 /data/vault),不能包含 ..。移除剧本会删除整个目录,因此请不要把它指向 /var/lib 这类共享的父目录。
vault_port
参数名称: vault_port, 类型: port, 层次:G
VAULT API 端口,默认为 8200。
Raft 集群端口固定为 vault_port + 1,即默认的 8201,这是 OpenBao 自身的约定,因此没有单独的参数。
客户端、HAProxy 入口与监控抓取都使用这个端口。集群创建后请不要修改它。
vault_domain
参数名称: vault_domain, 类型: string, 层次:G
VAULT 服务域名,默认为 vault.pigsty。
该域名会写入每个成员服务端证书的 SAN,所有客户端都应通过 https://<vault_domain>:<vault_port> 访问 VAULT。
Pigsty 不会自动解析这个域名,您需要通过 node_etc_hosts 将它指向单节点集群的成员,或者三节点集群的 VIP,参见 服务域名。
VAULT_REMOVE
本节包含 vault_remove 角色的参数,
这些是 vault-rm.yml 剧本使用的参数。
相关参数定义于 roles/vault_remove/defaults/main.yml
vault_safeguard
参数名称: vault_safeguard, 类型: bool, 层次:G/C/A
VAULT 防误删保险参数,默认为 true。为 true 时,vault-rm.yml 会在执行任何操作之前直接中止。
这是 Pigsty 中唯一默认开启的删除保险。删除 VAULT 等于删除了其中保存的全部密钥:使用这些密钥加密的数据库、对象以及它们的 全部备份,都将永久无法解密。
要执行移除,必须在命令行中显式覆盖:
vault_rm_data
参数名称: vault_rm_data, 类型: bool, 层次:G/C/A
移除时是否删除 VAULT 数据与配置?默认为 true。
启用时会删除成员上的 /etc/openbao(包括 TLS 证书、解封密钥与备份令牌的节点副本)、vault_data 目录(包括其中的本地快照)、systemd 单元、客户端环境文件、日志轮转配置与 vault-backup 脚本。
无论此参数取值如何,管理节点上的 files/pki/vault/ 与成员上的审计日志 /var/log/openbao/ 都不会被删除。
vault_rm_pkg
参数名称: vault_rm_pkg, 类型: bool, 层次:G/C/A
移除时是否卸载 openbao 软件包?默认为 false。
相关参数
VAULT 的高可用入口与域名解析直接复用其他模块的已有参数,不新增参数:
| 参数 | 模块 | 在 VAULT 中的作用 |
|---|---|---|
vip_enabled | NODE | 在 vault 节点集群上启用 L2 VIP,同时启用 HAProxy 入口与证书中的 VIP SAN |
vip_address | NODE | VIP 地址,vault.pigsty 应当解析到这里 |
vip_vrid | NODE | VRRP 路由器 ID,在同一 L2 网络内必须唯一 |
node_cluster | NODE | 成员应使用相同的节点集群名,以生成一致的 VRRP 认证 |
node_etc_hosts | NODE | 将 vault_domain 写入所有节点的 /etc/hosts |
haproxy_enabled | NODE | 为 false 时不生成 VAULT 的 HAProxy 入口 |
cert_validity | INFRA | 服务端证书有效期,默认为 20 年 |
固定约定
以下事项在 VAULT 中是固定约定,不提供参数:
| 事项 | 约定 |
|---|---|
| 分组名 / 实例名 | 固定分组 vault,实例名 <vault_cluster>-<vault_seq> |
| 集群模式 | 由成员数推导:1 个为实验,3 个为生产 |
| 端口 | API vault_port(8200),Raft vault_port + 1(8201) |
| 服务 / 用户 / 命令 | openbao.service / openbao / bao,均来自上游软件包 |
| 软件版本 | 由 Pigsty Infra 仓库中的 openbao 软件包决定 |
| 解封方式 | static seal,密钥为管理节点上的 files/pki/vault/unseal.key |
| 初始化参数 | 5 份恢复密钥,阈值为 3 |
| 默认引擎 | secret/(KV v2)、transit/、auth/approle |
| 令牌 | token/ 认证方式的最长租期为 10 年(87600h),备份令牌有效期 10 年 |
| 审计 | 文件审计设备,写入 /var/log/openbao/audit.log,每天轮转,保留 7 份 |
| 备份 | 每个成员每天 3 点拍摄快照,分钟数为 (vault_seq × 10) % 60 以错开执行,本地保留 7 份 |
| TLS | Pigsty CA 签发证书,最低 TLS 1.3 |
| 遥测 | 节点 IP 监听器上允许免认证读取 /v1/sys/metrics,回环监听器不开放 |
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)