{"id":1084,"date":"2025-05-22T12:09:02","date_gmt":"2025-05-22T10:09:02","guid":{"rendered":"https:\/\/chrisengelhard.nl\/ansible-best-practices-und-security-wann-du-es-einsetzen-solltest-und-wann-nicht\/"},"modified":"2026-05-04T19:27:32","modified_gmt":"2026-05-04T17:27:32","slug":"ansible-best-practices-und-security-wann-du-es-einsetzen-solltest-und-wann-nicht","status":"publish","type":"post","link":"https:\/\/chrisengelhard.nl\/de\/ansible-best-practices-und-security-wann-du-es-einsetzen-solltest-und-wann-nicht\/","title":{"rendered":"Ansible Best Practices und Security: Wann du es einsetzen solltest und wann nicht"},"content":{"rendered":"\n<div id=\"inhoudsopgave\"><\/div><section class=\"wp-block-greenshift-blocks-container gspb_container gspb_container-gsbp-d15c2ca\" id=\"gspb_container-id-gsbp-d15c2ca\">\n<p><strong>Inhaltsverzeichnis<\/strong><\/p>\n\n\n\n\n<div class=\"wp-block-greenshift-blocks-toc gs-toc gspb_toc-id-gsbp-754f43d\" id=\"gspb_toc-id-gsbp-754f43d\" itemscope itemtype=\"https:\/\/schema.org\/ItemList\"><div class=\"gs-autolist\"><div class=\"gs-autolist-item\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">1<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"Was steckt hinter der Idee des SSH-Monitorings mit Ansible?\"\/><a class=\"gs-scrollto\" href=\"#was-steckt-hinter-der-idee-des-ssh-monitorings-mit-ansible\">Was steckt hinter der Idee des SSH-Monitorings mit Ansible?<\/a><\/span><\/div><div class=\"gs-autolist-item\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">2<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"Warum ist das problematisch?\"\/><a class=\"gs-scrollto\" href=\"#warum-ist-das-problematisch\">Warum ist das problematisch?<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">2.1<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"1. Sicherheitsrisiken\"\/><a class=\"gs-scrollto\" href=\"#1-sicherheitsrisiken\">1. Sicherheitsrisiken<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">2.2<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"2. Ineffizienz und Verzogerung\"\/><a class=\"gs-scrollto\" href=\"#2-ineffizienz-und-verzogerung\">2. Ineffizienz und Verzogerung<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">2.3<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"3. Kein Real-Time-Monitoring\"\/><a class=\"gs-scrollto\" href=\"#3-kein-real-time-monitoring\">3. Kein Real-Time-Monitoring<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">2.4<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"4. Schlechte Skalierbarkeit\"\/><a class=\"gs-scrollto\" href=\"#4-schlechte-skalierbarkeit\">4. Schlechte Skalierbarkeit<\/a><\/span><\/div><div class=\"gs-autolist-item\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">3<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"Warum bewerben Influencer das?\"\/><a class=\"gs-scrollto\" href=\"#warum-bewerben-influencer-das\">Warum bewerben Influencer das?<\/a><\/span><\/div><div class=\"gs-autolist-item\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">4<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"Wann du Ansible laut Best Practices einsetzen solltest\"\/><a class=\"gs-scrollto\" href=\"#wann-du-ansible-laut-best-practices-einsetzen-solltest\">Wann du Ansible laut Best Practices einsetzen solltest<\/a><\/span><\/div><div class=\"gs-autolist-item\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">5<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"Was nutzt du stattdessen fur Monitoring?\"\/><a class=\"gs-scrollto\" href=\"#was-nutzt-du-stattdessen-fur-monitoring\">Was nutzt du stattdessen fur Monitoring?<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">5.1<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"1. Lightweight-Agents\"\/><a class=\"gs-scrollto\" href=\"#1-lightweight-agents\">1. Lightweight-Agents<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">5.2<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"2. Monitoring-Stacks\"\/><a class=\"gs-scrollto\" href=\"#2-monitoring-stacks\">2. Monitoring-Stacks<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">5.3<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"3. Push-basiertes Logging\"\/><a class=\"gs-scrollto\" href=\"#3-push-basiertes-logging\">3. Push-basiertes Logging<\/a><\/span><\/div><div class=\"gs-autolist-item gs_sub_heading\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">5.4<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"4. Sicherheit\"\/><a class=\"gs-scrollto\" href=\"#4-sicherheit\">4. Sicherheit<\/a><\/span><\/div><div class=\"gs-autolist-item\" itemscope itemprop=\"itemListElement\" itemtype=\"https:\/\/schema.org\/ListItem\"><span class=\"gs-autolist-number\">6<\/span><span class=\"gs-autolist-title\"><meta itemprop=\"name\" content=\"Fazit\"\/><a class=\"gs-scrollto\" href=\"#fazit\">Fazit<\/a><\/span><\/div><\/div><\/div>\n<\/section>\n\n<p>Ansible Best Practices sind entscheidend fur jeden, der Infrastruktur sicher und effizient automatisieren mochte. Obwohl Ansible ein leistungsstarkes Werkzeug ist, ist es wichtig zu wissen, wann es geeignet ist und wann nicht. In diesem Blog behandeln wir diese Momente und beleuchten ein haufig verwendetes Beispiel: SSH-basiertes Monitoring mit Ansible. Dieses Beispiel wird oft von Influencern in ihren Homelabs beworben, birgt jedoch Fallstricke, die du in Produktionsumgebungen besser vermeidest.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<p>[<a href=\"#inhoudsopgave\" data-type=\"internal\" data-id=\"#inhoudsopgave\" rel=\"nofollow\">nach oben<\/a>]<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"wat-is-het-idee-achter-ssh-monitoring-met-ansible\">Was steckt hinter der Idee des SSH-Monitorings mit Ansible?<\/h2>\n\n<p>Man sieht es immer haufiger: Influencer auf YouTube und anderen Social-Media-Kanalen \u2014 oft aus ihrem Homelab \u2014 zeigen, wie man mit Ansible, kombiniert mit Cronjobs oder Schedulern, periodisch uber SSH sich auf Remote-Systeme einloggt. Dieser Ansatz wird als einfache und schnelle Methode prasentiert, um Basismetriken wie Speicher- und Festplattennutzung zu uberwachen.<\/p>\n\n<p>So funktioniert es:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Ein Cronjob auf einer zentralen Maschine startet regelmasig ein Ansible-Playbook.<\/li>\n\n\n\n<li>Dieses Playbook verbindet sich uber SSH mit verschiedenen Servern.<\/li>\n\n\n\n<li>Uber einfache Shell-Befehle (<code>free -m<\/code>, <code>df -h<\/code>, <code>uptime<\/code>) werden Systemstatistiken gesammelt.<\/li>\n\n\n\n<li>Die Ergebnisse werden geloggt oder uber E-Mail oder Chat-Tools geteilt.<\/li>\n<\/ul>\n\n<p>Obwohl dies eine zugaengliche Methode zu sein scheint, ist sie vor allem fur kleine Homelabs und nicht fur Produktionsumgebungen geeignet. Sie entspricht namlich nicht den Ansible Best Practices, insbesondere im Bereich Sicherheit und Skalierbarkeit.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<p>[<a href=\"#inhoudsopgave\" data-type=\"internal\" data-id=\"#inhoudsopgave\" rel=\"nofollow\">nach oben<\/a>]<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"waarom-is-dit-problematisch\">Warum ist das problematisch?<\/h2>\n\n<h3 class=\"wp-block-heading\" id=\"1-securityrisicos\">1. Sicherheitsrisiken<\/h3>\n\n<p>Diese Vorgehensweise erfordert haufig, dass du SSH-Schlussel ohne Passphrase verwendest und dass der Monitoring-Benutzer Sudo-Zugang ohne Passwort erhalt. Dies offnet grosse Schwachstellen: Eine einzige Kompromittierung des Ansible-Controllers kann vollen Zugang zu deiner gesamten Infrastruktur bedeuten. Dies widerspricht den Prinzipien des geringsten Privilegs und der sicheren Automatisierung, den Kernpunkten der Ansible Best Practices.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"2-inefficientie-en-vertraging\">2. Ineffizienz und Verzogerung<\/h3>\n\n<p>SSH-Verbindungen sind durch Handshakes und Authentifizierung relativ ressourcenintensiv. Bei Dutzenden oder Hunderten von Systemen kann dies zu hohen Latenzen und Verzogerungen bei der Datenerfassung fuhren. Die Polling-Frequenz ist dadurch begrenzt, sodass du moglicherweise kritische Spitzen und Einbruche verpasst.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"3-geen-real-time-monitoring\">3. Kein Real-Time-Monitoring<\/h3>\n\n<p>Monitoring sollte idealerweise kontinuierlich und ereignisgesteuert sein, basierend auf Zeitreihen. Die SSH-Pull-Methode liefert lediglich Snapshots, keine fliessenden Einblicke in Trends oder Abweichungen. Dies beschrankt deine Moglichkeiten, schnell auf Vorfalle zu reagieren.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"4-slechte-schaalbaarheid\">4. Schlechte Skalierbarkeit<\/h3>\n\n<p>Fur eine Handvoll Server funktioniert diese Methode noch, aber bei Wachstum auf Dutzende oder Hunderte von Systemen entstehen Probleme mit SSH-Concurrency, Cronjob-Uberschneidungen und der Verwaltung von Logdateien.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<p>[<a href=\"#inhoudsopgave\" data-type=\"internal\" data-id=\"#inhoudsopgave\" rel=\"nofollow\">nach oben<\/a>]<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"waarom-promoten-influencers-dit\">Warum bewerben Influencer das?<\/h2>\n\n<p>Die Popularitat dieses Ansatzes unter Influencern kommt vor allem daher, dass er einfach zu erstellen und zu demonstrieren ist. Ein kurzes Ansible-Playbook und sichtbare Terminal-Ausgabe sind attraktiv fur Tutorials und Demos. Allerdings wird oft nicht erwahnt, dass dies in erster Linie eine Homelab-Losung ist, bei der Sicherheit und Skalierbarkeit weniger kritisch sind. Fur Produktionsumgebungen ist dies keine Best Practice.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<p>[<a href=\"#inhoudsopgave\" data-type=\"internal\" data-id=\"#inhoudsopgave\" rel=\"nofollow\">nach oben<\/a>]<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"wanneer-ansible-wel-gebruiken-volgens-best-practices\">Wann du Ansible laut Best Practices einsetzen solltest<\/h2>\n\n<p>Ansible glanzt in:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Konfigurationsmanagement (Pakete, Services, Konfigurationen).<\/li>\n\n\n\n<li>Provisionierung von Infrastruktur (Cloud, Container).<\/li>\n\n\n\n<li>Orchestrierung von Workflows und Multi-Step-Deploys.<\/li>\n\n\n\n<li>Einmalige oder periodische Aufgaben wie Updates und Patches.<\/li>\n<\/ul>\n\n<p>Verwende Ansible vor allem fur deklarative, wiederholbare Prozesse und nicht fur kontinuierliches Monitoring oder Polling.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<p>[<a href=\"#inhoudsopgave\" data-type=\"internal\" data-id=\"#inhoudsopgave\" rel=\"nofollow\">nach oben<\/a>]<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"wat-gebruik-je-dan-wel-voor-monitoring\">Was nutzt du stattdessen fur Monitoring?<\/h2>\n\n<h3 class=\"wp-block-heading\" id=\"1-lightweight-agents\">1. Lightweight-Agents<\/h3>\n\n<p>Installiere Agents wie Netdata, Node Exporter, Zabbix Agent oder Telegraf auf deinen Servern. Diese laufen mit minimalen Berechtigungen und senden Metriken sicher an einen zentralen Server.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"2-monitoring-stacks\">2. Monitoring-Stacks<\/h3>\n\n<p>Baue eine Monitoring-Umgebung mit Tools wie Prometheus + Grafana, Zabbix, Elastic Stack oder Netdata Cloud.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"3-push-based-logging\">3. Push-basiertes Logging<\/h3>\n\n<p>Lass Systeme Logs und Metriken aktiv uber Tools wie Rsyslog, Filebeat oder Vector.dev senden, anstatt sie uber SSH zu pullen.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"4-beveiliging\">4. Sicherheit<\/h3>\n\n<p>Sorge dafur, dass Monitoring-Konten minimale Berechtigungen haben, sichere Datenstrome mit TLS, uberwache auch deine Monitoring-Infrastruktur selbst und beschranke den Dashboard-Zugang.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<p>[<a href=\"#inhoudsopgave\" data-type=\"internal\" data-id=\"#inhoudsopgave\" rel=\"nofollow\">nach oben<\/a>]<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"conclusie\">Fazit<\/h2>\n\n<p>Ansible Best Practices helfen dir, deine Automatisierung sicher, skalierbar und zuverlassig zu halten. SSH-basiertes Monitoring uber Ansible, wie es oft in Homelabs gezeigt wird, ist nur fur Demos und kleinsetups geeignet. Fur ernsthafte Produktionsumgebungen wahlst du spezialisierte Monitoring-Tools und minimierst Risiken durch sichere, moderne Architekturen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Entdecke in diesem Blog die Best Practices fur die Nutzung von Ansible, einschliesslich Sicherheitsaspekte. Lerne, wann du Ansible einsetzen solltest und wann besser nicht.<\/p>\n","protected":false},"author":1,"featured_media":984,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_gspb_post_css":".gspb_container-id-gsbp-d15c2ca{flex-direction:column;box-sizing:border-box}#gspb_container-id-gsbp-d15c2ca.gspb_container>p:last-of-type{margin-bottom:0}#gspb_container-id-gsbp-d15c2ca.gspb_container{position:relative}.gs-autolist{margin:15px 0 30px;border:1px solid #dddddd7d}.gs-autolist-item{padding:15px 15px 15px 5px;display:flex;align-items:center}.gs-autolist-title,.gs-autolist-title a{font-size:18px;line-height:24px;text-decoration:none}.gs-autolist-item.gs_sub_heading{padding:10px 15px 10px 35px}#gspb_toc-id-gsbp-754f43d .gs-autolist-item{background-color:var(--wp--preset--color--mantle, #181825)}#gspb_toc-id-gsbp-754f43d .gs-autolist-item:nth-child(2n){background-color:var(--wp--preset--color--base, #1e1e2e)}#gspb_toc-id-gsbp-754f43d .gs-autolist-number{border-radius:50%;color:#fff;margin:0 20px 0 15px;text-align:center;font-weight:700;color:var(--wp--preset--color--secondary, #fab387);height:25px;line-height:25px;width:25px;font-size:16px;min-width:25px}#gspb_toc-id-gsbp-754f43d .gs_sub_heading .gs-autolist-number{font-size:70%}","footnotes":""},"categories":[74,73,9],"tags":[32,37],"class_list":["post-1084","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation","category-best-practices","category-neu","tag-best-practices","tag-security"],"_links":{"self":[{"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/posts\/1084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/comments?post=1084"}],"version-history":[{"count":11,"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/posts\/1084\/revisions"}],"predecessor-version":[{"id":1474,"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/posts\/1084\/revisions\/1474"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/media\/984"}],"wp:attachment":[{"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/media?parent=1084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/categories?post=1084"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chrisengelhard.nl\/de\/wp-json\/wp\/v2\/tags?post=1084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}