Итак, мое приключение началось так: у меня была виртуальная машина OpenSUSE 13.1, и я хотел перейти на 13.2, так что одно из основных различий между двумя сообществами amis (13.1 - '' и 13.2 -ami-3a6cc64d
) заключалась в том, что образ 13.2 использует HVM - вместо PV - тип виртуализации.
Первая проблема, с которой я столкнулся, заключалась в том, что в моем шаблоне CloudFormation использовался /dev/sda
device_name в BlockDeviceMappings, НО, по-видимому, это не тот тип device_name, которого ожидает тип изображения HVM (см. Вот для получения дополнительной информации). Это привело к тому, что экземпляр EC2 даже не попал в running
штат.
Так или иначе, я смог преодолеть это препятствие, назначив /dev/sda1
, как рекомендовано, чтобы мой экземпляр наконец смог правильно запуститься.
НО - теперь при запуске некоторые из моих сервисов не запускаются из-за неудачных зависимостей, которые я смог отследить до облачной конфигурации, которая не завершается правильно, независимо от того, что AWS сказал ему сделать:
Если я сбегу
$ systemctl
...
cloud-init-local.service loaded active exited Initial cloud-init job (pre-networking)
cloud-init.service loaded failed failed Initial cloud-init job (metadata service crawler)
...
После проверки журналов (/ var / log / syslog) я вижу следующее:
...
Failed to resize filesystem (cmd=('resize2fs', '/dev/hda1'))#012Traceback
...
но я не настраивал это сам, это то, что AWS каким-то образом решил сделать с моим изображением через облачную конфигурацию ...
Я понятия не имею, почему это происходит, и, кажется, я не могу найти много соответствующих сообщений, поэтому любые идеи были бы действительно приветствуются, ребята ...! :)
Заранее спасибо!!
Хорошо, получается, что мне пришлось явно отключить поведение облачной конфигурации по умолчанию, используя resize_rootfs
атрибут:
# resize_rootfs should the / filesytem be resized on first boot
# this allows you to launch an instance with a larger disk / partition
# and have the instance automatically grow / to accomoddate it
# set to 'False' to disable
# by default, the resizefs is done early in boot, and blocks
# if resize_rootfs is set to 'noblock', then it will be run in parallel
resize_rootfs: True
установив для него значение False, ошибка была удалена, поэтому cloud-init.service
служба больше не отказывает при запуске.
(Большинство ресурсов, которые я изначально нашел, наводили меня на мысль, что я должен использовать Growpart, но это было не так.)