Puppet用户ID值和包

时间:2012-03-03 22:52:17

标签: puppet

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

  1. 将我拥有的文件复制到特定目录,该目录将由尚未安装软件包但尚未存在的特定用户/组拥有
  2. 安装包,不会删除我创建的目录和文件
  3. 为了完成第1项,我基本上告诉Puppet在复制文件之前先创建一个用户和组。但问题是,如果我没有为Puppet提供特定的uid,它将随机选择一个数字,如用户而不是系统包的数字。

    那么,我怎么告诉Puppet选择超过1000的uid?

    如果无法做到这一点,我怎么告诉Puppet在安装它时不要启动它。所以我只是让Puppet安装包,但不启动服务,然后复制我的文件,然后我将启动服务。

1 个答案:

答案 0 :(得分:1)

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

最终,我认为你想做的是通过木偶管理配置目录和配置。

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

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] }

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