2014-04-23 13 views
10

Ich beschäftige mich derzeit mit CoreOS, und bis jetzt glaube ich, dass ich die allgemeine Idee und das Konzept bekommen habe. Eine Sache, die ich noch nicht bekommen habe, ist die Ausführung von cloud-init.Wann läuft cloud-init und wie findet es seine Daten?

Ich verstehe, dass cloud-init ist ein Prozess, der einige Konfiguration für CoreOS. Was ich noch nicht verstehe ist ...

  • Wann läuft CoreOS cloud-init? Beim ersten Start? Auf jedem Boot? ...?
  • Woher weiß cloud-init, wo die Konfigurationsdaten zu finden sind? Ich habe gesehen, dass es config-drive gibt und das macht total Sinn, aber ist das der einzige Weg? Was genau ist die Rolle der user-data Datei? ...?

Antwort

15

CoreOS startet Cloudinit einige Male während des Startvorgangs. Momentan passiert dies bei jedem Boot, aber diese Funktionalität kann sich in Zukunft ändern.

Der erste Durchlauf ist der OEM cloud-init, der in das Image eingebunden wird, um Netzwerk- und andere für diesen Anbieter erforderliche Funktionen einzurichten. Dies geschieht für EC2, Rackspace, Google Compute Engine usw., da alle unterschiedliche Anforderungen haben. Sie können diese Dateien sehen on Github.

Der zweite Durchlauf ist der Benutzer-Daten-Pass, der pro Provider unterschiedlich gehandhabt wird. Zum Beispiel ermöglicht EC2 dem Benutzer die Eingabe von Freiform-Text auf seiner Benutzeroberfläche, die in seinem Metadatendienst gespeichert ist. Der EC2-OEM verfügt über eine Einheit, die diese Metadaten liest und an den zweiten cloud-init-Lauf weiterleitet. Bei Rackspace/Openstack wird config-drive verwendet, um ein schreibgeschütztes Dateisystem zu mounten, das die Benutzerdaten enthält. Die Rackspace- und Openstack-OEMs wissen, dass sie die Benutzerdatendatei an diesem Speicherort bereitstellen und suchen müssen.

Die neueste Version von CoreOS verfügt auch über ein Flag zum Abrufen einer Remote-Datei, die für die Verwendung mit PXE-Booten ausgewertet werden soll.

Die CoreOS distribution docs haben ein paar weitere Details.

+0

Super Antwort, danke! Vor allem der Hinweis auf die OEM- und User-Data-Pässe war sehr hilfreich :-)). Vielen Dank für deine Hilfe! –

+0

So vagrant Schiffe eine spezielle Einheit in der vm-Box 'coreos-cloudinit-vagrant-user.path'. Dann die einzigen Standardeinheiten, um eine Benutzer-Konfiguration zu laden, sind für ein Config-Laufwerk und 'coreos-install'? – bara