gpt4 book ai didi

ansible - 如何在 Ansible 中执行用户创建任务

转载 作者:行者123 更新时间:2023-12-02 03:15:37 25 4
gpt4 key购买 nike

我想通过 Ansible 自动创建/维护用户。我希望每个新用户在第一次登录时都必须选择一个新密码。

假设我在 vars 文件中有一个用户列表及其名称、密码、组等。然后我有一个角色可以执行此操作:

 ---
- name: Add/maintain users
user:
name: "{{ item.name }}"
password: "{{ item.password }}"
update_password: on_create
createhome: true
generate_ssh_key: true
groups: "{{ item.groups}}"
shell: /bin/bash
state: present
register: users_added
with_items: "{{ users }}"

- name: Force created users to change password
shell: "chage -d 0 {{ item.name }}"
when: "{{ item.changed }}"
with_items: "{{ users_added.results }}"

- name: Set authorized keys
authorized_key:
user: "{{ item.name }}"
key: "{{ item.item.authorized_key }}"
manage_dir: yes
when: "{{ item.changed }}"
with_items: "{{ users_added.results }}"

我希望仅对新创建的用户触发第二个任务(“强制创建的用户更改密码”)。到目前为止,我发现的最好的事情就是检查它是否已更改

不幸的是,如果用户没有 SSH key ,则会触发此错误。配置计算机时,运行此任务的用户没有 SSH key 。 Ansible 的密码过期,并且每个后续命令都会失败,因为它需要 sudo。

有人知道只有在创建用户的情况下才能使任务工作的方法吗?类似 generate_ssh_keyon_create 选项。

最佳答案

系统: bool 值选择: 否 ← 是创建帐户 state=present 时,将其设置为 yes 会使用户成为系统帐户。现有用户无法更改此设置

- name: Force created users to change password
shell: "chage -d 0 {{ item.name }}"
when: **item.changed and item.system is defined and not item.system**
with_items: "{{ users_added.results }}"

关于ansible - 如何在 Ansible 中执行用户创建任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36874183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com