Viene visualizzato un messaggio di errore quando provo a eseguire un'attività con sudo nel mio anastomo Playbook.Manca la password quando sudo
Ecco il mio playbook:
---
- hosts: production
gather_facts: no
remote_user: deployer
become: yes
become_method: sudo
become_user: root
tasks:
- name: Whoami
command: /usr/bin/whoami
mi aspetterei whoami di essere root
ma il compito non riesce con il messaggio di errore:
» ansible-playbook -i ansible_hosts sudo.yml --ask-sudo-pass
SUDO password: [I paste my sudo password here]
PLAY [production] *************************************************************
GATHERING FACTS ***************************************************************
fatal: [MY.IP] => Missing become password
TASK: [Whoami] ****************************************************************
FATAL: no hosts matched or all hosts have already failed -- aborting
Quando ho ssh manualmente nella scatola e cercare di sudo è funziona come previsto:
» ssh [email protected]
» sudo whoami
[I paste the same sudo password]
root
La password dell'utente del deployer è stata impostata da Ansibl e come segue (in un playbook diverso):
- hosts: production
remote_user: root
# The {{ansible_become_pass}} comes from this file:
vars_files:
- ./config.yml
tasks:
- name: Create deployer user
user: name=deployer uid=1040 groups=sudo,deployer shell=/bin/bash password={{ansible_become_pass}}
Dove {{ansible_become_pass}}
è la password che desidero hash con il seguente frammento di pitone:
python -c 'import crypt; print crypt.crypt("password I desire", "$1$SomeSalt$")'
"password I desire"
è sostituire con una password e "$1$SomeSalt$"
è un sale casuale .
Sto usando Ansible versione 1.9.4.
Qual è il problema?
Ho provato entrambi i quaderni e hanno funzionato per me con 1.9.2 ansible. L'unica modifica che ho fatto è stata quella di impostare la password utente ansible e ho appena incollato il valore piuttosto che includerlo da un altro file. Non posso immaginare che farebbe comunque la differenza. Stavo usando la mia workstation e mi collegavo a localhost. –
Forse è un bug nella tua versione con il missaggio dello switch --ask-sudo con la sintassi diventata nel tuo playbook? Ho provato entrambi --ask-sudo e --ask-become e entrambi hanno funzionato. –