2016-12-14 44 views
3

我一直在使用ansible來提供ec2實例。我每次啓動VM我必須執行 出口AWS_ACCESS_KEY_ID = ACCESS-KEY-ID 出口AWS_SECRET_ACCESS_KEY = SECRET-ACCESS-KEY運行ansible,劇本以撥備前 /配置實例。替代導出AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY

我已經編寫了一個劇本,它使用ansible的原始模塊執行上述命令,即使在執行該劇本後,我也必須手動執行這些命令,然後才能運行provision.yml腳本。

是否有從劇本本身做到這些的有效方式????,因爲我實際上在做一些不鼓勵手動執行命令的自動化作業。

回答

0

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 
相關問題