AWS ECR Получить команду входа в систему - нет такого файла или каталога через ansible - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть задача как таковая

- name: Login to AWS
   command: $(aws ecr get-login --no-include-email --region us-east-2)

При выполнении этого я получаю вывод

FAILED!=> {"change": false, "cmd": "'^ $ (aws' ecr get-login --no-include-email --region 'us-east-2)'", "msg": "[Errno 2] Нет такого файла или каталога "," rc ": 2}

В чем причина?Я считаю, что эта команда должна работать нормально

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Конструкция $ (команда), которую вы используете - это «подстановка команд».Оболочка запускает команду, захватывает ее выходные данные и вставляет их в командную строку, содержащую $ (…).Он предназначен для использования из командной строки оболочки для входа в службу ECS.

Ansible is не запускает команду в режиме оболочки.и не может поддерживать подстановку команд оболочки в этом контексте, и файл отчетов не найден в результате.

С https://docs.ansible.com/ansible/2.5/modules/command_module.html

Данная команда будет выполнена на всех выбранных узлах.Он не будет обрабатываться через оболочку, поэтому такие переменные, как $ HOME, и такие операции, как "<", ">", "|", ";"и «&» не будет работать (используйте модуль оболочки, если вам нужны эти функции).

Вместо этого вы можете создать сценарий оболочки, который выполняет вход в систему ECS, и процесс, который необходимо запустить послеВы входитеЗатем вызовите этот скрипт из параметра команды.

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

0 голосов
/ 07 декабря 2018

rc - это код возврата (выхода), в вашем случае «2» команды aws ecr get-login --no-include-email --region us-east-2

Ниже перечисленные пункты могут помочь в устранении неполадок -

  1. Проверьте правильность установки aws cli с помощью команды aws --version.

  2. Согласно документации , команда get-login доступна в CLI AWS, начиная с версии 1.9.15;в то время как версия 1.11.91 рекомендуется.Попробуйте обновить версию aws -

    pip install awscli --upgrade --user

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...