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