새로운 인형극 사용자, 이름 공간 등에서 머리를 감싸려고합니다.인형극 : 네임 스페이스가 가상 리소스, 클래스 및 정의와 어떻게 작동합니까?
저는 현재 user
이라는 모듈을 만들고 있습니다. 그것은 클래스와 unixuser.pp
과 unixgroup.pp
에 unixgroup
클래스를 가지고 있습니다. 내 질문을 사용자 생성으로 제한 할 것입니다.
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
사용자 :: 기능 클래스에 있어야하지 않겠습니까? 그렇다면 define
행이 define user::login
이나 다른 항목이되어야합니까? 이 모든 것이 완료되면
class user::unixuser {
@something { 'admin':
uid => 1000,
gid => 1000,
}
}
그때 내가 realize User::Something['admin']
같은 뭔가 nodes.pp
에서 사용자를 realize
합니다 : 더 나아가
, unixuser.pp
는 다음 (불완전) 연 비슷한 포함됩니다.
질문 2 : user::unixuser
클래스는 login
기능을 어떻게 인식해야합니까? 이 작업은 class user::unixuser inherits user::functions
일 수 있습니까? 아니면 include user::functions
또는 class {'user::functions': }
이되어야합니까 ...?
질문 3 : 질문 2를 바탕으로 user::unixuser
클래스가 functions.pp
으로 활약했을 때 @something
자리에 오는 것은 무엇입니까?
나는 능력을 최대한 발휘하려고 노력했지만 아직 혼란 스러울 정도라면 사과하겠습니다. :)