3

名前空間などに頭を包み込もうとしている新しいパペットユーザー。

私は現在、というモジュールに取り組んでいます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.ppunixgroup.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::unixuserfunctions.pp

できる限り質問を作成しようとしましたが、それでも少し混沌としている場合は、お詫び申し上げます。:)

4

1 に答える 1

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,
  }
  ...
}
于 2013-01-18T05:00:26.040 に答える