我有使用本地帐户的 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% 确定这是否可行)。