Puppet用户ID值和包

Puppet用户ID值和包,puppet,Puppet,我试图在Ubuntu 10.04上使用Puppet执行以下操作: 将我拥有的文件复制到特定目录,该目录将由特定用户/组拥有,但该用户/组由于尚未安装软件包而不存在 安装包时,它不会删除我创建的目录和文件 为了完成第1项,我基本上告诉Puppet在复制文件之前先创建一个用户和组。但问题是,如果我没有为Puppet提供一个特定的uid,它将随机选择一个数字,比如用户的数字,而不是系统包的数字 那么,如何让Puppet选择一个大于1000的uid呢 如果这是不可能的,我如何告诉Puppet在安装包时

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

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

    那么,如何让Puppet选择一个大于1000的uid呢


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

    用户类型有一个参数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] }
    
    这将要做的是,安装您的软件包,然后管理配置,然后重新启动服务,该服务将在重新启动时使用您的新配置