2.8 KiB
2.8 KiB
Vault 通过 Nomad 部署指南
本文档提供了使用 Nomad 的 exec 驱动部署 HashiCorp Vault 的详细步骤,类似于 Consul 的部署方式。
部署架构
- 驱动方式:使用 Nomad 的
exec驱动 - 节点分布:在三个节点上部署(kr-master、us-ash3c、bj-warden)
- 存储后端:使用本地 Consul 作为存储后端
- 网络设置:API 端口为 8200,集群通信端口为 8201
自动部署方法
我们提供了一个自动化脚本来简化部署过程。该脚本会:
- 使用 Ansible 在所有节点上安装 Vault
- 通过 Nomad 部署 Vault 服务
- 初始化和解封 Vault(如果需要)
使用自动部署脚本
# 确保脚本有执行权限
chmod +x scripts/deploy_vault.sh
# 运行部署脚本
./scripts/deploy_vault.sh
脚本执行完成后,Vault 将在主节点上初始化并解封。您需要在其他节点上手动执行解封操作。
手动部署步骤
如果您想手动部署,请按照以下步骤操作:
1. 安装 Vault
使用 Ansible 在所有节点上安装 Vault:
ansible-playbook -i configuration/inventories/production/vault.ini configuration/playbooks/install/install_vault.yml
2. 部署 Vault 服务
使用 Nomad 部署 Vault 服务:
nomad job run jobs/vault-cluster-exec.nomad
3. 初始化 Vault
在一个节点上初始化 Vault:
export VAULT_ADDR='http://127.0.0.1:8200'
vault operator init -key-shares=5 -key-threshold=3
请安全保存生成的解封密钥和根令牌!
4. 解封 Vault
在每个节点上解封 Vault:
export VAULT_ADDR='http://127.0.0.1:8200'
vault operator unseal <解封密钥1>
vault operator unseal <解封密钥2>
vault operator unseal <解封密钥3>
验证部署
验证 Vault 状态:
export VAULT_ADDR='http://127.0.0.1:8200'
vault status
配置文件说明
Nomad 作业文件
jobs/vault-cluster-exec.nomad 定义了 Vault 服务的 Nomad 作业配置,使用 exec 驱动在三个节点上部署 Vault。
Ansible Playbook
configuration/playbooks/install/install_vault.yml 负责在目标节点上安装 Vault 软件包和创建必要的目录结构。
故障排除
Vault 无法启动
- 检查 Nomad 作业状态:
nomad job status vault-cluster-exec - 检查 Nomad 分配日志:
nomad alloc logs <allocation_id> - 确保 Consul 正在运行:
consul members
Vault 无法解封
- 确保使用正确的解封密钥
- 检查 Vault 状态:
vault status - 检查 Consul 中的 Vault 数据:
consul kv get -recurse vault/
后续步骤
成功部署 Vault 后,您可能需要:
- 配置访问策略
- 启用密钥引擎
- 与 Nomad 集成
- 配置审计日志
- 设置自动解封机制(生产环境)
请参考 docs/vault/vault_setup_guide.md 获取更多信息。