如果根据boto要求将AWS凭据指定为环境变量,则Ansible playbooks中的AWS CLI命令任务可以正常运行。更多信息可以在Environment Variables找到。 但他们无法在塔中运行,因为它导出了另一套环境。瓦尔:
AWS_ACCESS_KEY
AWS_SECRET_KEY
为了让它们在Tower中工作,只需在任务定义中添加以下内容:
environment:
AWS_ACCESS_KEY_ID: "{{ lookup('env','AWS_ACCESS_KEY') }}"
AWS_SECRET_ACCESS_KEY: "{{ lookup('env','AWS_SECRET_KEY') }}"
e.g。这个任务:
- name: Describe instances
command: aws ec2 describe-instances --region us-east-1
将转换为:
- name: Describe instances
command: aws ec2 describe-instances --region us-east-1
environment:
AWS_ACCESS_KEY_ID: "{{ lookup('env','AWS_ACCESS_KEY') }}"
AWS_SECRET_ACCESS_KEY: "{{ lookup('env','AWS_SECRET_KEY') }}"
注意:这只注入env.var。为特定的任务 - 而不是整个剧本! 因此,您必须以这种方式修改每个AWS CLI任务。
答案 0 :(得分:0)
将您的环境变量放在一个文件中:
export AWS_ACCESS_KEY=
export AWS_SECRET_KEY=
将文件保存在远程主机中的〜/ .vars中,然后保存在您的剧本中。
- name: Describe instances
command: source ~/.vars && aws ec2 describe-instances --region us-east-2
为了安全起见,您可以在运行后删除该文件,并在下一次播放中再次复制。
答案 1 :(得分:0)
虽然这可能不适用于塔,但我们使用开源版本。设置.aws和/或.boto文件。