Я использую cloud-init для автоматической подготовки образа AWS (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