Puppet

使用 Puppet 創建使用者帳戶?

  • December 12, 2017

我剛剛開始使用 Puppet,我的測試 site.pp 文件中有以下程式碼:

class { 'account': {
 'danny':
    home_dir => '/home/danny',
    groups   => [ 'sudo', 'users' ],
    password => 'password'
 }
}

我正在嘗試使用 Puppet Forge 的帳戶模組。我檢查了模組是否安裝正確。

使用上述程式碼時給出的錯誤是:

錯誤:無法從遠端伺服器檢索目錄:伺服器上的錯誤 400:無法解析環境生產:“{”處的語法錯誤;/etc/puppet/manifests/site.pp:12 節點 testpuppet.domain.io 上的預期“}”警告:未在失敗的目錄上使用記憶體錯誤:無法檢索目錄;跳過跑步

site.pp 的第 12 行是:

class { 'account': {

該文件提供了以下範例:

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

我正在使用的所有其他模組都在一個類中,例如 NTP 模組:

class { 
 '::ntp': 
 servers => [ 
   '0.uk.pool.ntp.org', 
   '1.uk.pool.ntp.org', 
   '2.uk.pool.ntp.org', 
   '3.uk.pool.ntp.org' 
 ], 
}

使用 account 模組的正確語法是什麼?

您可以根據需要命名您的類,但您需要為資源使用正確的名稱。在這種情況下,您要使用的資源是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',
}

該程式碼在一個類中看起來如下:

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',
   }
}

Puppetlabs 有一個非常好的關於資源抽象層的文件,簡稱 RAL。

引用自:https://serverfault.com/questions/524938