在某些服务器上,人偶试图使用错误的用户凭据对用户的文件和目录进行更改,但失败。
我在8台服务器上使用puppet,一些在Ubuntu OS上使用(puppet 6.0.4在18.04上,puppet 5.5.8在16.04上),而一些在Debian 9(puppet 5.5.8)上。在三台Ubuntu服务器(不是全部)上,一台使用puppet 5.5.8,两台使用6.04,puppet做了一些奇怪的事情:
运行puppet agent --test --debug
时,输出看起来像这样(当然是假名):
Notice:
/Stage[main]/User/Ssh_authorized_key[user1@computer1]/ensure:
removed
Info: Computing checksum on file /home/user1/.ssh/authorized_keys
Debug: Creating /home/user1/.ssh as user2
Error: /Stage[main]/User/Ssh_authorized_key[user1@computer1]: Could
not evaluate: Permission denied @ dir_s_mkdir - /home/user1/.ssh
Notice:
/Stage[main]/User/Ssh_authorized_key[user3@computer3]/ensure:
removed
Debug: Creating /home/user1/.ssh as user2
Error: /Stage[main]/User/Ssh_authorized_key[user3@computer3]: Could
not evaluate: Permission denied @ dir_s_mkdir - /home/user1/.ssh
请注意,木偶代理以root身份运行,而user1,user2和user3是普通用户。
Puppet是根据当前文档从官方puppetlabs存储库安装的。
我注意到的事情是,在人偶清单中,用户是由用户标识的,而组仅由其用户名引用(在所有服务器上都是相同的用户名(在所有服务器上,user1为user1)),而uid和gid则不同由puppet管理,并且确实有所不同(user1在一个服务器上具有uid 1001,在另一台服务器上具有uid 1003)。据我所知,如果未在清单中设置,木偶也不应使用uid。
有什么想法吗?
答案 0 :(得分:0)
我的上述评论是正确的,我将其包含在其他存在相同问题的地方:
似乎与puppet doumentation here purge_ssh_keys
相反(如果在“ user1”下设置)不仅
“ ......在用户家中的.ssh / authorized_keys文件中查找密钥 目录。清除所有未作为ssh_authorized_key管理的密钥 资源。”
并删除所有未设置为“ user1”的“ ssh_authorized_key”的密钥。
但是还尝试删除任何其他用户的“ authorized_keys”文件中为“ user1”设置为“ ssh_authorized_key”的密钥。