Пытаясь использовать параметр AWS userdata
для запуска скрипта при загрузке экземпляра, я заметил, что иногда (не всегда) Часть облачной инициализации застревает где-то посередине и не достигает той части, где запускается пользовательский сценарий.
Вот как это должно выглядеть в /var/log/cloud-init-output.log
файл:
Cloud-init v. 0.7.5 running 'init-local' at Tue, 30 May 2017 06:38:40 +0000. Up 18.56 seconds.
Cloud-init v. 0.7.5 running 'init' at Tue, 30 May 2017 06:38:45 +0000. Up 23.39 seconds.
SOME_NETWORK_AND_SSH_KEYS_INFO_HERE
Cloud-init v. 0.7.5 running 'modules:config' at Tue, 30 May 2017 06:38:51 +0000. Up 28.80 seconds.
Generating locales...
en_US.UTF-8... up-to-date
Generation complete.
Cloud-init v. 0.7.5 running 'modules:final' at Tue, 30 May 2017 06:39:35 +0000. Up 73.20 seconds.
MY_USERDATA_SCRIPT_OUTPUT_HERE
Но вот как это выглядит, когда он застрял:
Cloud-init v. 0.7.5 running 'init-local' at Tue, 30 May 2017 06:36:43 +0000. Up 21.80 seconds.
Cloud-init v. 0.7.5 running 'init' at Tue, 30 May 2017 06:36:51 +0000. Up 30.13 seconds.
SOME_NETWORK_AND_SSH_KEYS_INFO_HERE
Cloud-init v. 0.7.5 running 'modules:config' at Tue, 30 May 2017 06:36:59 +0000. Up 37.66 seconds.
Generating locales...
en_US.UTF-8... up-to-date
Generation complete.
Как видите, он застрял после завершения Генерации
и все.
Любая идея, что может вызвать это и как я должен смягчить его?
Кстати, ОС - Ubuntu 14.04
Таким образом, проблема заключалась в том, что другой не связанный скрипт, который также был настроен на запуск на том же уровне выполнения, завис, что заставило весь уровень выполнения ждать его завершения перед запуском следующий уровень (в каком модуле: final).
Как только мы исправили этот скрипт, проблема исчезла.