尝试使用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特权。我该如何解决这个问题?
答案 0 :(得分:2)
根据documentation ansible_env_vars
仅适用于环境变量,但become
和become_method
是内部Ansible变量。
在配置器配置中使用额外的参数:
"extra_arguments": [ "--become" ]
或者将become
添加到您的剧本中。