一些ubuntu云图像,例如: http://cloud-images.ubuntu.com/vagrant/precise/20140120/precise-server-cloudimg-amd64-vagrant-disk1.box
有文件/etc/sudoers.d/vagrant,内容为vagrant ALL =(ALL)NOPASSWD:ALL
没有它,因此带有sudo_user的ansible命令无法正常工作。
我可以添加文件:
- name: ensure Vagrant is a sudoer
copy: content="vagrant ALL=(ALL) NOPASSWD:ALL" dest=/etc/sudoers.d/vagrant owner=root group=root
sudo: yes
我想知道Vagrant应该做些什么,因为这个任务 在真实(非流浪)机器上运行ansible playbook时将不适用。
答案 0 :(得分:3)
Vagrant需要使用config.ssh.username = "root"
或更常见地通过sudo
对VM进行特权访问。 Bento Ubuntu框目前configure直接到/ etc / sudoers。
我不知道ansible的sudo_user是做什么或意味着什么,但我想你的配置是覆盖/ etc / sudoers。在这种情况下,您确实需要确保不会丢失Vagrant对VM的sudo访问权限。或者构建自己的基本框,使用sudoers.d。
作为旁注,如果你创建一个/etc/sudoers.d/文件,你也应该将它的模式设置为0440,或者至少有一些旧的sudo版本拒绝应用它。