2017-07-25 2 views
0

サーバの設定にAnsibleを使用し始めました。私はgitリポジトリにAnipal関連のファイルを保存しており、完全に動作します。どのようにAnabilitiesの変更を正しくログに記録するのですか?

私の質問は、One-offタスクをAnabledで実行する方法は何でしょうか。たとえば、古いユーザーアカウントを削除する場合、アカウントを削除する1つのタスクを実行するか、site.ymluser=john state=absent lineを含めますか?

これについてのベストプラクティスはありますか?私がsite.ymlにそれを含めると、それは増加し続けます。私が一度限りのタスクとして実行すると、チームの他のメンバーはこのタスクが実行されたことを認識しません。

答えて

1

vars/users.ymlには、利用可能にしたいユーザのリストと、もはや必要とされないユーザのリストがあります。これで、ユーザーの状態をバージョン管理したソースコードが作成されました。

次はあなたが(あなたのですか?)joffreyが長いなくなっていることを知っていたら、次に、あなたのプレーは

- name: add active users 
    user: 
    name: "{{ item }}" 
    state: present 
    with_items: "{{users['active']}}" 

- name remove legacy users 
    user: 
    name: "{{ item }}" 
    state: absent 
    with_items: "{{users['legacy']}}" 

...のようになります。そして、あなたから彼を削除することができ

--- 
users: 
    active: 
    - jon 
    - sansa 
    - arya 
    legacy: 
    - ned 
    - joffrey 

テストされていません彼があなたの組織を離れると、彼はそこに季節がないことを保証していないので、レガシーリスト。

彼はまだバージョンコントロールにいるので、いつ追加したり削除したりしてもいつでも参照できます。

0

私は、不要なユーザーを削除するために、あなたの脚本にタスクのカップルを追加したい:

- shell: "getent passwd | awk -F: '$3 > 900 {print $1}' | grep -v nobody" 
    register: passwd_res 
    changed_when: false 

- user: 
    name: "{{ item }}" 
    state: absent 
    with_items: "{{ passwd_res.stdout_lines | difference(required_users) }}" 

required_usersが存在するユーザのリストであることを考えると、私たちは、UIDとターゲット・システム上に存在するすべてのユーザーを取得します> 900の場合は、nobodyを除き、存在しているが必須ではないユーザーが削除されていることを確認してください。

関連する問題