使用 Puppet 创建用户帐户?

dan*_*mcc 3 users puppet puppetmaster

我刚刚开始使用 Puppet,我的测试 site.pp 文件中有以下代码:

class { 'account': {
  'danny':
     home_dir => '/home/danny',
     groups   => [ 'sudo', 'users' ],
     password => 'password'
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Puppet Forge的帐户模块。我已经检查过模块是否安装正确。

使用上述代码时给出的错误是:

错误:无法从远程服务器检索目录:服务器上的错误 400:无法解析环境生产:“{”处的语法错误;在节点 testpuppet.domain.io 上的 /etc/puppet/manifests/site.pp:12 处应为“}” 警告:未在失败的目录上使用缓存错误:无法检索目录;跳过运行

site.pp 的第 12 行是:

class { 'account': {
Run Code Online (Sandbox Code Playgroud)

文档给出了以下示例:

account { 
  'sysadmin':
    home_dir => '/opt/sysadmin',
    groups   => [ 'sudo', 'users' ],
    ssh_key  => 'AAAAB3NzaC1yc2EAAAABIwAAAQEArfQmMkvtWRnwas3DIti9qAuSFQXKcE0kdp5f42PP8l2kTytJPPWp5T/q8PXDQ2d2X5KplMCMDiUQkchqhmDp840jsqBQ9iZPejAjv3w2kITgScFNymAcErtzX52iw4lnUyjZzomCW8G3YthQMaRm2NkI4wcVcjzq+SKyTfzrBoH21RgZlfcx+/50AFRrarpYqel9W5DuLmmShHxD8clPS532Z/1X+1jCW2KikUhdo98lxYTIgFno05lwFOS9Ry89UyBarn1Ecp1zXpIBE7dMQif3UyLUTU9zCVIoZiJj4iO5lemSSV0v8GL97qclBUVJpaCpc4ebR7bhi0nQ28RcxQ==',
    comment   => 'SysAdmin user',
}
Run Code Online (Sandbox Code Playgroud)

我使用的所有其他模块都在一个类中,例如 NTP 模块:

class { 
  '::ntp': 
  servers => [ 
    '0.uk.pool.ntp.org', 
    '1.uk.pool.ntp.org', 
    '2.uk.pool.ntp.org', 
    '3.uk.pool.ntp.org' 
  ], 
}
Run Code Online (Sandbox Code Playgroud)

使用 account 模块的正确语法是什么?

daw*_*wud 10

您可以随意命名您的类,但您需要为资源使用正确的名称。在这种情况下,您要使用的资源是user

有一种非常简单的方法可以了解资源的外观:

$ puppet resource user dawud
user { 'dawud':
  ensure  => 'present',
  comment => 'David Sastre Medina,,,',
  gid     => '1001',
  groups  => ['sudo', 'audio', 'src', 'video', 'libvirt'],
  home    => '/home/dawud',
  shell   => '/bin/bash',
  uid     => '1001',
}
Run Code Online (Sandbox Code Playgroud)

该代码,在一个类中看起来:

class foo {
   user { 'dawud':
      ensure  => 'present',
      comment => 'David Sastre Medina,,,',
      gid     => '1001',
      groups  => ['sudo', 'audio', 'src', 'video', 'libvirt'],
      home    => '/home/dawud',
      shell   => '/bin/bash',
      uid     => '1001',
    }
}
Run Code Online (Sandbox Code Playgroud)

Puppetlabs 在资源抽象层(简称 RAL)上有很好的文档。