2016-03-31 27 views
1

我想在python中自動配置在this頁面上顯示的AWS命令行界面。我想這樣做,以便我不必手動輸入每個步驟(如aws訪問密鑰ID,密鑰訪問密鑰,區域和輸出格式),因爲我有大量需要此步驟的服務器。如何自動化配置AWS命令行界面並在python中設置配置文件過程?

是否有方法可以在python腳本中編寫此代碼,並且當我在單獨的服務器上運行該python時,它將執行此配置文件設置?有了這個,我只需要在每個服務器上運行腳本,而不是運行每個單獨的步驟。

回答

3

我建議使用Ansible並將配置文件複製到服務器。最簡單和無錯誤。如果Ansible被排除了,叫aws configure set

如果你想創建配置文件,執行在subprocess如下:如果你想設置僅在Python腳本

aws configure set aws_access_key_id xxxxxxxxx 
aws configure set aws_secret_access_key xxxxxxxxx 
.... 

,設置環境變量在腳本中:

import os 
os.environ['aws_access_key_id'] = 'xxxxxxxxx' 
+0

'os.environ []'它會在aws憑證和配置文件中設置鍵和區域嗎? – user2966197

+0

'os.environ'僅適用於該會話/進程。如果你想創建文件,請使用'aws configure set'' – helloV

+0

我正在做'result = subprocess.Popen([「aws」,「configure」,「set」,「aws_access_key_id」,access_key_id]),但是我得到'OSError:[Errno 2]沒有這樣的文件或目錄,即使我已經安裝了cli – user2966197

1

helloV是有幫助的,應該是upvoted。

這裏的是我重新工作(你可能會或可能不會需要在最後一個命令sudo的)

(注意,這是bash的,而不是蟒蛇 - 許多方法來pythonise :-)總體思路)

aws configure set default.region us-east-1 
aws configure set aws_access_key_id 'YOUR_ACCESS_KEY' 
aws configure set aws_secret_access_key 'YOUR_SECRET_KEY' 
aws ecr get-login | sudo sh 

在這裏作爲一個班輪。

aws configure set default.region us-east-1; aws configure set aws_access_key_id 'YOURSACCESSKEY' ; aws configure set aws_secret_access_key 'YOUR_SECRET_KEY'; aws ecr get-login | sudo sh