【问题标题】:Using Ansible to remove multiple Unix accounts使用 Ansible 删除多个 Unix 帐户
【发布时间】:2019-09-16 05:42:50
【问题描述】:
我编写了下面的ansible 代码来删除Unix 用户帐户。
- hosts: dev
vars:
username: 'testuser'
become: true
tasks:
- name: Remove User
user:
name: '{{ username }}'
state: absent
remove: yes
这适用于单个用户。但是,如果我想同时删除多个用户,我是否需要为每个要删除的用户创建单独的变量,并创建一个单独的 user 资源来删除该用户。在这种情况下,如果有多个用户,代码将变得太长。有什么建议么 ?
【问题讨论】:
标签:
automation
ansible
user-accounts
rhel6
【解决方案1】:
创建要删除的用户列表user_names。使用loop 迭代列表。
- hosts: dev
become: true
vars:
user_names:
- 'testuser1'
- 'testuser2'
- 'testuser3'
tasks:
- name: Remove Users
user:
name: '{{ item }}'
state: absent
remove: yes
loop: "{{ user_names }}"
【解决方案2】:
您可能会按照以下步骤操作。
1. 创建 vars.yaml 文件并在其中添加用户列表
---
user_name:
- 'testuser1'
- 'testuser2'
- 'testuser3'
- 'testuser4'
- 如下编写剧本。刚刚删除了其中的 var 部分。让我们将此剧本命名为“test_users.yaml”
- hosts: dev
become: true
tasks:
- name: Remove User
user:
name: '{{ username }}'
state: absent
remove: yes
-
使用以下命令运行 Playbook。
$ ansible-playbook test_users.yaml -e @vars.yml