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