Данные пользователя начальной загрузки для экземпляров контейнера ECS для подключения хранилища EFS

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

Я перешел в стек формирования облака для своего кластера и попытался добавить свой сценарий начальной загрузки в пользовательские данные при обновлении стека. Следующие скрипты уже присутствуют:

#!/bin/bashecho ECS_CLUSTER=flask-ecs >> /etc/ecs/ecs.config;echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config;

Attempt1 Сценарий начальной загрузки (я вставил команды, которые использовал для ручного монтирования):

#!/bin/bashecho ECS_CLUSTER=flask-ecs >> /etc/ecs/ecs.config;echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config;sudo yum install -y amazon-efs-utils;cd /home/ec2-user/;mkdir efs;sudo mount -t efs fs-456665f:/ efs;

Attempt2 Сценарий начальной загрузки (добавлен со ссылкой на документацию Документация AWS)

#!/bin/bashecho ECS_CLUSTER=flask-ecs >> /etc/ecs/ecs.config;echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config;  #cloud-config repo_update: true repo_upgrade: all  packages: - amazon-efs-utils  runcmd: - file_system_id_01=fs-456665f - efs_directory=/home/ec2-user/efs  - mkdir -p ${efs_directory} - echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab - mount -a -t efs defaults

Ни одна из попыток не смонтировала EFS в экземпляры после входа в экземпляр. Теперь экземпляры контейнера не отображаются в консоли кластера ECS.


person Chandim Sett    schedule 27.04.2018    source источник
comment
Можете ли вы войти в экземпляр и опубликовать суть журнала файла /var/log/cloud-init-output.log?   -  person m0hit    schedule 31.10.2018


Ответы (1)


Допустим, вы используете шаблон YAML CloudFormation, и единственная проблема, которую я вижу, заключается в том, что оператор должен быть многострочным, например:

  UserData:
    "Fn::Base64": !Sub |
      #!/bin/bash
      echo ECS_CLUSTER=pidetodo-ecs >> /etc/ecs/ecs.config;echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config;
      sudo yum install -y amazon-efs-utils
      mkdir /home/ec2-user/efs
      sudo mount -t efs fs-456665f:/ /home/ec2-user/efs 

Этого должно быть достаточно, и я не уверен в использовании сценария bash с операторами cloud-init. Я бы предложил сначала заполнить файл / etc / fstab информацией о файловой системе EFS, а затем попробовать смонтировать, как упоминается в документе AWS.

Помните отступ в 2 пробела в YAML.

person Alfredo J Ramirez    schedule 31.10.2018