Мы запекаем AMI, и в последнее время я хотел запустить несколько сценариев пользовательских данных, чтобы уведомить об образовании облака, когда экземпляр завершил загрузку и ввел его в эксплуатацию. Для этого я использую cfn-signal. В исходном образе ubuntu сценарий будет выполняться, но после запекания нашего пользовательского AMI сценарий пользовательских данных не запускается.
Если я помещаю "# cloud-boothook" вверху скрипта, он выполняется, но из-за того, что он выполняется так рано, он бесполезен для уведомления, когда машина включена. Я надеюсь, что кто-то знает, где находится флаг или файл, который указывает cloudinit, что это первая загрузка машины.
Я также попытался изменить конфигурацию, как было предложено Вот
Я знаю, что должен быть флаг или файл, который я могу удалить перед процессом создания AMI, но не могу найти никакой информации о том, что это за флаг или файл.
Как я тестировал, в /var/lib/cloud
каталог. После того, как я очистил этот каталог, Данные пользователя скрипт работал нормально.
rm -rf /var/lib/cloud/*
Вы должны быть уверены, что cloud-init не запущен в это время. В противном случае вам придется удалить его снова.
Это особенно актуально, если вы пытаетесь удалить /var/lib/cloud/
внутри пользовательских данных. В этом случае вы должны использовать что-то вроде:
echo "rm -rf /var/lib/cloud/*" | at now + 1 min
в конце скрипта пользовательских данных.