Назад | Перейти на главную страницу

Обнаружение анабильных фактов возвращает некоторые значения как пустые

У меня очень простой сценарий на /etc/ansible/facts.d который используется для обнаружения локальных сертификатов SSL на хосте. Это код:

#!/bin/sh

echo "{
  \"testkey\": \"testvalue\",
  \"crt\": \"$(/usr/bin/base64 -w 0 /etc/kubernetes/pki/apiserver.crt)\",
  \"key\": \"$(/usr/bin/base64 -w 0 /etc/kubernetes/pki/apiserver.key)\"
}"

Когда я сам запускаю $> /etc/ansible/facts.d/apiserver_ssl_facts.fact он выводит все значения, как ожидалось. Но когда Ansible запускает только testkey имеет значение, а остальные - пустая строка "":

ansible@bastion-1:~/ansible$ ansible -m setup <host> -a "filter=ansible_local"
<host> | SUCCESS => {
    "ansible_facts": {
        "ansible_local": {
            "apiserver_ssl_facts": {
                "crt": "", 
                "key": "", 
                "testkey": "testvalue"
            }
        }
    }, 
    "changed": false
}

Запуск Ansible в очень подробном виде с -vvvv ошибок не показывает.

Ответ из комментариев: есть проблема с разрешением, поэтому доступный пользователь не может получить доступ к файлам сертификатов.