Назад | Перейти на главную страницу

cloud-init на AWS: монтировки исчезают после создания образа и восстановления

Я использую cloud-init для автоматической подготовки образа AWS (AMI) для использования в производственной среде - таким образом я могу отслеживать процесс настройки среды в системе управления версиями, но я могу пропустить этот длительный процесс, когда мне понадобится новый производственный сервер.

Итак, процесс выглядит следующим образом:

  1. используйте файл cloud-init для загрузки нового базового образа (облачный образ Ubuntu 14.04)
  2. дождитесь завершения cloud-init, затем создайте образ из запущенного экземпляра и завершите его
  3. чтобы запустить новый производственный сервер, я использую небольшую облачную инициализацию для загрузки из AMI и выполнения окончательной настройки (установка правильного имени хоста, развертывание программного обеспечения и т. д.).

У меня проблема в том, что первый файл конфигурации cloud-init использует disk_setup, и mounts модули для монтирования тома EBS. Как только это будет сделано, экземпляр получит /etc/fstab обновился и все нормально. Однако после выполнения шага 3 к полученному экземпляру прикреплен и правильно смонтирован том EBS (фактически его копия), но /etc/fstab не содержит креплений для тома. К счастью, я не перезагружаюсь после шага 3, но могу, и это сломает сервер.

Есть идеи, что происходит? Я не использую mounts в конфигурации cloud-init шага 3, но почему он не сохраняет fstab настройка с образа?

Проблема заключалась в том, что вторая конфигурация cloud-init (используемая для запуска производственного экземпляра на шаге 3 OP) содержала небольшой mounts раздел, чтобы смонтировать дополнительный том для конкретного экземпляра. Когда cloud-init встречает mounts в разделе, он не добавляет какую-либо найденную конфигурацию в текущий fstab, вместо этого он переопределяет любую настройку cloud-init, созданную восходящим cloud-init.

Решение состоит в том, чтобы либо включить всю ранее созданную конфигурацию монтирования, либо не включать какую-либо новую конфигурацию и выполнить всю конфигурацию тома на шаге 1.

Я не могу реально объяснить ваше поведение, но сами AWS рекомендуют вам не использовать записи fstab, а вместо этого использовать сценарии инициализации RC. См. Цитату ниже из Синди @ AWS. Это сообщение на форуме довольно старое и на самом деле не является ответом на ту же проблему, что и у вас, но, возможно, если вы сделаете это таким образом, также решите вашу проблему.

Я рекомендую изучить использование сценариев инициализации RC вместо использования для этой цели fstab (для экземпляров EC2). Если устройство, указанное в fstab, не может быть смонтировано, это остановит процесс загрузки, и вы не сможете подключиться к экземпляру по ssh. Вместо этого использование сценария RC может привести к «мягкому сбою», так что вы все равно сможете подключиться по ssh, а затем устранить проблему.

Источник: https://forums.aws.amazon.com/message.jspa?messageID=304528#304549