如何实施Hasicorp vault 3节点集群?

时间:2018-04-02 05:06:00

标签: hashicorp-vault

我们已经将hasicorp开源库作为带有consul后端的单个节点实现。 我们需要有关在单数据中心以及多数据中心实施HA的Vault 3节点集群的帮助。 你能帮我解决这个问题。

2 个答案:

答案 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初始化群集。

现在回答很长。

先决条件

特定于操作系统的先决条件

  • MacOS:OSX 10.13或更高版本
  • Windows:Windows必须具有Powershell 3.0或更高版本。如果您使用的是Windows 7,我建议使用Windows Management Framework 4.0,因为它安装起来更容易

流浪者

设置Vagrant,因为这里将处理要使用的基础基础结构的所有网络和资源设置。

特别是对于Vagrant,安装Vagrant和Virtualbox后,入门指南大约需要30分钟:https://www.vagrantup.com/intro/getting-started/index.html

安装工具

  1. 确保已安装Git
  2. 安装Vagrant(NOTE: WINDOWS 7 AND WINDOWS 8 REQUIRE POWERSHELL >= 3)的最新版本
  3. 安装VMWare的最新版本或Virtualbox

下载此演示的代码

相关的供应商文档链接: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 sshvagrant 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.35:8500(领事)

http://192.168.13.36:8200(保险柜)

http://192.168.13.36:8500(领事)

http://192.168.13.37:8200(保险柜)

http://192.168.13.37:8500(领事)

启动保险柜数据

相关的供应商文档链接: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:8200192.168.13.37:8200使用相同的过程。

  1. 使用解封密钥替换密钥abcd1430890...的值,然后在Vagrant管理的VM上运行它。
    curl --request PUT --data '{"key":"abcd12345678..."}' http://192.168.13.35:8200/v1/sys/unseal
  1. 再次运行该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文件是为了方便起见。