【发布时间】:2019-02-21 09:48:32
【问题描述】:
在 Ubuntu 18 LTS 上运行的 Puppet 5.4(服务器和代理)上的文件传输有什么不好的体验吗?
例如,我有以下配置:
file { 'transfer test.tgz':
path => '/opt/test.tgz',
ensure => 'file',
mode => '0744',
owner => 'kisano',
group => 'kisano',
source => 'puppet:///files/test.tgz',
force => true,
}
文件传输由于依赖关系而被跳过,没有任何其他调试或失败。
- 删除所有者和组属性->文件被转移
- 在带有 Ubuntu 14 LTS 的 Puppet 代理 5 上运行同样的工作就像一个魅力
- 没有在 Ubuntu 18 上运行的 apparmor 并且看不到任何日志,这可能是由于安全限制而被阻止的
我花了几个小时才意识到到期的所有者和组属性会导致跳过到期的依赖关系,但为什么呢?没有意义。。
感谢您的任何意见!
【问题讨论】:
-
我刚刚发现,如果您使用所有者或组的 uid,则它的工作方式类似于:所有者 => '1000', group => '1000',尽管最新的文件文档说:所有者(属性:此属性表示目标系统上的具体状态。)文件应属于的用户。参数可以是用户名或用户 ID。还在寻找也许我错过了什么
-
如果一切都如你所说,那么这种行为对我来说听起来有问题,但在我说“提交错误报告”之前,我真的很想看到 minimal reproducible example 来演示这个问题。特别是,我想知道是否需要任何其他资源在同一目录中才能发生此故障,以及指定的用户和组是否存在于目标节点上。如果用户和组确实存在,那么哪个名称服务模块解析它们的名称可能会有所不同。
-
它应该很容易复制,运行 Ubuntu 18 LTS 的 2 个 vagrant 实例,其中 1 个是 master,另一个客户端尝试从 puppet 文件服务器进行简单的文件传输并将所有者 + 组设置为非root用户使用用户名。这仅适用于非 root 用户(因为 root 正在工作)。在运行 puppet 5.4 客户端的 Ubuntu 14 上也是如此。
-
我很抱歉,但这根本不是我问的。如果您不熟悉 MCVE 的概念,请点击我之前评论中的链接,但在这种情况下我想看到的主要内容是 (1) 所需的最小 完整 清单或清单集以便您重现问题,以及 (2) 我要求的有关目标系统上用户帐户的具体信息。此外,您收到的特定错误消息(也是 MCVE 的一部分)会有所帮助。如果这确实是一个错误,那么这些都是错误报告中的所有内容。