新木偶用户,试图绕着名字空间等等。
我目前正在开发一个名为user
的模块。它在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
的{{1}}用户realize User::Something['admin']
。{/ p>
问题2:如何让班级user::unixuser
了解login
功能?这是通过class user::unixuser inherits user::functions
完成还是应该include user::functions
或class {'user::functions': }
或......?
问题3:根据问题2,当@something
班级与user::unixuser
很好地合作时,functions.pp
的位置是什么?
我试图尽我最大的能力来提出这个问题,但如果它仍然有点乱,我道歉。 :)
答案 0 :(得分:1)
如果将用户分配到该组是自动需要的组,则首先关闭,因此您不需要以下内容:
# Create groups before creating users
Class['user::unixgroup'] -> ['user::unixuser']
functions.pp看起来很好试试init.pp中的以下内容:
class user {
include user::functions
include user::unixgroup
include user::unixuser
}
和unixuser.pp:
class user::unixuser {
login { 'admin':
uid => 1000,
gid => 1000,
}
...
}