将变量传递给 ansible playbook

将变量传递给 ansible playbook

我需要从目标机器上的 S3 提取构建。因此我需要以某种方式将 S3 密钥和机密传递给 ansible playbook。

我知道我可以将它们定义为

  • 库存
  • 剧本本身

但我真的不想在那里存储凭证。

我可以在 ansible playbook 中使用本地机器(或类似机器)的环境变量吗?

答案1

$ENV(SOMEVAR){{ lookup('env', 'SOMEVAR') }}(1.1+) 应该可以工作。您也可以vars_prompt在剧本运行时使用它来请求它。

答案2

查看ansible-vault 它允许您将变量加密到文件中,然后在运行时“解锁”该文件。

除此之外,您还可以在运行时使用 -e "" 标志指定额外的变量:

ansible-playbook -i inv/production myplaybook.yml -e "s3_key=<value here> s3_secret=<secret here>"

相关内容