【发布时间】:2015-04-06 16:57:55
【问题描述】:
如果我有带有 ansible 规定的 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
当我用 wagrant up 开始 vagrant 时,出现错误:
failed: [web] => {"failed": true, "parsed": false}
[sudo via ansible, key=daxgehmwoinwalgbzunaiovnrpajwbmj] password:
有什么问题?
【问题讨论】:
-
嗯,好像是在要求输入 sudo 密码。你在 yml 文件中配置了吗?
-
将
vagrnt添加到sudoers -
@VladimirFejsov 如果您使用的是 Ubuntu 或基于 Debian 的 Linux,请参阅 this link。 man page 进一步解释了它。 Kashyap 表示您的
vagrant用户必须存在并且在远程计算机上具有sudo权限。正如ryekayo 指出的那样,您需要将vagrant用户的密码存储在主机上,以便Ansible 可以检索它,可能在ansible-vault 中。
标签: vagrant ansible ansible-playbook vagrantfile