Ansible tramite Vagrant Provisioner non funziona con `diventa` (o` sudo`)


0

Come può essere utilizzato Ansible tramite il ansibleprovider di Vagrant mentre si lavora con azioni che becomeun superutente? Ogni tentativo che ho fatto finora non funziona per ragioni abbastanza inspiegabili.

Lo scenario sta annotando aptun'azione con becomeper dargli le giuste autorizzazioni. L'invocazione di Ansible, che viene attivata vagrant provision, è SSHing tramite l' vagrantutente (che Vagrant ora applica per impostazione predefinita tramite il ansibleprovider), un utente che ha una password sudopredefinita per impostazione predefinita su due caselle di base che ho provato: ubuntu/trusty64e debian/stretch64.

Nonostante sudo apparentemente senza password sia supportato sulla macchina virtuale sottostante, questo non funziona e genera il seguente errore:

fatal: [default]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}  

Dato che le caselle Vagrant usano il nome utente vagrant/ vagrantfor e le password sulle caselle di default, allora aggiorno il Vagrantfile per chiedere esplicitamente una password sudo:

config.vm.provision "ansible" do |ansible|
  ansible.playbook = 'main.yml'
  ansible.ask_become_pass = true

Che richiede una password:

   default: Running ansible-playbook...
SUDO password:

Tuttavia, dopo vagrantaverlo inserito non riesce ancora, anche se posso usare vagrant sshper accedere alla VM e confermare che questa è la password corretta:

fatal: [default]: FAILED! => {"changed": false, "module_stderr": "Sorry, try again.\n[sudo via ansible, key=XXXXXXXXXXXXXXXXXXX] password: \nsudo: 1 incorrect password attempt\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

È interessante notare che il ansible_localprovider funziona bene per la ubuntu/trusty64scatola, ma fallisce debian/stretch64per motivi completamente indipendenti. Quindi sembra che abbia a che fare con l'interazione tra Vagrant e Ansible su SSH con sudo.

Informazioni sulle mie installazioni Vagrant e Ansible:

$ ansible --version
ansible 2.7.1
  config file = None
  configured module search path = ['/Users/XXXXXX/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']                                                                                   
  ansible python module location = /usr/local/lib/python3.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.7.1 (default, Nov  6 2018, 18:46:03) [Clang 10.0.0 (clang-1000.11.45.5)]
$ vagrant --version
Vagrant 2.2.2

Qual è l'attuale modo affidabile raccomandato per utilizzare il ansibleprovisioner di Vagrant become? Grazie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.