Packer ansible缺少sudo权限

时间:2017-10-27 21:39:06

标签: ansible packer

尝试使用ansible playbooks运行打包程序构建,但是甚至无法从最简单的任务开始。

我在配置文件部分中将其作为打包程序配置:

"provisioners": [
    {
      "type": "ansible",
      "playbook_file": "../ansible/main.yml",
      "ansible_env_vars": [ "ANSIBLE_HOST_KEY_CHECKING=False", "ANSIBLE_SSH_ARGS='-o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s'", "ANSIBLE_NOCOLOR=True","become=true","become_method=sudo" ]
    }
  ]

这是实际的剧本内容:

- user:
    name: foo
    comment: "Foo Bar"

执行时,由于以下原因导致失败:

  

amazon-ebs:致命:[默认]:失败! => {"更改":false,"失败":true," msg":" useradd:权限被拒绝。\ nuseradd:无法锁定/ etc / passwd ;稍后再试。\ n"," name":" foo"," rc":1}

据我了解,这是因为ansible没有在打包程序版本上运行sudo特权。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

根据documentation ansible_env_vars仅适用于环境变量,但becomebecome_method是内部Ansible变量。

在配置器配置中使用额外的参数:

"extra_arguments": [ "--become" ]

或者将become添加到您的剧本中。