私は、さまざまなサーバーにユーザーを追加するためにAnsibleを使用しています。一部のサーバーでは、異なるUNIXグループが定義されています。私は、指定したグループの存在を確認する方法を見つけたいと思います。グループが存在する場合は、それをユーザーのセカンダリグループリストに追加します(グループが存在しない場合は無視します)。Ansible:グループが存在する場合にのみユーザーにUnixグループを追加してください。
私はこれをAnsibleとどのようにすることができますか?
ここは私の出発点です。
コマンド
ansible-playbook -i 'localhost,' -c local ansible_user.yml
ansible_user.yml更新
---
- hosts: all
user: root
become: yes
vars:
password: "!"
user: testa
tasks:
- name: add user
user: name="{{user}}"
state=present
password="{{password}}"
shell=/bin/bash
append=yes
comment="test User"
: @udondanによって提案されたソリューションに基づいて、私は次の追加で、この作業を取得することができましたタスク。
- name: Check if user exists
shell: /usr/bin/getent group | awk -F":" '{print $1}'
register: etc_groups
- name: Add secondary Groups to user
user: name="{{user}}" groups="{{item}}" append=yes
when: '"{{item}}" in etc_groups.stdout_lines'
with_items:
- sudo
- wheel
を追加する場合、登録結果は、後で使用することができますRed Hatと友人は、/ etc/groups内のすべてのグループを印刷しません。現在のユーザーが属するグループのみを表示します。 –
Ubuntu 16.04では、 "groups ..."コマンドは現在のユーザーが所属するグループのみを表示します – mykola
"groups"はこのグループに含まれているため、この例では別の変数を登録する必要があります。可能な予約変数: - https://github.com/lorin/ansible-quickref – gilesw