cloud-init на AWS: монтирование исчезает после создания образа и восстановления
Я использую cloud-init для автоматической подготовки образа AWS (AMI) для использования в производственной среде - таким образом я могу отслеживать процесс настройки среды в системе управления версиями, но я могу пропустить этот длительный процесс, когда мне нужно новый производственный сервер.
Итак, процесс выглядит следующим образом:
- используйте файл cloud-init для загрузки нового базового образа (Ubuntu 14.04 cloud-image)
- дождитесь завершения cloud-init, затем создайте образ из запущенного экземпляра и завершите его
- чтобы запустить новый рабочий сервер, я использую небольшой облачный 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.