【问题标题】:Alternative for export AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY导出 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 的替代方案
【发布时间】:2016-12-14 11:43:28
【问题描述】:

我一直在使用 Ansible 来配置 ec2 实例。每次我启动虚拟机时,我都必须执行

export AWS_ACCESS_KEY_ID = ACCESS-KEY-ID 
export AWS_SECRET_ACCESS_KEY = SECRET-ACCESS-KEY

在运行 ansible-playbook 以供应/配置实例之前。

我编写了一个使用 Ansible 的原始模块执行上述命令的剧本,即使在执行该剧本之后,我也必须手动执行这些命令才能运行 provision.yml 脚本。

有没有从剧本本身做这些的有效方法????因为我实际上正在从事一些不鼓励手动执行命令的自动化工作。

【问题讨论】:

    标签: environment-variables


    【解决方案1】:

    Ansible 可以设置环境变量:

    在你的剧本中:

    - name: "Simple playbook"
      hosts: localhost
      roles:
         - aws
      environment:
         AWS_ACCESS_KEY_ID: "{{ aws_access_key }}"
         AWS_SECRET_ACCESS_KEY: "{{ aws_secret_key }}"
    

    我强烈建议学习如何使用 ansible-vault 作为在 Ansible 中存储凭据的一种快速简便的方法。

    另外请注意,如果您使用ec2.py 动态库存脚本,上述解决方案将不起作用。在剧本设置环境之前加载库存。在这种情况下,最好的选择是使用备用AWS credential methods 之一。一种简单的方法是创建一个 ~/.boto 文件,其中包含以下内容:

    [Credentials]
    aws_access_key_id = YOUR_ACCESS_KEY
    aws_secret_access_key = YOUR_ACCESS_SECRET
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      相关资源
      最近更新 更多