web-dev-qa-db-ja.com

Puppet:グループ内のすべてのユーザーを列挙する

Puppet内のグループ内のすべてのユーザーの配列を事実または何かとして列挙して、このようなことを実行できるようにする方法はありますか?

$users = enumusers('wheel')
each($users) |$user| {
    dostuff{"stuff:$user":
        user=>$user
    }
}

ユーザーはLDAPを介して管理されますが、PuppetにLDAPユーザーを取得させ、すべてのユーザーに一貫性を持たせることができます。

3
Kyo

この種の厄介ですが、すべてのユーザーを列挙し、各ユーザーに対してuser_USERNAMEファクトを作成する外部ファクトジェネレーターを使用することもできます。次に、これをPuppetマニフェストの条件ステートメントで使用できます。

if $user_lars {
  file { '/home/lars':
    ensure => directory,
    owner => lars,
    group => lars,
    mode => 0700,
  }
}

書く 外部の事実 は簡単です。使い慣れた言語なら何でも使用でき、次のように簡単に使用できます。

#!/bin/sh
getent passwd | cut -f1 -d:

...環境によって異なります。

これを見ると罪悪感を覚えますが、今思いつくのは最高です。

2
larsks