#amazon-ec2
#amazon-ec2
Вопрос:
У меня есть 60 экземпляров ec2, которые используют одну и ту же структуру папок, похожи друг на друга, но не полностью идентичны. Неправильный файл был загружен во все 60 экземпляров, и мне было интересно, каков наилучший способ заменить этот файл правильным? Файл называется одинаково и размещается в одном и том же месте во всех экземплярах. Я новичок в использовании AWS в целом, поэтому буду признателен за любую помощь.
Комментарии:
1. Можете ли вы показать пример того, что вы пробовали? Как насчет этого: superuser.com/a/338798/191864
Ответ №1:
Предполагая, что вы не хотите использовать что-то вроде ansible, иметь доступ к серверам и хотите использовать только bash, вы могли бы сделать что-то вроде: поместите все ваши IP-адреса ваших серверов в файл, по одному в каждой строке — вот так:
IpAddresses.txt
10.20.15.1
10.20.15.44
10.20.15.65
Затем создайте скрипт:
myscript.sh
#!/bin/bash
while read line; do
ssh -i path_to_key.pem ec2-user@$line 'sudo rm -rf /path_to_directory | command 2 | command 3'
done < IpAddresses.txt
Может быть, вы могли бы сделать что-то вроде описанного выше, чтобы сначала удалить ненужные каталоги, а затем выполнить scp для копирования правильного файла.
Зависит от команд, необходимых для устранения проблемы, но это вариант.
Обратите внимание, я не тестировал эту команду точно, поэтому вам может потребоваться немного исправить / протестировать.
Ссылки: https://www.shellhacks.com/ssh-execute-remote-command-script-linux /
Ответ №2:
Если ваши экземпляры EC2 имеют правильные разрешения IAM, вы можете использовать консоль Simple Systems Manager (SSM), используя Run Command
сервис. Нажмите «Выполнить команду», затем выберите AWS-RunShellScript
из списка командных документов. В текстовом поле вы можете указать команду оболочки для запуска, а ниже вы можете выбрать набор экземпляров, для которых вы хотите запустить команду.
Это рекомендуемый способ обновления и администрирования большого парка экземпляров, таких как у вас.