如何解决首次登录时可更改处理密码
我正在创建一个登录虚拟机并执行初始配置的剧本。用于创建VM的映像具有默认用户名,该用户名在初次登录时需要更改密码。我正在寻找一种方法来处理Ansible中的问题?
解决方法
我使用ansible模块“期望” https://docs.ansible.com/ansible/latest/collections/ansible/builtin/expect_module.html
找到了解决问题的方法- name: Change password on initial login
delegate_to: 127.0.0.1
become: no
expect:
command: ssh {{ ansible_ssh_common_args }} {{ user_expert }}@{{ inventory_hostname }}
timeout: 20
responses:
Password: "{{ user_expert_password }}"
UNIX password: "{{ user_expert_password }}"
New password: "{{ user_expert_password_new }}"
new password: "{{ user_expert_password_new }}"
"\\~\\]\\$": exit
register: status
,
请记住,password
选项需要实际密码的哈希值。检查here如何获得它。 (它需要进行散列处理,否则您的剧本或清单中将有明文密码,这将带来安全风险。)
示例:
- name: ensure password of default user is changed
user:
name: yourdefaultuser
password: '$6$QkjC8ur2WfMfYGA$ZNUxTGoe5./F0b4GJGrcEA.ff9An473wmPsmU4xv00nSrN4D/Nxk8aKro/E/LlQVkUJLbLL6qk2/Lxw5Oxs2m.'
请注意,密码哈希是使用mkpasswd --method=sha-512
为密码somerandompassword
生成的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。