Ansibleでたとえば user1 というアカウントをsudoersに以下の通り登録したいとします。
user1 ALL=(ALL) NOPASSWD: ALL
ansibleのplaybookで、
yaml
1 tasks: 2 - name: add users to sudoers 3 shell: echo "user1 ALL=(ALL) NOPASSWD{{:}} ALL" > /tmp/user1 \ 4 && chmod 440 /tmp/user1 \ 5 && chown root:root /tmp/user1 \ 6 && visudo -q -c -f /tmp/user1 \ 7 && mv /tmp/user1 /etc/sudoers.d/user1
※なぜか、NOPASSWDの後ろのコロン(:)でエラーがでますので{{}}で回避
※ユーザアカウントを with_itemsで複数にもできます。この際は上記{{}}問題は回避
yaml
1 tasks: 2 - name: add users to sudoers 3 shell: echo "{{ item.user }} {{ item.role }}" > /tmp/{{ item.user }} \ 4 && chmod 440 /tmp/{{ item.user }} \ 5 && chown root:root /tmp/{{ item.user }} \ 6 && visudo -q -c -f /tmp/{{ item.user }} \ 7 && mv /tmp/{{ item.user }} /etc/sudoers.d/{{ item.user }} 8 with_items: 9 - { user: "user1", role: "ALL=(ALL) NOPASSWD: ALL" }
とするのか、
yaml
1 tasks: 2 - name: add users to sudoers 3 lineinfile: dest=/etc/sudoers.d/{{ item.user }} 4 owner=root group=root mode=0440 5 state=present 6 create=yes 7 line="{{ item.user }} {{ item.role }}" 8 validate='visudo -cf %s' 9 with_items: 10 - { user: "user1", role: "ALL=(ALL) NOPASSWD: ALL" }
※この場合は NOPASSWDの後ろのコロン(:)はエラーが出ません。
とするのか、結構バラつきがありどちらが良いか決めあぐねております。
どちらも、冪等性は問題なく、妥当性チェックもできているので、
どちらでも良いといえばよいのですが、みなさまは如何されておられますか?
※ sudoers登録の良いモジュールがあればよいのですが。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/28 23:12
2015/08/28 23:55
2015/08/30 00:58