Si vous écrivez une tâche appropriée comme celle ci-dessous, vous ne pourrez pas vous connecter à root, Je n'ai rien pu faire car je n'avais pas créé un autre utilisateur. .. ..
ansible:2.9.3 Système d'exploitation du nœud cible: CentOS 7.7
root_passwd_change.yml
---
- hosts: test
become: true
tasks:
- name: passwd change
user:
name: root
password: newpassword
Quand tu fais ça,
[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.
Je me fâche, mais il semble que j'ai pu le changer avec la description de OK. Mais en réalité Si vous utilisez le mot de passe attendu, vous ne serez pas en mesure de ssh et vous ne pourrez pas vous connecter à partir de la console. Même si vous exécutez à nouveau le playbook, vous ne pourrez pas le modifier, vous devrez donc réinitialiser le mot de passe en mode de secours.
[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.
C'est parce que le mot de passe est écrit solidement sans être haché comme en colère. Vous pouvez le modifier comme prévu en écrivant comme suit.
root_passwd_change.yml
---
- hosts: test
become: true
tasks:
- name: passwd change
user:
name: root
password: "{{ 'newpassword' | password_hash('sha512') }}"
J'ai dû l'écrire en hash comme décrit dans le document ci-dessous.
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#hashing-filters
Lorsque vous faites ce qui précède,
[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
J'ai pu le changer comme je m'y attendais.
Recommended Posts