#aws-systems-manager #aws-session-manager
#aws-systems-manager #aws-session-manager
Вопрос:
Я пытаюсь использовать диспетчер сеансов в своем CI (с ванильной конфигурацией, так что ничего особенного).
Все входные данные (ключи и т. Д.) И конфигурации (пользователь / стратегия / ключ) Действительны. Мне удается запустить сеанс на моем собственном ноутбуке.
Но на моем конвейере я получил следующее сообщение
Starting session with SessionId: xxxx-xxxxxxx
$ **Cannot perform start session: EOF**
Связана ли эта оболочка?
Для справки, инструменты, используемые в CI :
- Плагин менеджера сеансов: 1.2.30.0
- Интерфейс командной строки AWS: aws-cli / 1.18.223 Python / 2.7.17 Linux/5.4.0-1039- azure botocore/1.19.63
Комментарии:
1. Вы нашли решение? У меня такая же проблема. В моем случае я запускаю
aws ecs execute-command
действие github.2. @BenjaminHao Да, это просто связано с TTY. В конце мы зарезервировали start-session для SSHing через ноутбуки. Для нашего компакт-диска мы используем
aws ssm send-command --document-name "AWS-RunShellScript"
и скрипт, выполняемый удаленно (в нашем случае на EC2, а не на ECS). С уважением3. Спасибо! Я попробую ваше решение. Я нашел еще один, который сработал для меня. Я установил
expect
sudo apt-get install expect
и запустил команду с помощьюunbuffer aws ecs execute-command ....
4. @BenjaminHao Это умно, поскольку unbuffer позволяет обойти интерактивное поведение 😉
Ответ №1:
Если вы столкнулись с этой ошибкой, как я:
Cannot perform start session: EOF
и вот, используя информацию из комментария Бенджамина Хао, вот шаги, которые я предпринял, чтобы заставить его наконец работать:
Ожидаемая установка, в моем случае мне пришлось установить его на размещенный на Github runner, который устанавливается с Ubuntu:
apt install -y expect
Затем добавьте «unbuffer» перед командой, которую вы пытаетесь выполнить, например:
unbuffer aws ecs execute-command --region $REGION --cluster $ecs_cluster_name --task $ecs_task_id --container ops-machine --command 'clitool env start --confirm' --interactive