0

我正在尝试在 Ubuntu 10.04 上使用 Puppet 执行以下操作:

  1. 将我必须的文件复制到特定目录,该目录将由特定用户/组拥有,由于尚未安装软件包,该用户/组尚不存在
  2. 将软件包安装在不会删除我创建的目录和文件的位置

为了完成第 1 项,我基本上告诉 Puppet 在复制文件之前先创建一个用户和组。但问题是,如果我没有为 Puppet 提供特定的 uid,它会随机选择一个数字,比如用户的数字,而不是系统包的数字。

那么,我如何告诉 Puppet 选择大于 1000 的 uid 呢?

如果这不可能,我如何告诉 Puppet 在安装包时不要启动它。所以我只会让 Puppet 安装包,但不启动服务,然后复制我的文件,然后我将启动服务。

4

1 回答 1

1

用户类型有一个参数system =>,默认为false,但可以设置为true。这将生成 UID 低于 500 的用户。这似乎是您想要的。

在我看来,最终你要做的就是通过 puppet 管理配置目录和配置。

这使您能够执行以下操作:

package { foo: ensure => present }

file {
  fooconfdir: 
    path => '/path/to/fooconfdir',
    ensure => directory,
    user => whatev,
    group => alsowhatev,
    require => Package[foo],
    mode => morewhatev;
  fooconf:
    path => '/path/to/fooconfdir/fooconf',
    ensure => present,
    user => whatev,
    content => template('whatev');
}

service { foo: ensure => running, enable => true, subscribe => File[fooconf] }

这将做的是安装您的软件包然后管理配置,然后重新启动服务,该服务将在重新启动时使用您的新配置。

于 2012-03-21T01:05:04.370 回答