бродяга с возможной ошибкой

Если у меня есть Vagrantfile с возможностью предоставления:

Vagrant.configure(2) do |config|
  config.vm.box = 'hashicorp/precise32'
  config.vm.network "forwarded_port", guest: 80, host: 8080

  config.vm.provision :ansible do |ansible|
    ansible.playbook = "playbook.yml"
    ansible.inventory_path = "hosts"
    ansible.limit = 'all'
    ansible.sudo = true
  end

end

Мой файл hosts очень прост:

[local]
web ansible_connection=local

и playbook.yml:

---
- hosts: local
  sudo: true
  remote_user: vagrant
  tasks:
  - name: update apt cache
    apt: update_cache=yes

  - name: install apache
    apt: name=apache2 state=present

Когда я начинаю бродить с бродягой, я получаю сообщение об ошибке:

failed: [web] => {"failed": true, "parsed": false}
[sudo via ansible, key=daxgehmwoinwalgbzunaiovnrpajwbmj] password:

В чем проблема?


person Vladimir Fejsov    schedule 06.04.2015    source источник
comment
Хм, похоже, он запрашивает пароль sudo. Вы настроили это в своем файле yml?   -  person ryekayo    schedule 06.04.2015
comment
добавить vagrnt в sudoers   -  person Kashyap    schedule 06.04.2015
comment
@VladimirFejsov Если вы используете Ubuntu или Linux на основе Debian, см. эту ссылку. Подробнее это объясняется на справочной странице. Kashyap говорит, что ваш vagrant пользователь должен существовать и иметь sudo привилегии на удаленной машине. И, как указывает ryekayo, вам нужно сохранить пароль для пользователя vagrant на хосте, чтобы Ansible мог его получить, вероятно в ansible-vault.   -  person Damon    schedule 07.04.2015


Ответы (1)


Ошибка возникает из-за того, что ansible предполагает аутентификацию ssh на основе ключей, однако ваш бродяга создает виртуальную машину, которая использует аутентификацию на основе пароля.

Есть два способа решить эту проблему.

Вы можете запустить свой ansible playbook как

ansible-playbook playbook.yml --ask-pass

Это сообщит пользователю, что не следует использовать аутентификацию на основе ключа, вместо этого следует использовать аутентификацию ssh на основе пароля и запрашивать ее перед выполнением.

person Rahul Mehrotra    schedule 10.04.2015