2016-03-31 1 views
1

Я хочу автоматизировать настройку интерфейса командной строки AWS, показанного на странице this в python. Я хочу сделать это так, чтобы мне не приходилось вручную вводить каждый шаг (например, идентификатор ключа доступа aws, секретный ключ доступа, регион и формат вывода), поскольку у меня есть большое количество серверов, которым этот шаг необходим.Как автоматизировать настройку интерфейса командной строки AWS и настройку процесса профиля в python?

Есть ли способ, которым я могу закодировать это в скрипте python, и когда я запустил этот python на отдельных серверах, он выполнит настройку этого профиля? При этом мне нужно будет запускать скрипт на каждом сервере и не запускать каждый отдельный шаг.

ответ

3

Предлагаю использовать 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' 
+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] Нет такого файла или каталога', даже если у меня установлен aws cli – user2966197

1

привет приветствуется, должно быть поддержано.

Вот моя переработка его (вы можете или не можете понадобиться Sudo в последней команде)

(заметьте это Баш, не питон - много способов 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