【发布时间】:2017-11-30 04:04:30
【问题描述】:
我正在尝试使用 Ansible 将一些文件下载到我的各种 EC2 实例。我遇到的问题是我的 AWS 凭证。 AWS Ansible 模块都运行良好,包括 S3 模块。以下(当我替换我的 AWS 凭证时)就像一个魅力。
- name: upload data import file
s3: aws_access_key=<accesskey> aws_secret_key=<secretkey> bucket=my-bucket object=/data.zip mode=get
但是,我需要我正在编写的 Ansible 剧本和角色供任何人使用,并且我不希望任何 AWS 凭证都被硬编码。在我使用 Ansible AWS 模块的其他任何地方,我都消除了 aws_access_key 和 aws_secret_key 并且它工作得很好,因为 Ansible 在环境变量中查找这些值。但是,对于其他所有用途,我将它们作为本地操作运行。因此,它从我的本地机器中提取凭据,这正是我想要的。问题是当我在我的一个实例上运行 S3 模块时,如果我消除凭据参数,我会得到:
failed: [54.173.19.238] => {"failed": true}
msg: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
我想这是因为我没有指定凭据,它会在我的实例的环境变量中查找它们,但它们没有设置。我也不想在实例的环境变量中设置它们。
有没有一种方法可以使用 ansible 从 S3 下载文件而不必指定我的 AWS 凭证?
【问题讨论】:
标签: amazon-web-services amazon-s3 ansible ansible-playbook