[英]How to automate the Configuring the AWS Command Line Interface and setting up profile process in python?
我想在 python 中自動執行此頁面上顯示的配置 AWS 命令行界面。 我想這樣做,這樣我就不必手動輸入每個步驟(如 aws 訪問密鑰 ID、秘密訪問密鑰、區域和輸出格式),因為我有大量服務器需要這一步。
有什么方法可以在 python 腳本中進行編碼,當我在單個服務器上運行該 python 時,它會執行此配置文件設置嗎? 有了這個,我只需要在每個服務器中運行一個腳本,而不是運行每個單獨的步驟。
helloV 很有幫助,應該點贊。
這是我對它的重新處理(您可能需要也可能不需要最后一個命令中的 sudo )
(請注意,這是 bash,而不是 python - 有很多方法可以將總體思路 Python 化 :-) )
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
我建議使用Ansible
並將配置文件復制到服務器。 最簡單且無錯誤。 如果排除了Ansible
,則調用aws configure set
如果要創建配置文件,請在subprocess
執行以下操作:
aws configure set aws_access_key_id xxxxxxxxx
aws configure set aws_secret_access_key xxxxxxxxx
....
如果只想在 Python 腳本中設置,請在腳本中設置環境變量:
import os
os.environ['aws_access_key_id'] = 'xxxxxxxxx'
與其依賴服務器的操作系統或服務器的任何其他方面,這可能會導致 python 腳本的兼容性問題。
我建議在 python 腳本中使用 boto3 庫。
取決於您要在 aws 服務中連接的資源。 假設S3。
s3 = boto3.resource('s3', region_name='xxxxxxxx',
aws_access_key_id='xxxxxxxxx',
aws_secret_access_key='xxxxxxxxx')
下面的 bash 有什么問題
curl http://169.254.169.254/latest/meta-data/instance-id > test.txt
ID=cat test.txt | cut -d [ -f 1]
IP="13.127.33.125"
Allow_IP=`/usr/bin/aws ec2 describe-instances --output json |grep -i PublicIp|grep $IP|head -1|awk -F":" '{print $2}'|tr -d ","|tr " \" " " "|tr -d " "`
if [ "$Allow_IP" == "" ]
then
/usr/bin/aws ec2 associate-address --instance-id $ID --public-ip $IP
else
echo "IP not availble " >>/var/tmp/script.out
fi
我確信您在 4 年后設法解決了這個問題,但對於訪客來說,這是一種完全錯誤的方法,在這種情況下,您需要使用 EC2 實例配置文件,您可以授予對任何 AWS 資源(例如 s3)的訪問權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.