{"id":13782,"date":"2022-05-11T03:17:06","date_gmt":"2022-05-11T01:17:06","guid":{"rendered":"https:\/\/contabo.com\/blog\/?p=13782"},"modified":"2022-05-20T01:38:42","modified_gmt":"2022-05-19T23:38:42","slug":"was-ist-cloud-init","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/de\/was-ist-cloud-init\/","title":{"rendered":"Was ist Cloud-Init und warum ist es so cool?"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init.jpg\" alt=\"Cloud-Init Header Bild\" class=\"wp-image-13793\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init.jpg 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init-600x315.jpg 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init-768x403.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Das Aufsetzen einer neuen Cloud-Instanz kann sehr zeitintensiv sein, besonders wenn viele Programme installiert und konfiguriert werden m\u00fcssen. Mit Cloud-Init geh\u00f6rt dieses Problem der Vergangenheit an.<\/p>\n\n\n\n<p>Cloud-Init ist eine Software, die f\u00fcr Cloud-Server-Instanzen entwickelt wurde und den Server automatisch anhand der bereitgestellten Metadaten einrichtet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wie funktioniert Cloud-init?<\/h2>\n\n\n\n<p>Cloud-Init richtet Deine Cloud-Instanz so ein, wie es in der Konfigurationsdatei angegeben wurde. Solltest Du bereits mit Docker vertraut sein, ist die Cloud-Init Konfigurationsdatei \u00e4hnlich wie ein Dockerfile und die Cloud-Instanz \u00e4hnlich wie ein Container. Die Cloud-Init Konfigurationsdatei ist im YAML-Format geschrieben und dient als Vorlage f\u00fcr neue Cloud-Instanzen. Hier ist ein Beispiel einer solchen cloud.cfg:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#cloud-config\nusers:\n    - default\ndisable_root: true\npreserve_hostname: false\napt_preserve_sources_list: true\nsystem_info:\n   distro: debian\n   default_user:\n      name: debian\n      lock_passwd: True\n      gecos: Debian\n      groups: &#91;adm, audio, cdrom, dialout, dip, floppy, netdev, plugdev, sudo, video]\n      sudo: &#91;\"ALL=(ALL) NOPASSWD:ALL\"]\n      shell: \/bin\/bash\n   paths:\n      cloud_dir: \/var\/lib\/cloud\/\n      templates_dir: \/etc\/cloud\/templates\/\n      upstart_dir: \/etc\/init\/\n   package_mirrors:\n     - arches: &#91;default]\n       failsafe:\n         primary: http:\/\/deb.debian.org\/debian\n         security: http:\/\/security.debian.org\/\n   ssh_svcname: ssh\nbootcmd:\n  - echo \u201cHello world!\u201d &gt; \/home\/hello.txt\npackages:\n  - vim\n  - git\n  - htop\n<\/code><\/pre>\n\n\n\n<p>Diese Konfigurationsdatei sorgt daf\u00fcr, dass die Pakete <em>vim, git <\/em>und <em>htop<\/em> installiert werden. Zudem wird die Datei <em>\/home\/hello.txt <\/em>erstellt, welche den Satz \u201eHello world!\u201c beinhaltet. Zudem wird, wie in <em>system_info<\/em> beschrieben, ein Standardbenutzer erstellt und der root-Benutzer deaktiviert.<\/p>\n\n\n\n<p>Zudem gibt es <a href=\"https:\/\/cloudinit.readthedocs.io\/en\/latest\/topics\/modules.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">viele Module<\/a>, mit denen Du Deinen Server genau so konfigurieren kannst, wie Du ihn brauchst. So kannst Du z.B. das <em><a href=\"https:\/\/cloudinit.readthedocs.io\/en\/latest\/topics\/modules.html#bootcmd\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">bootcmd<\/a><\/em>-Modul benutzen, um w\u00e4hrend des Bootvorgangs benutzerdefinierte Befehle auszuf\u00fchren, oder um benutzerdefinierte Benutzer zu erstellen und denen durch das <em><a href=\"https:\/\/cloudinit.readthedocs.io\/en\/latest\/topics\/modules.html#users-and-groups\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">users-and-groups<\/a>&#8211;<\/em>Modul Gruppen zuzuweisen.<\/p>\n\n\n\n<p>Weitere Beispiele von Cloud-Init Konfigurationsdateien findest Du <a href=\"https:\/\/cloudinit.readthedocs.io\/en\/latest\/topics\/examples.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">hier<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ich habe Docker, wozu also Cloud-Init?<\/h2>\n\n\n\n<p>Wenn es um das Replizieren von Umgebungen geht denkst Du vielleicht eher an <a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Docker <\/a>als an Cloud-Init. Das Gute ist allerdings, dass Du Dich nicht zwischen den beiden entscheiden musst. Um Docker zu benutzen, muss Docker zun\u00e4chst auf deinem Server installiert und konfiguriert werden. Hier kommt Cloud-Init ins Spiel. Wenn Du also einen neuen Server aufsetzt, kannst Du <a href=\"https:\/\/jameskiefer.com\/posts\/manage-a-docker-container-on-an-ubuntu-vm-using-just-cloud-init\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Cloud-Init nutzen, um Docker zu installieren und zu konfigurieren<\/a> und schon kannst Du Docker ganz normal nutzen, um Deine Programme auszuf\u00fchren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cloud-Init bei Contabo<\/h2>\n\n\n\n<p>Unsere Kunden hier bei Contabo k\u00f6nnen Cloud-Init mit Ihrem <a href=\"https:\/\/contabo.com\/de\/vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">VPS<\/a> oder <a href=\"https:\/\/contabo.com\/de\/vds\/\" target=\"_blank\" rel=\"noreferrer noopener\">VDS<\/a> nutzen. Am besten geht dies \u00fcber die <a href=\"https:\/\/api.contabo.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Contabo API<\/a>. Mit dieser API ist es m\u00f6glich, Deine Cloud-Init Konfiguration direkt bei der Bestellung eines VPS hochzuladen. Sobald Dein VPS fertig ist, wurde die Konfiguration bereits angewendet und der Server ist bereit. Zudem ist es auch m\u00f6glich, Cloud-Init auf bereits bestehenden Servern zu aktivieren und diesen mit Cloud-Init neu zu installieren. In unserer <a href=\"https:\/\/api.contabo.com\/#operation\/createInstance\" target=\"_blank\" rel=\"noreferrer noopener\">API-Dokumentation<\/a> findest Du weitere Informationen bez\u00fcglich der Contabo REST API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vorteile von Cloud-Init<\/h2>\n\n\n\n<p>Cloud-Init kann weit \u00fcber die blo\u00dfe Einrichtung der Cloud-Instanz mit bestimmten Benutzern und Paketen hinaus verwendet werden. So kannst Du zum Beispiel eine ganze LAMP-Stack-Anwendung wie WordPress nur mit Cloud-Init einrichten. Mit der Contabo-API ist eine neue WordPress-Installation nur einen API-Aufruf entfernt.<\/p>\n\n\n\n<p>Das bedeutet auch, dass das Erstellen mehrerer Maschinen mit derselben Konfiguration und Software keine gro\u00dfe Sache mehr ist. Du erstellst einmal eine Cloud-Init-Konfiguration und kannst sie immer wieder verwenden. Mit dieser Technik gibt es also keinen Grund mehr, alle Instanzen manuell zu konfigurieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wiederherstellung im Notfall<\/h3>\n\n\n\n<p>Die Neuinstallation eines Servers kann im Notfall n\u00f6tig sein, da Dein Projekt z.B.&nbsp; mehrere Instanzen gleichzeitig ben\u00f6tigt, um die Arbeitslast zu bew\u00e4ltigen. Sollte also ein Server ausfallen kannst Du Cloud-Init dazu verwenden, neue Instanzen mit der erforderlichen Konfiguration und Software schnell einsatzbereit zu machen. Mit Cloud-Init ist das schnelle Wiederherstellen bestimmter Umgebungen kein Problem mehr. In solchen Notsituationen ist Zeit die wichtigste Ressource und mit Cloud-Init sparst Du eben diese bei der Neuinstallation eines Servers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cluster und Kubernetes<\/h3>\n\n\n\n<p>In einem Cluster gibt es mehrere Knoten (Nodes) bzw. Server, welche bestimmte Aufgaben ausf\u00fchren und schnell auf sich \u00e4ndernde Arbeitslasten reagieren k\u00f6nnen. Doch selbst in einem Cluster kann es fr\u00fcher oder sp\u00e4ter dazu kommen, dass Deine aktuelle Serverkonfiguration nicht mehr ausreicht, um alle Aufgaben bew\u00e4ltigen zu k\u00f6nnen. Dieser Fall kann schneller eintreten als Du denkst. Genau in so einem Fall ist es wichtig, schnell handeln zu k\u00f6nnen. Auch hier kommt Cloud-Init zur Hilfe, indem es die neuen Knoten automatisch anhand der zentralen Konfigurationsdatei einrichtet, so dass keine manuelle Konfiguration der einzelnen Nodes mehr notwendig ist.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Cloud-Init ist die Installation eines neuen Server so leicht wie noch nie: \u00c4hnlich wie bei Docker legst du Metadaten in einer Konfigurationsdatei fest, l\u00e4dst diese hoch und der Server wir so erstellt und konfiguriert, wie in der Config festgelegt. Cloud-Init bietet aber noch weitere Vorteile.<\/p>\n","protected":false},"author":50,"featured_media":13793,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1399],"tags":[],"ppma_author":[1491],"class_list":["post-13782","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init.jpg",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init-150x150.jpg",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init-600x315.jpg",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init-768x403.jpg",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init.jpg",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init.jpg",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/05\/blog-head_1200x630_cloud-init.jpg",1200,630,false]},"uagb_author_info":{"display_name":"Tobias Mildenberger","author_link":"https:\/\/contabo.com\/blog\/de\/author\/tobias\/"},"uagb_comment_info":0,"uagb_excerpt":"Mit Cloud-Init ist die Installation eines neuen Server so leicht wie noch nie: \u00c4hnlich wie bei Docker legst du Metadaten in einer Konfigurationsdatei fest, l\u00e4dst diese hoch und der Server wir so erstellt und konfiguriert, wie in der Config festgelegt. Cloud-Init bietet aber noch weitere Vorteile.","authors":[{"term_id":1491,"user_id":50,"is_guest":0,"slug":"tobias","display_name":"Tobias Mildenberger","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/077178d5dce6c3d4c0c0396857a7e544bfdf8adf04145fff5160b33a22e28b1f?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/13782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=13782"}],"version-history":[{"count":0,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/13782\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media\/13793"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=13782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=13782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=13782"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/ppma_author?post=13782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}