将保管库作为服务运行的步骤(当服务器启动时,保管库即启动),并且根令牌也需要永久吗?

时间:2018-08-20 06:11:23

标签: hashicorp-vault

我关注了很多页面,要求写服务文件。但是每次服务器初始化时,它都会触发一个新的根令牌。保险柜需要安装在生产环境中,并且根令牌应始终与我们的应用程序使用的令牌相同。

2 个答案:

答案 0 :(得分:1)

听起来您正在-dev switch ...下以Dev模式运行Vault。

您需要使用vault operator init进行永久初始化。

此外,您的应用程序不应使用根令牌-使用App Roles对您的应用程序进行身份验证。

答案 1 :(得分:0)

首先,准备好领事后端。

将此文件添加到/etc/vault.d/vault.hcl

storage "consul" {
  address = "127.0.0.1:8500"
  path    = "vault/"
}

listener "tcp" {
 address     = "127.0.0.1:8200"
 tls_disable = 1
}

storage "consul" {“节”告诉Vault使用Consul作为后端。

https://learn.hashicorp.com/vault/getting-started/deploy#configuring-vault

要安装Consul,只需按照HashiCorp的指示进行操作:

  

要安装Consul,请找到适合您系统的软件包,然后   下载它。领事打包为zip存档。

     

下载Consul之后,解压缩该软件包。领事作为一个单一的运行   二进制文件称为领事。包中的任何其他文件都可以安全保存   删除,领事仍将起作用。

     

最后一步是确保领事二进制文件可用于   路径。有关在Linux上设置PATH的说明,请参见此页面   和Mac。此页面包含在以下位置设置PATH的说明   Windows。

     

启动本地Consul实例仅需几分钟。只需按照Consul>入门指南进行操作,直到安装Consul并使用以下命令启动它:

     

$领事代理-dev

领事后,您可以安装公开可用的SystemD单元文件。

如果您有Consul后端,则当我希望Vault“在服务器启动时启动”时,我使用了以下内容:

#!/usr/bin/env bash

sudo bash -c "cat >/etc/systemd/system/vault.service" << 'EOF'
[Unit]
Description=SystemD Vault Service
[Service]
Restart=on-failure
PermissionsStartOnly=true
ExecStartPre=/sbin/setcap 'cap_ipc_lock=+ep' /usr/local/bin/vault
ExecStart=/usr/local/bin/vault server -config /etc/vault.d
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGTERM
User=vault
Group=vault
[Install]
WantedBy=multi-user.target
EOF

sudo chmod 0664 /etc/systemd/system/vault*

https://github.com/v6/super-duper-vault-train/blob/develop/vaultsystemd.sh#L4-L20

不过,为了进一步阅读,我建议您自己进行研究以找到适合您的用例的东西:

https://duckduckgo.com/?q=vault+systemd+scripts

https://groups.google.com/forum/#!topic/vault-tool/E6Ny7SKx5x0

最后,如果您要尝试以非-dev模式运行Vault和Consul的群集,我不太建议您尝试一下我一直在使用的Vagrantfile:

https://github.com/v6/super-duper-vault-train#vagrant