Согласно новостной статье New EC2 Run Command , интерфейс командной строки AWS должен поддерживать новую подкоманду для выполнения сценариев на удаленных экземплярах EC2.
Однако я зарегистрировался aws ec2 help
, но не могу найти соответствующую команду.
Я установил aws
через apt-get
:
$ aws --version
aws-cli/1.14.32 Python/3.5.4 Linux/4.12.7-64 botocore/1.8.36
Какую подкоманду я должен искать и каков синтаксис для запуска, скажем, ipconfig
в PowerShell на удаленном экземпляре EC2?
amazon-ec2
aws-cli
kenorb
источник
источник
Ответы:
Чтобы запустить ipconfig из команды запуска AWS Systems Manager:
Примечание: если вы получили ошибку, рассмотрите возможность указания права
--region
.Это предполагает, что у вас правильно настроены учетные данные AWS и CLI. Дополнительные сведения см. В пошаговом руководстве «Выполнение команд системного менеджера» с помощью интерфейса командной строки AWS .
Вот практический пример команды оболочки для отправки и получения вывода команды:
источник
Вот вспомогательный скрипт Bash, который используется
aws ssm send-command
для запуска команд:Использование:
Пример:
Для получения более крупных выходных данных см. Как избежать усечения выходных данных при выполнении команды AWS SSM?
источник
Да, вы можете сделать это с помощью менеджера систем AWS. Команда запуска AWS Systems Manager позволяет удаленно и безопасно запускать набор команд на EC2, а также на локальном сервере. Ниже приведены шаги высокого уровня для достижения этой цели.
Роль присоединения IAM экземпляра. Экземпляр ec2 должен иметь роль IAM с политикой AmazonSSMFullAccess. Эта роль позволяет экземпляру взаимодействовать с API-интерфейсом System Manager.
Установите агент SSM: на экземпляре EC2 должен быть установлен агент SSM. Агент SSM обрабатывает запросы команды запуска и настраивает экземпляр в соответствии с командой.
Выполнить команду: пример использования через AWS CLI:
Выполните следующую команду, чтобы получить службы, запущенные на экземпляре. Замените Instance-ID на идентификатор экземпляра ec2.
Более подробная информация: здесь
источник
Вот что-то очень крутое, что я делаю с AWS SSM Send-Command!
Используя Apache Airflow, я создаю новый EC2-экземпляр, используя шаблон формирования облака (или сокращенно CFT), это просто файл JSON со всеми значениями конфигурации для моего EC2-экземпляра, который я хочу; Также обратите внимание, что в этом CFT у меня также есть команда начальной загрузки, которая копирует скрипт Python из местоположения S3 в новый экземпляр EC2, чтобы я мог выполнить его позже с помощью команды SSM Send! Я делаю это, используя Python3 и AWS SDK для Python3, называемые библиотекой Boto3. Вот часть команды для создания нового стека CFT, которая, в свою очередь, создает мой новый экземпляр EC2:
Затем я могу получить Instance-ID нового EC2-экземпляра (необходимого для использования SSM Send-Command), используя что-то вроде этого:
Затем я могу получить идентификатор экземпляра текущего экземпляра EC2 сервера Airflow Worker, выполнив эту команду
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
через Python:ТЕПЕРЬ!!!! ДЛЯ БОЛЬШОГО ФИНАЛА
Затем я могу выполнить сценарий для нового созданного мной экземпляра EC2 и отправить этому сценарию любые параметры / аргументы, которые я хочу ... включая идентификатор экземпляра сервера, который отправил команду отправки SSM, таким образом, когда мой сценарий будет выполнен работая на новом экземпляре EC2, он может отправить еще одну команду SSM Send обратно на мой сервер Airflow, чтобы сообщить, что сценарий завершен. Это на очень высоком уровне без подробностей, но это просто для демонстрации идеи :)
Не уверен, помогло ли это кому-нибудь, но это классный и интересный пример того, как что-то сделать с помощью AWS SSM Send-Command! Хотя, возможно, код запах XD
источник