Посмотрев на код runcmd (/usr/lib/python2.6/site-packages/cloudinit/config/cc_runcmd.py), я заметил, что не указана «частота» по сравнению с другими. Кроме того, единственное, что делают сценарии, - это сохранять сценарии, указанные как сценарии оболочки, в / var / lib / cloud / instance / scripts / runcmd.
Поэтому, если я подробно указываю модули, я ДОЛЖЕН установить частоту.
cloud_config_modules:
- mounts
- locale
- set-passwords
- timezone
- [ runcmd, always ]
cloud_final_modules:
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- [ scripts-user, always ]
- ssh-authkey-fingerprints
и скрипты, созданные этим конкретным, могут быть запущены 'scripts-user', поэтому мне нужно указать, т.е.
- [ scripts-user, always ]
чтобы скрипты runcmd работали
Это правильный способ сделать это? В документации (по крайней мере, в текущей версии 0.7.7) отсутствует надлежащее объяснение runcmd и пользовательских скриптов и того, как их можно использовать.
Я также не понимаю разницы между всеми режимами, один раз (первая загрузка экземпляра), экземпляр (???), всегда (насколько я понимаю), загрузка ???? (тот существует? Не похоже работать...
РЕДАКТИРОВАТЬ:
хорошо, я нашел в cloudinit / settings.py:
# Valid frequencies of handlers/modules
PER_INSTANCE = "once-per-instance"
PER_ALWAYS = "always"
PER_ONCE = "once"
и кроме того, я нашел объяснение в этом скрипте:
[root@euca-10-254-97-216 ~]# cloud-init-per -h
Usage: cloud-init-per frequency name cmd [ arg1 [ arg2 [ ... ] ]
run cmd with arguments provided.
This utility can make it easier to use boothooks or bootcmd
on a per "once" or "always" basis.
If frequency is:
* once: run only once (do not re-run for new instance-id)
* instance: run only the first boot for a given instance-id
* always: run every boot
Но я не улавливаю разницы между «один раз» и «экземпляр». Итак, если то же изображение (скорее, снимок) с новым идентификатором экземпляра в случае «один раз» не запустится? в случае «экземпляра» это будет?