新的 puppet 用户,试图围绕名称空间等等。
我目前正在开发一个名为user
. 它在 and 中有一个类unixuser
和一个unixgroup
类。我将把我的问题限制在创建用户上。unixuser.pp
unixgroup.pp
init.pp
目前仅包含:
class user {
class {'user::unixuser': }
class {'user::unixgroup': }
# Create groups before creating users
Class['user::unixgroup'] -> ['user::unixuser']
}
而我只想定义虚拟资源unixuser.pp
。unixgroup.pp
这样做的功能应该是functions.pp
为了可读性。
问题 1:functions.pp
应该只包含定义还是应该将定义放在一个类中?所以在代码中,应该functions.pp
包含这个:
class user::functions {
define login ($uid, $gid) {
user { $title:
ensure => present,
uid => $uid,
gid => $gid,
}
}
}
或者define login
不应该在 user::functions 类中?如果是这样,该define
行应该是define user::login
还是其他?
更进一步,unixuser.pp
将包含类似于以下(不完整)节的内容:
class user::unixuser {
@something { 'admin':
uid => 1000,
gid => 1000,
}
}
如果所有这些都完成了,那么我将realize
使用nodes.pp
类似realize User::Something['admin']
.
问题 2:应该如何让类user::unixuser
知道该login
功能?这是通过拥有class user::unixuser inherits user::functions
或应该拥有include user::functions
或class {'user::functions': }
或......来完成的吗?
问题 3:基于问题 2,@something
当user::unixuser
班级与functions.pp
.
我试图尽我所能提出这个问题,但如果它仍然有点混乱,我道歉。:)