У меня есть экземпляр EC2 с AMI, основанный на AMI Amazon Linux. Как и все подобные AMI, он поддерживает систему cloud-init для запуска сценариев запуска на основе данных пользователя, передаваемых в каждый экземпляр. В этом конкретном случае ввод моих данных пользователя является файлом Include, который содержит несколько других сценариев запуска:
#include
http://s3.amazonaws.com/path/to/script/1
http://s3.amazonaws.com/path/to/script/2
При первом запуске моего экземпляра запускает запуск cloud-init script. Однако, если я выполняю мягкую перезагрузку экземпляра (например, запустив sudo shutdown -r now
), экземпляр возвращается без запуска запуска script во второй раз. Если я войду в системные журналы, я вижу:
Running cloud-init user-scripts
user-scripts already ran once-per-instance
[ OK ]
Это не то, что я хочу - я вижу полезность сценариев запуска, которые запускаются только один раз на один экземпляр, но в моем случае они должны запускаться каждый раз, когда запускает экземпляр, например, обычные сценарии запуска.
Я понимаю, что одно из возможных решений заключается в том, чтобы вручную запустить мои скрипты в rc.local
после запуска в первый раз. Это кажется обременительным, однако, поскольку среды cloud-init и rc.d тонко отличаются, и теперь мне придется отлаживать скрипты при первом запуске и все последующие запуска отдельно.
Кто-нибудь знает, как я могу заставить cloud-init всегда запускать мои скрипты? Это, безусловно, звучит, как подумали дизайнеры cloud-init.