вторник, 31 октября 2023 г.

ansible + hashicorp vault

 Не всегда ansible vault удобен и достаточен, тогда вариант - hashicorp vault

https://itdraft.ru/2021/03/26/hranim-sekrety-ansible-v-hashicorp-vault/

Для чтения переменных используется lookup('hashi_vault')

https://docs.ansible.com/ansible/latest/collections/community/hashi_vault/index.html

PS переход с прошлой версии hashi_vault lookup

https://docs.ansible.com/ansible/latest/collections/community/hashi_vault/docsite/migration_hashi_vault_lookup.html#ansible-collections-community-hashi-vault-docsite-migration-hashi-vault-lookup

И, варианты чтения для kv2 - там есть ОЧЕНЬ большой нюанс с тем, что в путь нужно вписать /data/ в правильное место. И примеры разных вариантов

    - name: pre_read

      debug:

        msg: "{{ lookup('community.hashi_vault.hashi_vault', 'services/data/clickhouse/aaa', auth_method=vault_auth_method, username=vault_login, password=vault_password, url=vault_url) }}"

    - name: pre_read (test)

      community.hashi_vault.vault_kv2_get:

        url: '{{ vault_url }}'

        engine_mount_point: services

        path: services/clickhouse/1234567890

        auth_method: '{{ vault_auth_method }}'

        username: '{{ vault_login }}'

        password: '{{ vault_password }}'

    - name: write

      community.hashi_vault.vault_kv2_write:

        url: '{{ vault_url }}'

        engine_mount_point: services

        path: '{{ vault_secret }}'


        data:

          clickhouse_superuser_username: admin

          clickhouse_superuser_password: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters', 'digits', 'punctuation']) }}"

        auth_method: '{{ vault_auth_method }}'

        username: '{{ vault_login }}'

        password: '{{ vault_password }}'

      register: result

    - name: Display the result of the write (this can be empty)

      ansible.builtin.debug:

        msg: "{{ result.raw }}"

Видим разницу - в лукапе появляется /data/, а в vault_kv2_get - engine_mount_point

И небольшой бонус - пасс пишется рандомный по шаблону.

Комментариев нет:

Отправить комментарий