gpt4 book ai didi

go - 未检测到 Vault Token Helper?

转载 作者:IT王子 更新时间:2023-10-29 01:12:12 28 4
gpt4 key购买 nike

问题:

我在以下位置的 vault:0.10.2 docker 镜像中有三个文件:

/home/myuser/token_helper:Go 中的 token 助手二进制文件,根据 this documentation 实现 token 助手接口(interface)。

/home/myuser/vault_start:运行 os.exec("vault", "operator", "init")os 的 Go 脚本.exec("保险库", "服务器", "-config=myconfig.hcl")

/home/myuser/.vault:指定 token 助手二进制位置的 token 助手配置文件,我已导出 VAULT_CONFIG_PATH 以指向此路径。该文件显示为 token_helper = "/home/myuser/token_helper"

我遇到的问题是在运行 vault_start 脚本时,出现以下错误:

failed to get token helper: error expanding config path "": exec: "getent": executable file not found in $PATH

到目前为止调试完成:

这个错误似乎不正确。 which getent返回/usr/bin/getent,图像$PATH包含它,证明两者都存在。此外,配置路径不是 "",它被设置为 /home/myuser/.vault 但 Vault 显然检测到它是空的。

我已将错误输出追踪到 this file在 Vault 的 command 目录中: .根据该代码块,它仅在未设置 $HOME 时出错,但我已确认 $HOME 已在 shell 中设置。

此外,我已经指定了 Vault 要求的所有内容,以便根据 this document 实现 token 助手。 ,但它似乎没有检测到运行它的配置文件。这似乎是 Vault 的错误,还是我遗漏了什么?

最佳答案

弄清楚了,这是因为 os.exec("vault", "operator", "init") 行没有继承 VAULT_CONFIG_PATH 变量设置主机,所以它是空的。

下面显示了如何在运行期间给 os.Exec 环境变量:

    vaultInitCmd := exec.Command("vault", "operator", "init")
vaultInitCmd.Env = []string{
fmt.Sprintf(`VAULT_ADDR=%s`, addr),
fmt.Sprintf(`VAULT_CONFIG_PATH=%s`, `/home/myuser/.vault`)}

关于go - 未检测到 Vault Token Helper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50956982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com