我们已经将hasicorp开源库作为带有consul后端的单个节点实现。 我们需要有关在单数据中心以及多数据中心实施HA的Vault 3节点集群的帮助。 你能帮我解决这个问题。
答案 0 :(得分:1)
Hashicorp已就如何开始设置HA Vault和Consul配置提供了一些指导:
https://www.vaultproject.io/guides/operations/vault-ha-consul.html
答案 1 :(得分:1)
《保管库部署指南》对此有更多说明。
https://learn.hashicorp.com/vault/operations/ops-deployment-guide#help-and-reference
按照以下指南进行合并:https://learn.hashicorp.com/vault/operations/ops-vault-ha-consul
基于您已经使用Consul后端建立了一个节点的事实,我将假设您已经对脚本,Git,配置新的SSH连接,安装软件和虚拟机有所了解。
此外,这些很难解释,并且在其他地方具有更好的资源。
此外,如果您遇到先决条件,安装工具或下载代码的困扰,请查看Internet上的资源。
但是,如果您发现Vault工作不正常的错误,请尽快发出Github问题。
无论如何,简短的答案是这样的:
步骤1:设置3个Consul服务器,每个服务器相互引用。
步骤2:设置3台Vault服务器,每台服务器都是独立的,但要参考Consul 地址作为他们的存储后端。
第3步:使用全新的Vault API初始化群集。
现在回答很长。
设置Vagrant,因为这里将处理要使用的基础基础结构的所有网络和资源设置。
特别是对于Vagrant,安装Vagrant和Virtualbox后,入门指南大约需要30分钟:https://www.vagrantup.com/intro/getting-started/index.html
相关的供应商文档链接:https://help.github.com/articles/cloning-a-repository
git clone https://github.com/v6/super-duper-vault-train.git
相关的无业游民供应商文档链接:https://www.vagrantup.com/intro/index.html#why-vagrant-
cd super-duper-vault-train
vagrant up
##注意:您可能需要等待一段时间,并且由于虚拟机正在引导,因此在成功建立连接之前,很长一段时间内都会出现“重试连接”错误。确保您拥有最新版本,并尝试使用Vagrant入门指南
vagrant status
vagrant ssh instance5
完成此操作后,您将看到命令提示符更改为显示vagrant@instance5
。
您也可以vagrant ssh
到vagrant status
输出中列出的其他VM。
您现在可以在运行vagrant ssh
的VM内使用Vault或Consul。
ps -ef | grep vault
##检查Vault进程(在Vagrant管理的实例内部运行)
ps -ef | grep consul
##检查Consul流程(在Vagrant管理的实例中运行)
vault version
##输出应为Vault v0.10.2 ('3ee0802ed08cb7f4046c2151ec4671a076b76166')
consul version
##输出应显示Consul Agent版本和Raft Protocol版本
Vagrant框具有以下IP地址:
192.168.13.35
192.168.13.36
192.168.13.37
保险柜位于端口8200上。
领事位于端口8500上。
http://192.168.13.35:8200(保险柜)
http://192.168.13.36:8200(保险柜)
http://192.168.13.37:8200(保险柜)
相关的供应商文档链接:https://www.vaultproject.io/api/system/init.html
启动保险柜。
在由Vagrant管理的VM之一上,或在安装了curl
的计算机上的某个位置上运行此命令。
curl -s --request PUT -d '{"secret_shares": 3,"secret_threshold": 2}' http://192.168.13.35:8200/v1/sys/init
相关的供应商文档链接:https://www.vaultproject.io/api/system/unseal.html
这将打开192.168.13.35:8200
上的保险柜。您可以对192.168.13.36:8200
和192.168.13.37:8200
使用相同的过程。
abcd1430890...
的值,然后在Vagrant管理的VM上运行它。 curl --request PUT --data '{"key":"abcd12345678..."}' http://192.168.13.35:8200/v1/sys/unseal
curl
命令。但对"key":
使用不同的值。从运行efgh2541901...
端点时收到的密钥中,将v1/sys/init
替换为上一步中使用的密钥。 curl --request PUT --data '{"key":"efgh910111213..."}' http://192.168.13.35:8200/v1/sys/unseal
请参考此存储库中的文件PRODUCTION_INSTALLATION.md。
要通过其API配置保管箱,请参阅
provision_vault
文件夹。
它具有数据和脚本。
data
文件夹的树对应于HashiCorp Vault API
端点,类似于以下内容:
https://www.hashicorp.com/blog/codifying-vault-policies-and-configuration#layout-and-design
您可以使用Codified Vault 策略和配置 然后使用您的初始Root令牌 初始化和启封Vault, 通过其API快速配置保险柜。
每个文件夹中的.json文件
对应于要发送到保管库的有效载荷
通过其API,但也可能有.hcl
,
.sample
和.sh
文件是为了方便起见。