我对命令的输出有点困惑puppet resource
,而且文档对我没有帮助。
puppet resource user myuser
例如,如果我运行,它会产生:
user { 'myuser':
ensure => 'present',
comment => 'Ubuntu',
gid => '1000',
groups => ['cdrom', 'floppy', 'sudo', 'audio', 'dip', 'video', 'plugdev', 'netdev'],
home => '/home/myuser',
shell => '/bin/bash',
uid => '1000',
}
无论用户帐户是否已 Puppetized,此命令都会给出相同的输出。在这种情况下,节点没有应用影响此用户的 Puppet 清单。我可以删除此帐户,并且不会重新创建它。那么,这个输出告诉我什么?该ensure => present
属性肯定不是告诉我 Puppet 将确保该帐户存在。
这基本上是在告诉我“如果您希望 Puppet 将此用户帐户保持在当前配置状态,那么您需要在清单中保留以下内容”吗?还是我完全误解了这一点?
答案1
Puppet 可用于审计系统状态。审计系统状态的部分功能是能够实际读取某些资源的状态。只有当资源不符合预期时,Puppet 才会更改系统上的内容。它必须能够加载资源的当前状态,以决定是否需要更改。
该puppet resource
命令只是公开了该功能。它不经常直接使用,但有时对调试很有用。如果您愿意,您当然可以使用它来帮助您弄清楚如何编写清单。无论如何,该功能对于 puppet 的主要功能是绝对必要的。puppet 资源只是公开的一小部分管道,因为它偶尔有用。