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

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

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

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

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

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам