1

外部ソースとリモート マシンからのユーザーのリストがあります。外部ソースからリストを取得し、それを現在のマシンのユーザー リストと比較して、マシンに存在しないユーザーごとにユーザーを作成したいと考えています。

ansible runner (以下の疑似コード) を使用してこれを試しました。

for user in users: 
  updateUsers(user)

Ansible.runner オブジェクトを呼び出し、次の呼び出しを行います。

ansible.runner.Runner(
  pattern='tools',
  forks=10,
  module_name='user',
  module_args="",
  complex_args=OrderedDict(sorted(dict(name=name, group=group, state=state).items())),
  sudo=True,
).run()

今のところ、グループと状態はグローバルに定義されています。私の問題は、これが for ループをトラバースするときに、指定したように実際にユーザーを作成することです。主な問題は、ユーザーが作成され、それぞれのユーザーのホーム ディレクトリに対するアクセス許可がユーザーにアクセスを許可しないことです。たとえば、「joeshmo」がユーザーだったとします。彼は自分の ~/ ディレクトリに書き込むことができません。

私はこれをどのように行っているかについてのガイダンスを探しています。Playbook を使用して、ファイルを動的に反復処理し、さまざまなユーザー名を取得して、アクセス許可エラーなしでユーザーとしてシステムに追加する方法はありますか? これらのエラーが発生しないように現在のスクリプトを修正する方法はありますか?

ありがとうございました

4

2 に答える 2

0

コードを使用してユーザー リストを取得する必要がある場合は、Python で独自のイテレータを作成lookup_pluginsし、プレイブックの隣のディレクトリに配置できます。次に、これを行うことができます:

    # Use my custom users.py lookup plugin 
    - user: name={{item.name}} group={{item.group}} state=present
      with_users:
于 2014-06-12T07:51:32.290 に答える