提取 hashicorp 保险库机密作为 ansible 剧本中的值

extract hashicorp vault secrets as values in ansible playbook

我正在尝试使用 hashi_vault 模块从 ansible 剧本中的 kv2 hashicorp 保险库中提取特定值

- name: Return specific value from vault
  ansible.builtin.set_fact:
    secret: "{{ lookup('hashi_vault', 'secret=my.secrets/data/dev/heslo:value token=vault-plaintext-root-token url=http://10.47.0.235:8200/')}}"   register: secret

我得到

 {"msg": ""An unhandled exception occurred while running the lookup plugin 'hashi_vault'. Error was a <class 'ansible.errors.AnsibleError'>, original message: The secret my.secrets/data/dev/heslo doesn't seem to exist for hashi_vault lookup"}

查询适用于使用

的路径中的所有机密
secret=my.secrets/data/dev/

路径中存在“heslo”记录

      "ansible_facts": {
            "secret": {
                "data": {
                    "heslo": "heslo",
                    "password": "test",
                    "username": "ahoj"
                },

提前致谢

lookup 的语法适用于 KV1 引擎。我们可以为 KV2 秘密引擎更新它:

- name: Return specific value from vault
  ansible.builtin.set_fact:
    secret: "{{ lookup('hashi_vault', 'secret=my.secrets/data/dev token=vault-plaintext-root-token url=http://10.47.0.235:8200/') }}"

secret 事实将成为一个字典,其中包含指定机密路径 my.secrets/data/dev 中的所有键值对。您可以使用正常语法 secret['heslo'].

访问键 heslo 的值

最后,您可能还想更新到 Vault collection for Ansible,使其具有所有新功能。