kinit:在使用 Ansible 时获取默认 ccache 时,持久密钥环名称中的 UID 无效

kinit:在使用 Ansible 时获取默认 ccache 时,持久密钥环名称中的 UID 无效

先简单描述一下: 目标主机:RHEL7,内核3.10,Python2.7

在目标主机上,有一个 perl 脚本(由特定用户运行),除其他外,它执行以下操作:

kdestroy -A
kinit user@domain -kt path_to_keytab

在主机上,我可以(作为“scriptrunner”用户)执行所有命令,不会出现错误。然而,在使用 ansible 时,我收到“kinit:在获取默认 ccache 时持久密钥环名称中的 UID 无效”错误。

该 playbook 使用“sudo”升级模式从 AnsibleTower 运行,并使用凭证,并且 playbook 本身使用变成:yes 和变成_user:scriptrunner,因此从终端运行命令时用户是相同的。

我尝试过使用命令模块运行命令,只是

command: /bin/kdestory -A and
command /bin/kinit someuser@domain -kt path_to_keytab.

我还尝试将整个脚本运行为:命令:/bin/bash -c -l thescript.sh。结果总是一样的。

为什么这样?有任何想法吗?

答案1

如果运行unset KRB5CCNAME无法解决该问题,您可以创建一个临时 Kerberos 凭证缓存,这在首次使用 kinit 或 klist 之前可能需要:

export KRB5CCNAME=`mktemp`

如果这不起作用,请尝试将“default_ccache_name”的值更改/etc/krb5.conf为本地文件:

[libdefaults]
# ...
# default_ccache_name = KEYRING:persistent:%{uid}
  default_ccache_name = /tmp/krb5cc_%{uid}

相关内容