从运行的系统上生成 Puppet 配置清单

除了使用 cft 从系统管理员的控制台会话生成 Puppet 配置清单以外, 还可以使用 puppet resource 从系统中已存在的配置生成 Puppet 配置清单。 例如,你可以使用 puppet resource 生成系统中所有用户的配置清单。 这对于生成工作系统的快照并将这些配置快速转换到 Puppet 是相当有用的。

操作步骤

  1. 要生成指定用户的配置清单,请运行:

    # puppet resource user john
    user { 'john':
        password_min_age => '0',
        password_max_age => '99999',
        uid      => '1002',
        password => '!',
        gid      => '1001',
        groups   => ['git'],
        ensure   => 'present',
        comment  => 'John Arundel',
        home     => '/home/john',
        shell    => '/bin/bash'
    }
    
  2. 要生成指定服务的配置清单,请运行:

    # puppet resource service ntp
    service { 'ntp':
        ensure => 'running',
        enable => 'true'
    }
    
  3. 要生成指定软件包的配置清单,请运行:

    # puppet resource package exim4
    package { 'exim4':
        ensure => '4.71-3ubuntu1'
    }
    

更多用法

你可以使用 puppet resource 检查 Puppet 每种可用的资源类型。 在上面的例子中,我们针对一个资源类型的具体实例生成了配置清单, 然而你也可以使用 puppet resource 导出一种资源类型的所有实例:

# puppet resource user
user { 'Debian-exim':
    ensure           => 'present',
    uid              => '117',
    gid              => '124',
    home             => '/var/spool/exim4',
    password         => '!',
    password_min_age => '0',
    password_max_age => '99999',
    shell            => '/bin/false'
}

user { 'avahi':
    ensure           => 'present',
    uid              => '104',
    gid              => '111',
    home             => '/var/run/avahi-daemon',
    password         => '*',
    password_min_age => '0',
    comment          => 'Avahi mDNS daemon,,,',
    password_max_age => '99999',
    shell            => '/bin/false'
}
...

这会产生许多输出!