我正在尝试在我的 AIX 节点上创建一组用户,并尝试获取他们的授权密钥,这些密钥已托管在我的服务器上,名称为“myuser_id_dsa.pub”。目前我管理 2 个节点(1. SLES 2. AIX)。我在 fileserver.conf 中的 2 个独立上下文中定义了“源”文件路径;
[AIX] 路径 myfiles/users/ssh/ 允许 *.another.mydomain.com [SLES] 路径 myfiles/users/keys/ssh/ 允许 *.mydomain.com
但是当我运行 puppet 时,它在我的 SLES 节点上成功结束,但在 AIX 上遇到失败;出现以下错误;
/* 无法描述 /AIX/myuser_id_rsa.pub:文件服务器模块‘AIX’未安装*/
在我的代码中,我使用 $filserver 变量将“源”定义为:
案例 $operatingsystem { “AIX”:{ $fileserver = “AIX” } 默认:{ $fileserver = “SLES” } }
文件 { “${home}/${username}/.ssh/authorized_keys”:源 => “puppet:///$fileserver/${username}_is_dsa.pub”, ... ... }
为什么 AIX 无法从我的 fileserver.conf 获取源路径,而 SLES 运行正常?我该怎么做?我必须在不同的服务器上运行类似的配置,所以我只能用 case 语句来处理它。
期待您的帮助
谢谢
答案1
我思考在这种情况下,原因可能是源定义中有一个多余的“/”,根据文档,它必须符合:
puppet://server/path
三个“/”告诉 Puppet 使用 Puppetmaster 或默认服务器,在你的情况下会触发搜索
/AIX/username_is_dsa.pub
然而,puppet 文档让我感到困惑,我不知道客户端或服务器是否正在寻找 /AIX 挂载点...
无论如何,请尝试不使用 3-'/'。
答案2
我不确定它是什么不起作用,但我建议使用文件服务器模块公开的单一路径,并将所有内容都放在其中。
一种可能性是名为AIX
shadowing fileserver mount 的模块。