13 апр. 2017 г.

Ansible -vvv reveals sensitive data

В процессе дебага плейбуков заметил очень неприятную особенность: при увеличении уровня verbose в лог (на экран и в файл) попадают те данные в открытом виде, что скрыты в vault-файле. В том случае, когда это критично (компрометация в логе закрытых ключей, паролей, и так далее), следует добавлять к заданиям параметр no_log. При его включении весь вывод команды заменяется на подавляется вне зависимости от количества -v.
- name: create user accounts
  user:
    state: present
    name: "{{ item.username }}"
    shell: "{{ item.shell | default(default_shell) }}"
    groups: "{{ item.groups | default(omit) }}"
    comment: "{{ item.name }} ({{ item.comment | default(omit) }})"
    password: "{{ item.password | default(dis_default_pass) }}"
    append: yes
    update_password: on_create
  with_items: "{{regular_users}} + {{vip_users}}"
  no_log: yes
Выглядит это так:
TASK [user-mgmt : create user accounts] ****************************************
ok: [01.example.com] => (item=(censored due to no_log)) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result"} 
По этому поводу есть тикет в github, в котором также рекомендуется использовать no_log.