Osservando il codice runcmd (/usr/lib/python2.6/site-packages/cloudinit/config/cc_runcmd.py) Ho notato che non è stata specificata alcuna 'frequenza' in confronto ad altri. Accanto all'unica cosa che fanno gli script è salvare gli script dati come script di shell in/var/lib/cloud/instance/scripts/runcmd.Come utilizzare correttamente runcmd e script-utente in cloud-init?
Quindi se si specificano in modo verbale i moduli, DEVO impostare la frequenza.
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
e gli script creati da questo particolare può essere gestita da 'script-user', quindi ho bisogno di specificare cioè
- [ scripts-user, always ]
per rendere gli script RunCmd lavoro
E 'modo corretto fare così ? La documentazione (almeno la corrente 0.7.7) manca di una corretta spiegazione di runcmd e script utente e come possono essere utilizzati
Inoltre non capisco la differenza tra tutte le modalità, una volta (la prima volta l'avvio dell'istanza), esempio (???), sempre (che ho capito), ???? avvio (che si esiste, non sembra funzionare ...
EDIT:?
ok, ho trovato in cloudinit/settings.py:
# Valid frequencies of handlers/modules
PER_INSTANCE = "once-per-instance"
PER_ALWAYS = "always"
PER_ONCE = "once"
e accanto ho trovato una spiegazione in questo script:
[[email protected] ~]# 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
Ma io non capisco la differenza tra "una volta" e "istanza". Quindi se la stessa immagine (piuttosto istantanea) con un nuovo id di istanza nel caso 'una volta' non verrà avviata? nel caso "istanza" lo farà?