Не всегда 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
И, варианты чтения для 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
И небольшой бонус - пасс пишется рандомный по шаблону.
Комментариев нет:
Отправить комментарий