簡體   English   中英

如何在 Ansible Tower 中運行 AWS CLI 命令任務

[英]How to run AWS CLI command tasks in Ansible Tower

如果根據 boto 要求將 AWS 憑證指定為環境變量,Ansible playbooks 中的 AWS CLI 命令任務可以在命令行中正常工作。 更多信息可以在這里找到環境變量 但是它們無法在 Tower 中運行,因為它導出了另一組環境。 變量:

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') }}"

例如這個任務:

- 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 任務。

將您的環境變量放在一個文件中:

export AWS_ACCESS_KEY=
export AWS_SECRET_KEY=

將文件保存在遠程主機的 ~/.vars 中,然后保存在您的劇本中。

- name: Describe instances
  command: source ~/.vars && aws ec2 describe-instances --region us-east-2

為了安全起見,您可以在運行后刪除文件並在下一次播放時再次復制。

雖然這可能不適用於 Tower,但我們使用開源版本。 設置您的 .aws 和/或 .boto 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM