У меня почти 150 ec2-экземпляров в аккаунте. Я хочу извлечь системную информацию из каждого экземпляра. Я знаю, что могу индивидуально войти в каждую систему и получить информацию, используя определенную команду. Но я хочу всю информацию за один раз. Я могу написать простой скрипт, но проблема в том, что у меня есть хост-бастион, а затем мне нужно ssh для каждого экземпляра, и имя пользователя отличается. Примером для некоторого экземпляра его ec2-user@2.2.2.2 и для некоторого его centos@3.3.3.3.

ssh -i "prod-key-pair.pem" ec2-user@ec2-1-9-1-2.compute-1.amazonaws.com ssh -i "sandbox-key-pair.pem" centos@1.1.4.2 'bash -s' << EOF
    cat /etc/*-release|grep -m 1 NAME >>os_detail.txt
    ifconfig | grep inet |head -1 |awk -F ' ' '{print $2}' >>os_detail.txt
EOF

Мой вопрос заключается в том, каким образом он может выбрать и centos, и ec2-пользователя один за другим, и если ему не удастся использовать centos, ему следует попробовать ec2-user. Во-вторых, две команды при их выполнении создают файлы на сервере, но я хочу, чтобы эти файлы были в моей локальной системе, откуда я запускаю скрипт.

Любые указатели о том, как я могу решить эту проблему?

1 ответ1

0

Примерно в 2017 году мероприятие re: изобретать AWS запустило запущенный Amazon EC2 Systems Manager. Этот сервис можно использовать для удаленного запуска сценариев (rundocument SSM)/ команд (SSM runcommand) через API, предоставляемые Amazon.

По умолчанию в последних экземплярах Windows и Amazon Linux по умолчанию установлен агент SSM. Остальные нуждаются в ручной установке, которая проста и однократно.

У них есть документы, в которых мы можем создавать или использовать существующие документы и запускать их на машинах, которые мы перечислили. Мы получаем необходимый вывод, сгенерированный из этих команд через ответ API.

Чтобы включить эту службу, мы должны убедиться, что для роли IAM, назначенной экземпляру EC2, включено разрешение SSM.

Вот несколько ссылок для дальнейшей помощи:

  1. https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html
  2. https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html

Чтобы получить метаданные экземпляра, вы можете использовать эту команду из экземпляра.

wget -q -O - http://169.254.169.254/latest/meta-data/instance-id

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .