Ansible 事实发现返回一些空值

Ansible 事实发现返回一些空值

我有一个非常简单的脚本,/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不会显示任何错误。

答案1

评论中的答案:存在权限问题,因此 ansible 用户无法访问证书文件。

相关内容