使用 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'
  1. 编写剧本如下。刚刚删除了其中的 var 部分。让我们将此剧本命名为 "test_users.yaml"
  - hosts: dev
    become: true
    tasks:
    - name: Remove User
      user:
       name: '{{ username }}'
       state: absent
       remove: yes
  1. 运行 带有以下命令的剧本。

    $ ansible-playbook test_users.yaml -e @vars.yml