gpt4 book ai didi

ansible - 如何从 Ansible 中的指定组中删除用户?

转载 作者:行者123 更新时间:2023-12-05 00:17:59 24 4
gpt4 key购买 nike

假设 user01定义了两个组:groupAgroupB (除了主要组)。

我可以将帐户添加到 groupC (确保 user01 属于 groupC )使用:

- user: name=user01 groups=groupC append=yes

如何删除 user01来自 groupB (确保 user01 不属于 groupB )而不指定帐户应属于的所有组?

最佳答案

据我所知,您不能只使用普通用户模块。

然而,有一些相当疯狂的旋转,你可以在剧本中做到这一点。
我不确定我是否推荐这个;这只是一个有趣的练习。 (我确实对此进行了测试,并且有效。)

有趣的部分是“构建新组列表”任务,它删除了一个列表条目。如果在 python 列表上调用 .remove() 返回新列表,那将是不必要的。

---
- hosts: target
gather_facts: no

vars:
group_to_remove: admins
new_groups_list: []
user_to_check: user1

tasks:
- user: name="{{ user_to_check }}" groups=testers,developers,admins

- name: get the current groups list
command: groups "{{ user_to_check }}"
register: current_groups

- debug: var=current_groups

# parse the output of the groups command into a python list
# of the current groups
- set_fact:
current_group_list: "{{ current_groups.stdout.replace( user_to_check+' : ','').split(' ') }}"

- name: show user_group_list
debug: var=current_group_list

- name: build the new groups list
set_fact:
new_groups_list: "{{ new_groups_list + [ item ] }}"
no_log: False
when: "not '{{ group_to_remove }}' == '{{ item }}'"
with_items: "{{ current_group_list }}"

# turn the list, into a comma-delimited string
- set_fact:
new_groups: "{{ ','.join(new_groups_list) }}"

- name: show new_groups_list
debug: var=new_groups

- name: set new user groups
user: name="{{ user_to_check }}" groups="{{ new_groups }}"

- name: get the new groups list
command: groups "{{ user_to_check }}"
register: new_groups

- debug: var=new_groups

关于ansible - 如何从 Ansible 中的指定组中删除用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38988986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com