【问题标题】:How to run Vault from my app instead of CLI?如何从我的应用程序而不是 CLI 运行 Vault?
【发布时间】:2020-12-29 19:14:57
【问题描述】:

我正在尝试在我的 NodeJS 应用程序中启动 Vault 服务。 使用 CLI 使用 Vault 是可以的, 但我需要它在应用程序启动时自动工作。 我试试这个

    async started(ctx) {

        var options = {
            apiVersion: 'v1', // default
            endpoint: 'http://127.0.0.1:8500', // default

          };
           
            // get new instance of the client
            var vault = require("node-vault")(options);

            // init vault server
            vault.init({ secret_shares: 1, secret_threshold: 1 })
            .then( (result) => {
            var keys = result.keys;
            // set token for all following requests
            vault.token = result.root_token;
            // unseal vault server
            return vault.unseal({ secret_shares: 1, key: keys[0] })
            })
            .catch(console.error);

            // see if it is ok
            vault.status()
                .then (res => {
                  console.log('STATuuuuuuuuuuusS', res);
                  })
                  .catch((err) => {
                    console.log("errrrrrreur status");
                    console.error(err.message);
            });

但我遇到了这个错误:

RequestError: Error: connect ECONNREFUSED 127.0.0.1:8500
[...]
  cause: Error: connect ECONNREFUSED 127.0.0.1:8500
      at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
    errno: 'ECONNREFUSED',
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 8500
  },

如果我之前运行过它,它可以工作 vault server -config=config.hcl

即使我杀死它,它似乎也可以在不重新加载的情况下工作。我肯定在这里遗漏了一些东西:) 我想知道 node-vault 是否应该启动 Vault 服务器?如果没有,我想知道如何从应用程序而不是 CLI 启动 Vault 服务器?

如果你知道做这件事的好方法,或者有线索,我会全力以赴。

尼古拉斯

【问题讨论】:

    标签: node.js hashicorp-vault moleculer


    【解决方案1】:

    不,通常代码不应启动服务器。 是的,您的代码工作正常。如果你还没有启动服务器,这个错误意味着无法连接到指定的IP地址和端口,它们被关闭了。 Vault服务器与它无关,相同的行为将是数据库服务器或任何其他。

    【讨论】:

    • 好的,非常感谢您的回答!所以我认为登录步骤是一样的,不是从代码中完成的吗?但我想知道,当应用程序部署后,Vault 服务器将如何启动以及我们如何登录?
    • 我不知道您要解决什么问题。我想你会觉得看看这个包很有帮助npmjs.com/package/moleculer-vault
    • 我正在尝试使用 Vault 对微服务应用程序中的用户进行身份验证。我已经尝试过分子库,但从未让它工作。但是,如果我手动启动 Vault 并手动登录,也许我会的。但我认为moller-vault 的兴趣是为我启动Vault 服务器?
    • 事实上我卡在令牌登录屏幕上。当然我可以输入一个令牌,但我需要从应用程序中输入。我发现唯一有效的机制是 CLI 命令: vault login... 任何 node-vault 等价物!?简单节点?甚至卷曲等价物?
    • 很遗憾,我没有足够的保险柜经验来提示。
    猜你喜欢
    • 2017-10-06
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2018-01-03
    • 2020-03-10
    • 2017-06-05
    • 1970-01-01
    • 2021-03-02
    相关资源
    最近更新 更多