使用 Ansible 删除多个 Unix 帐户
Using Ansible to remove multiple Unix accounts
我已经编写了下面的 ansible
代码来删除 Unix
用户帐户。
- hosts: dev
vars:
username: 'testuser'
become: true
tasks:
- name: Remove User
user:
name: '{{ username }}'
state: absent
remove: yes
这对单个用户来说效果很好。但是,如果我想同时删除多个用户,我是否需要为每个要删除的用户创建单独的变量,并创建一个单独的 user
资源来删除该用户。在这种情况下,如果有多个用户,代码将变得太长。有什么建议么 ?
创建要删除的用户列表user_names
。然后通过 loop.
迭代列表
- hosts: dev
become: true
vars:
user_names:
- testuser1
- testuser2
- testuser3
tasks:
- name: Remove Users
user:
name: "{{ item }}"
state: absent
remove: true
loop: "{{ user_names }}"
您可以按照以下步骤操作。
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
运行 带有以下命令的剧本。
$ ansible-playbook test_users.yaml -e @vars.yml
我已经编写了下面的 ansible
代码来删除 Unix
用户帐户。
- hosts: dev
vars:
username: 'testuser'
become: true
tasks:
- name: Remove User
user:
name: '{{ username }}'
state: absent
remove: yes
这对单个用户来说效果很好。但是,如果我想同时删除多个用户,我是否需要为每个要删除的用户创建单独的变量,并创建一个单独的 user
资源来删除该用户。在这种情况下,如果有多个用户,代码将变得太长。有什么建议么 ?
创建要删除的用户列表user_names
。然后通过 loop.
- hosts: dev
become: true
vars:
user_names:
- testuser1
- testuser2
- testuser3
tasks:
- name: Remove Users
user:
name: "{{ item }}"
state: absent
remove: true
loop: "{{ user_names }}"
您可以按照以下步骤操作。 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
运行 带有以下命令的剧本。
$ ansible-playbook test_users.yaml -e @vars.yml