Wenn Sie eine geeignete Aufgabe wie die folgende schreiben, können Sie sich nicht bei root anmelden. Ich konnte nichts tun, weil ich keinen anderen Benutzer erstellt hatte. .. ..
ansible:2.9.3 Zielknoten-Betriebssystem: CentOS 7.7
root_passwd_change.yml
---
- hosts: test
become: true
tasks:
- name: passwd change
user:
name: root
password: newpassword
Wenn Sie dies tun,
[root@ansible test]# ansible-playbook -i host root_passwd_change.yml
PLAY [test] *********************************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.1.136]
TASK [passwd change] ***********************************************************
[WARNING]: The input password appears not to have been hashed. The 'password'
argument must be encrypted for this module to work properly.
changed: [192.168.1.136]
PLAY RECAP *********************************************************************
192.168.1.136 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: The input password appears not to have been hashed. The 'password' argument must be encrypted for this module to work properly.
Ich werde wütend, aber es sieht so aus, als könnte ich es mit der Beschreibung von OK ändern. Aber in der Realität Wenn Sie das erwartete Kennwort verwenden, können Sie nicht ssh und sich nicht über die Konsole anmelden. Selbst wenn Sie das Playbook erneut ausführen, können Sie es nicht ändern. Daher müssen Sie das Kennwort im Rettungsmodus zurücksetzen.
[root@ansible test]# ansible-playbook -i host root_passwd_change.yml
PLAY [test] *********************************************************************
TASK [Gathering Facts] *********************************************************
fatal: [192.168.1.136]: UNREACHABLE! => {"changed": false, "msg": "Invalid/incorrect password: Permission denied, please try again.", "unreachable": true}
PLAY RECAP *********************************************************************
192.168.1.136 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
[WARNING]: The input password appears not to have been hashed. The 'password' argument must be encrypted for this module to work properly.
Dies liegt daran, dass das Passwort solide geschrieben ist, ohne dass man sich darüber ärgert. Sie können es wie erwartet ändern, indem Sie wie folgt schreiben.
root_passwd_change.yml
---
- hosts: test
become: true
tasks:
- name: passwd change
user:
name: root
password: "{{ 'newpassword' | password_hash('sha512') }}"
Ich musste es in Hash schreiben, wie im folgenden Dokument beschrieben.
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#hashing-filters
Wenn Sie das oben genannte tun,
[root@ansible test]# ansible-playbook -i host root_passwd_change_fixed.yml
PLAY [test] *********************************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.1.136]
TASK [passwd change] ***********************************************************
changed: [192.168.1.136]
PLAY RECAP *********************************************************************
192.168.1.136 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Ich konnte es wie erwartet ändern.
Recommended Posts