2014-04-23 15 views
10

Attualmente mi occupo di CoreOS, e finora penso di aver ottenuto l'idea e il concetto generale. Una cosa che non ho ancora ottenuto è l'esecuzione di cloud-init.Quando viene eseguito cloud-init e in che modo trova i dati?

Capisco che cloud-init è un processo che esegue alcune configurazioni per CoreOS. Quello che non capisco è ...

  • Quando funziona CoreOS cloud-init? Al primo avvio? Ad ogni avvio? ...?
  • In che modo cloud-init sa dove trovare i dati di configurazione? Ho visto che c'è lo config-drive e questo ha senso, ma è l'unico modo? Qual è esattamente il ruolo del file user-data? ...?

risposta

15

CoreOS esegue cloudinit alcune volte durante il processo di avvio. In questo momento ciò accade ad ogni avvio, ma quella funzionalità potrebbe cambiare in futuro.

Il primo passaggio è il cloud-init OEM, che viene inserito nell'immagine per impostare il networking e altre funzionalità richieste per quel provider. Questo viene fatto per EC2, Rackspace, Google Compute Engine, ecc. Poiché hanno tutti requisiti diversi. Puoi vedere questi file on Github.

Il secondo passaggio è il pass di dati utente, che viene gestito in modo diverso per provider. Ad esempio, EC2 consente all'utente di inserire testo libero nella propria interfaccia utente, che è memorizzata nel loro servizio di metadati. L'OEM EC2 ha un'unità che legge questi metadati e passa alla seconda esecuzione di cloud-init. Su Rackspace/Openstack, config-drive viene usato per montare un filesystem di sola lettura che contiene i dati dell'utente. Gli OEM di Rackspace e Openstack sanno montare e cercare il file di dati utente in quella posizione.

L'ultima versione di CoreOS dispone anche di un flag per recuperare un file remoto da valutare per l'avvio PXE.

Il CoreOS distribution docs ha anche qualche altro dettaglio.

+0

Risposta straordinaria, grazie! Soprattutto il suggerimento sull'OEM e sui passaggi dei dati degli utenti è stato estremamente utile :-)). Grazie mille per il vostro aiuto! –

+0

Così vagabondo spedisce un'unità speciale nel file vm box 'coreos-cloudinit-vagrant-user.path'. Quindi le uniche unità predefinite per caricare un user-config sono per un'unità di configurazione e 'coreos-install'? – bara