我尝试使用Ansible更改现有用户的密码,但前提是用户已经存在。我不想创建任何新用户。有什么好办法吗?
vars:
myusers:
- { name: 'user1', update_pass: 'passwd' }
- { name: 'user2', update_pass: 'passwd' }
- { name: 'user3', update_pass: 'passwd' }
tasks:
- name: check exist
shell: /usr/sbin/usermod {{ item.name }}
with_items: myusers
register: result
failed_when: result.rc not in [6,2]
changed_when: result.rc != 6
- name: change passwd
user: name={{ item.name }} password={{ item.update_pass }} update_password=always
when: result|changed
with_items: myusers
答案 0 :(得分:0)
vars_prompt:
- name: user_name
prompt: Enter the user name for password reset
private: no
- name: pass
prompt: Enter the password
tasks:
- name: Change {{ user_name }} password
user: name={{ user_name }} password={{ pass|password_hash('sha512') }} update_password=always
答案 1 :(得分:0)
vars:
myusers:
- { name: 'user1', update_pass: 'passwd' }
- { name: 'user2', update_pass: 'passwd' }
- { name: 'user3', update_pass: 'passwd' }
# Contents of passwd will be stored in ansible_facts.getent_passwd as a dict
- name: Determine local user accounts
getent:
database: passwd
# Update password if user account is found in /etc/passwd
- name: change passwd
user: name={{ item.name }} password={{ item.update_pass }} update_password=always
with_items: myusers
when: item in ansible_facts.getent_passwd