8
我正在使用Ansible將用戶添加到各種服務器。一些服務器定義了不同的UNIX組。我希望找到Ansible檢查我指定的組是否存在的方法,如果該組存在,請將其添加到用戶的輔助組列表中(但如果該組不存在,請將其忽略)。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
的羣體上> = 7.0命令紅帽和朋友不打印/ etc/groups中的所有組。它僅打印當前用戶所在的組。 –
在Ubuntu 16.04上,「groups ...」命令僅打印當前用戶所屬的組 – mykola
您需要在此示例中註冊一個不同的變量,因爲「groups」是一個Ansible保留變量: - https://github.com/lorin/ansible-quickref – gilesw