新的 puppet 用户,试图围绕 namespace 等等。
我目前正在开发一个名为 user
的模块。 .它有一个 unixuser
类和 unixgroup
类(class) 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
中。为了可读性。问题一:应该
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']
.问题二:上课应该怎么办
user::unixuser
请注意 login
功能?这是通过拥有 class user::unixuser inherits user::functions
来完成的吗?或者我应该有include user::functions
或 class {'user::functions': }
或者...?问题 3:根据问题 2,
@something
的位置是什么?当user::unixuser
类与 functions.pp
配合得很好?我试图尽我所能提出这个问题,但如果它仍然有点困惑,我道歉。 :)
最佳答案
首先,如果用户被分配到一个组,该组是自动需要的,所以你不应该需要以下内容:
# 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,
}
...
}
关于class - Puppet:命名空间如何与虚拟资源、类和定义一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583992/