通过 ansible 管理本地用户列表

通过 ansible 管理本地用户列表

我有使用本地帐户的 Linux 服务器,我想找到一种使用 ansible 来维护它们的方法。

我的目标是在所有服务器上保留相同的用户列表,并能够在需要时在所有服务器上高效地删除或添加新用户。我还想不时地推送剧本,以纠正在没有 ansible 的情况下在单个服务器上修改的任何内容。

以下是我目前得到的信息:

vars:
 users:
      - login: test1
        group: group1
      - login: test2
        group: group1

tasks:

- name: Maintaining list of users
  user: name={{ item.login }} group={{ item.group }} state=present
  with_items:
      - "{{ users }}"

这个剧本可以工作,但我需要添加一个步骤来检查用户是否已经存在,如果不存在,则创建用户并分配一个临时密码。

有没有办法告诉 ansible 创建一个像上面这个剧本中的用户,而且还告诉 ansible 如果用户不存在则为该用户提供密码?

谢谢你,蒂埃里。

答案1

假设您使用的是 Ansible 1.3 或更新版本,您可以为用户模块指定密码并添加参数update_password=on_create以使其仅在用户是新创建时设置密码。如果您需要密码在运行之间不一致,您可以在该任务前面放置另一个任务来生成随机密码,或者您可以添加一个将为每个用户生成随机密码的任务(尽管我不能 100% 确定这是否可行)。

相关内容