Как добавить экземпляр EC2, созданный с помощью группы автоматического масштабирования и IAM ECS, в стек OpsWorks?

У меня есть AWS ECS кластер и для облегчения доступа пользователя я использую OpsWorks чтобы получить его ssh особенность. Чтобы поддерживать стек всегда, даже если экземпляр по какой-либо причине завершен, я полагаюсь на EC2 Auto Scaling Group который использует конкретный Launch Configuration и там я установил следующее на User Data поле:

#!/bin/bash
# This works just fine!
echo ECS_CLUSTER=my-cluster-name >> /etc/ecs/ecs.config
# Given AWS CLI is not installed by default
yum install -y awscli
# This is copied and pasted from the OpsWorks' Register Instance Wizard
aws opsworks register --infrastructure-class ec2 --region us-east-1 --stack-id aaa-bbb-ccc-ddd --local

Для отладки я set -x на месте и с учетом всех команд перед регистрацией работают вот соответствующий журнал о выводе конкретной команды:

+ aws opsworks register --use-instance-profile --infrastructure-class ec2 --region us-east-1 --stack-id aaa-bbb-ccc-ddd --override-hostname abcdefgh --local
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 7800k  100 7800k    0     0  12.3M      0 --:--:-- --:--:-- --:--:-- 12.3M
opsworks-init: Initializing AWS OpsWorks environment
opsworks-init: Checking if OS is supported
opsworks-init: Running on supported OS
opsworks-init: Setup motd
opsworks-init: Executing: ln -sf --backup /etc/motd.opsworks-static /etc/motd
opsworks-init: Using assets bucket from environment: 'opsworks-instance-assets-us-east-1.s3.amazonaws.com'.
opsworks-init: Installing Ruby for the agent
opsworks-init: Executing: /tmp/opsworks-agent-installer.ggXxYyMmBBH/opsworks-agent-installer/opsworks-agent/bin/installer_wrapper.sh -r -R opsworks-instance-assets-us-east-1.s3.amazonaws.com

У меня сложилось впечатление, что эта последняя команда молча терпит неудачу, потому что я ожидаю, что регистрация будет более многословной сразу после этого.

Убедившись, что все роли IAM и группы безопасности пересмотрены и все выглядят четко и без явных ошибок, отображаемых в журналах загрузки, экземпляр не будет регистрироваться вообще. Я уже пробовал следовать этому руководству по экземплярам AWS OpsWorks для автоматического масштабирования, но даже с приведенным ниже кодом, извлеченным оттуда (и после попытки многих вариантов), оно не будет зарегистрировано:

#!/bin/bash
sed -i'' -e 's/.*requiretty.*//' /etc/sudoers
pip install --upgrade awscli
/usr/bin/aws opsworks register --use-instance-profile --infrastructure-class ec2 --region us-east-1 --stack-id aaa-bbb-ccc-ddd --override-hostname $(tr -cd 'a-z' < /dev/urandom |head -c8) --local

Любые подсказки о том, что я могу упустить, чтобы зарегистрировать новые экземпляры для OpsWorks стек?

Большое спасибо!

1 ответ

Решение

У меня была похожая проблема, и я обновил версию агента opsworks:

Стек-> Настройки стека-> Изменить-> Версия агента OpsWorks-> Использовать последнюю версию

после этого небольшого изменения все работало отлично

Другие вопросы по тегам