Puppet

如何使用 Puppet 創建使用者

  • March 14, 2015

我正在嘗試使用 Puppet 創建一個使用者,但我一直在嘗試的一切都失敗了。

我正在嘗試創建一個名為“capistrano”的使用者,該使用者將被放置在“www-data”組中。我做了以下配置。

class capistranoDeps::user {
   user { "capistrano":
       ensure => present,
       comment => "Capistrano user",
       gid => 33,
       shell => "/bin/bash",
       require => Group["capistrano"],
   }
   group {"capistrano":
       ensure => present,
   }
}


class capistranoDeps::config {
   require capistranoDeps::user
   # Set permissions on webserver directories
   file {"/var/www/":
       ensure => directory,
       owner  => "capistrano",
       group  => "www-data",
       mode   => "775",
   }
...
}
class capistranoDeps {
   require tools
   include capistranoDeps::user,capistranoDeps::config
}

當我嘗試在主機上執行此配置時,出現以下錯誤:

root@app1:/etc/openvpn# puppet agent --server=puppet.domain --no-daemonize --verbose
notice: Starting Puppet client version 2.6.2
info: Caching catalog for app1.domain
err: Could not run Puppet configuration client: Could not find user capistrano

尚未在主機上創建使用者,因為這是 Puppet 的工作。我發現的所有範例似乎都與此相同,但由於這不起作用,我肯定遺漏了一些東西。

“require”並沒有做你認為它做的事情——它實際上創建了一個依賴項。

您想在類 capistranoDeps::config 中使用“include”

include capistranoDeps::user

有關更多資訊,另請參閱此問題:

puppet 中的 include 和 require 有什麼區別

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