2015-11-12 11 views
5

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à?

risposta

1

Penso che la differenza sia importante se si sta creando un'immagine che verrà utilizzata per avviare più istanze.

Immagina di eseguire gli script di cloud-init per impostare un'istanza. Successivamente crei un'immagine di quell'istanza da cui puoi avviare più istanze.

Quando si avvia una nuova istanza dall'immagine:

  • gli script con frequenza di "una volta" non eseguire nuovamente
  • gli script con la frequenza "istanza" verrà eseguito al primo avvio, e mai sempre nella vita di quell'istante
  • gli script con frequenza "sempre" verranno eseguiti durante ogni avvio
Problemi correlati