[{"data":1,"prerenderedAt":716},["ShallowReactive",2],{"/de-de/blog/using-ansible-and-gitlab-as-infrastructure-for-code/":3,"navigation-de-de":38,"banner-de-de":457,"footer-de-de":470,"Brad Downey-Sara Kassabian":679,"next-steps-de-de":701},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":28,"_id":31,"_type":32,"title":33,"_source":34,"_file":35,"_stem":36,"_extension":37},"/de-de/blog/using-ansible-and-gitlab-as-infrastructure-for-code","blog",false,"",{"ogTitle":9,"schema":10,"ogImage":11,"ogDescription":12,"ogSiteName":13,"noIndex":6,"ogType":14,"ogUrl":15,"title":9,"canonicalUrls":15,"description":12},"Konfigurationsmanagement mit GitLab und Ansible | Ein Leitfaden","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Konfigurationsmanagement mit GitLab und Ansible\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brad Downey\"},{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-07-01\",\n      }","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665322/Blog/Hero%20Images/gitlab-ansible-cover.png","Wir zeigen dir, wie das Konfigurationsmanagement mit GitLab und Ansible funktioniert! ✓ Definition ✓ Einstellungen ✓ Anleitung ✓ Demo ➤Jetzt Tutorial lesen!","https://about.gitlab.com","article","https://about.gitlab.com/blog/using-ansible-and-gitlab-as-infrastructure-for-code",{"title":17,"description":18,"authors":19,"heroImage":11,"date":22,"body":23,"category":24,"tags":25},"Konfigurationsmanagement mit GitLab und Ansible","Entdecke die beeindruckende Leistungsfähigkeit von GitLab CI, wenn es darum geht, Ansible-Playbooks im Rahmen von Infrastructure as Code umzusetzen.",[20,21],"Brad Downey","Sara Kassabian","2019-07-01","[GitLab CI](https://about.gitlab.com/de-de/solutions/continuous-integration/\n\"GitLab CI\") ist ein vielseitiges Tool, das für eine Vielzahl von\nAufgabenbereichen wie [Infrastructure as\nCode](https://about.gitlab.com/topics/gitops/infrastructure-as-code/\n\"Infrastructure as Code\") und\n[GitOps](https://about.gitlab.com/de-de/topics/gitops/ \"GitOps\") eingesetzt\nwerden kann. Eine der Eigenschaften von GitLab ist seine Unabhängigkeit von\nspezifischen Tools. In dieser Demonstration liegt der Fokus auf Ansible, da\nviele Entwickler(innen) dieses Tool für Konfigurationsmanagement bevorzugen.\n\n\n## Was ist Ansible?\n\n\nAnsible ist ein Open-Source-Automatisierungstool, das für die Bereitstellung, Konfiguration und Verwaltung von Computersystemen genutzt wird. Es gehört zur Kategorie der Konfigurationsmanagement-Tools. Entwickler(innen) und Systemadministrator(inn)en können damit komplexe, wiederholbare Prozesse wie Serverkonfiguration, Anwendungsbereitstellung und Netzwerkgerätemanagement automatisieren. Ansible verwendet YAML, um deklarative Aufgabenbeschreibungen zu erstellen, bekannt als Playbooks. Diese beschreiben den gewünschten Systemzustand, den Ansible durch SSH-Verbindungen zu den Zielhosts erreicht, um Befehle auszuführen.\n\n\n## Demo: GitLab CI und Ansible\n\n\nEine Funktion von GitLab CI ist die Möglichkeit, den Code aus dem Ansible-Playbook zu bearbeiten und bereitzustellen, ohne lokale Abhängigkeiten zu installieren. So kann das Demo-Projekt, das eine monatliche Aktualisierung der SNMP-Strings auf allen Geräten gemäß unseren Sicherheitsrichtlinien erfordert, problemlos auf [GitLab.com](https://about.gitlab.com/de-de/pricing/ \"GitLab Pricing\") durchgeführt werden.\n\n\nBeginnen Sie, indem Sie das Ansible-Playbook öffnen, das vier Aufgaben beinhaltet:\n\n\n- Erfassen der Router-Fakten\n\n- Anzeigen der Version\n\n- Anzeigen der Seriennummer\n\n- Konfigurieren von SNMP\n\n\nDer Schwerpunkt dieser Demo liegt auf der Konfiguration der SNMP-Strings, die in einer einfachen Reihe von Schritten durchgeführt werden kann.\n\n\n## Zu Beginn: das Issue Board\n\n\nJeder Plan bei GitLab beginnt an derselben Stelle: mit einem Problem. Der erste Schritt im GitLab-Workflows besteht darin, das Issue Board des [„ansible-demo“-Projekts (auf Englisch)](https://gitlab.com/bdowney/ansible-demo/-/boards \"ansible-demo\") zu überprüfen. Dort sehen wir bereits ein Issue zur Änderung der SNMP-Strings auf allen Routern. Das Issue verweist auf das GitLab-Sicherheitsrichtlinien-Wiki, das besagt, dass SNMP-Strings monatlich geändert werden müssen und unterschiedliche Strings für „read-only“ und „read-write“ erforderlich sind.\n\n\n![Security policies](https://about.gitlab.com/images/blogimages/ansible_screenshots/security_policies_1A.png){: .shadow.medium.center}\n\n\nGemäß unserer GitLab-Sicherheitsrichtlinien müssen die SNMP-Strings monatlich aktualisiert werden. Als Nächstes prüfst du, ob die Befehle zur Konfiguration der SNMP-Strings in der [Zwei-Router-Demo (auf Englisch)](https://gitlab.com/bdowney/ansible-demo/blob/master/ci-cd-demo/ci.yml \"Zwei-Router-Demo\") den in diesem Issue beschriebenen GitLab-Sicherheitsrichtlinien entsprechen.\n\n\n![Ansible SNMP change](https://about.gitlab.com/images/blogimages/ansible_screenshots/ansible_snmp_change_2.png){: .shadow.medium.center}\n\n\nDie Befehle zur Konfiguration der SNMP-Strings findest du im Ansible-Playbook.\n\n\nGeh danach zurück zum Issue und weise es dir selbst zu. Ändere in der rechten Seitenleiste des Issues oder indem du es zwischen den Spalten des Issue Boards von „to-do“ auf „doing“ ziehst.\n\n\n## Merge Request erstellen\n\n\nAls Nächstes erstellst du einen Merge Request (MR) für das Issue. Stelle sicher, dass du das Kennzeichen „Draft“ deinem MR hinzufügst, damit er nicht vorzeitig mit dem Master zusammengeführt wird. Statt eine lokale Verbindung herzustellen, nutze die Web IDE von GitLab, da die Änderungen an den SNMP-Strings minimal sind. \n\n\n- Öffne den CI/CD-Demo-Bereich\n\n- Rufe das Ansible-Playbook auf\n\n- Bearbeite den SNMP-Abschnitt wie folgt:\n\n```\n\n-snmp-server community New-SNMP-DEMO1 RO\n\n\n-snmp-server community Fun-SNMP-RW-STR RW\n\n```\n\n- Achte darauf, dass read-only (RO) und read-write (RW) auf unterschiedliche Strings gemäß den GitLab-Sicherheitsrichtlinien gesetzt sind, wie sie im Issue beschrieben werden.\n\n\n## Änderungen übertragen\n\n\nNachdem du den SNMP-String gemäß den Richtlinien aktualisiert hast, committe die Änderungen. Öffne den Seite-an-Seite-Vergleich der Änderungen, um zu sehen, dass der MR mit deinem letzten Commit aktualisiert wurde.\n\n\n![Commit changes](https://about.gitlab.com/images/blogimages/ansible_screenshots/side-by-side_3.png){: .shadow.medium.center}\n\n\nDer Seite-an-Seite-Vergleich ist eine einfache Möglichkeit, deine Änderungen zu visualisieren.\n\n\n## Ausgabe des Merge-Request\n\n\nDurch den Commit der Änderungen wird automatisch eine GitLab CI-Pipeline gestartet. Diese führt beispielsweise folgende Aufgaben durch:\n\n\n- Syntaxprüfung\n\n- Dry Run\n\n- Testen der Änderungen in einer Labor-/Simulationsumgebung\n\n\nDu kannst den Fortschritt und die Ausgabe jedes Auftrags in der GitLab-CI-Pipeline anzeigen, um die SNMP-Aktualisierungen durchzuführen.\n\n\n![Job running](https://about.gitlab.com/images/blogimages/ansible_screenshots/job_running_4.png){: .shadow.medium.center}\n\n\nSchau dir die Ergebnisse deines Auftrags an, die zeigen, dass die SNMP-Aktualisierungen in der simulierten Umgebung erfolgreich waren. Alle diese Aufgaben werden im Merge Request durchgeführt und dokumentiert.\n\n\n![Pipeline](https://about.gitlab.com/images/blogimages/ansible_screenshots/pipeline_5A.png){: .shadow.medium.center}\n\n\nDie grünen Häkchen zeigen an, dass jeder Job in der GitLab CI-Pipeline erfolgreich abgeschlossen wurde. Anschließend kannst du dich auf den Lab-Routern einloggen und die durchgeführten Änderungen sehen.\n\n\n![routers snmp](https://about.gitlab.com/images/blogimages/ansible_screenshots/routersnmp_6.png){: .shadow.medium.center}\n\n\nDie Änderungen an den RO- und RW-SNMP-Strings werden in den Routern berücksichtigt.\n\n\n## MR-Review\n\n\nEine weitere Möglichkeit besteht darin, MR-Approvals zu aktivieren. Dadurch haben mehr Benutzer(innen) die Chance, Änderungen zu überprüfen, bevor sie in die Produktionsumgebung übernommen werden.\n\n\n![approvers](https://about.gitlab.com/images/blogimages/ansible_screenshots/approvers_7.png){: .shadow.medium.center}\n\n\nDu kannst den MR so einstellen, dass eine andere Person deine Arbeit überprüfen muss, bevor sie in den Master-Branch übernommen wird.\n\n\n## Merge in den Master-Branch\n\n\nSobald die Tests abgeschlossen sind, können die Änderungen in den Master-Branch übernommen werden, welcher den Code der Produktionsumgebung enthält.\n\nWenn du bereit bist, klickst du auf die Schaltfläche Mark as ready (Als bereit markieren). Anschließend klickst du auf `Merge`.\n\n\nDurch das Auflösen des WIP-Status kann der MR zusammengeführt und das Issue abgeschlossen werden.\n\n\nNun startet eine neue Pipeline, die alle durchgeführten Tests erneut ausführt, mit dem zusätzlichen Schritt, das Playbook in der Produktionsumgebung auszuführen.\n\n\nDu kannst den Fortschritt und die Protokolle auf dem „Pipelines“-Seite anzeigen. Sobald dieser Prozess abgeschlossen ist, kannst du dich bei deinen Produktionsroutern anmelden und sehen, dass die SNMP-Sicherheitsstrings aktualisiert wurden.\n\n\n## Die Magie von GitLab CI\n\n\nDie Magie, die all dies möglich gemacht hat, ist GitLab CI. GitLab CI-Pipelines sind eine Reihe von aufeinanderfolgenden Aufgaben, die alles ausführen, was du zum Testen und Implementieren deines Ansible-Codes benötigst.\n\n\nGitLab CI wird mit einer einzigen einfachen YAML-Datei konfiguriert, die im Repository unter dem Namen `.gitlab-ci.yml` zu finden ist.\n\nIn dieser Demo siehst du, dass die `.gitlab-ci.yml` Datei drei Schritte beinhaltet:\n\n\n1. Deploy: Damit wird das Zwei-Router-Simulationsnetzwerk in AWS mithilfe von Ansible erstellt.\n\n2. Demo: Damit wird das Playbook ausgeführt, das die SNMP-Strings ändert.\n\n3. Destroy: Hiermit wird das Zwei-Router-Simulationsnetzwerk zerstört.\n\n\nGitLab CI startet mit einem Basis-Image. In diesem Fall verwenden wir ein Docker-Image, das alle erforderlichen Ansible-Binärdateien und Abhängigkeiten enthält. Wir geben die Befehle an, die in jeder Phase ausgeführt werden sollen, und die Abhängigkeiten, soweit erforderlich.\n\n\n![More code](https://about.gitlab.com/images/blogimages/ansible_screenshots/more_code_9A.png){: .shadow.medium.center}\n\n\nEine einfache YAML-Datei enthält die drei Phasen des GitLab-CI.\n\n\n![More Code](https://about.gitlab.com/images/blogimages/ansible_screenshots/more_code_10A.png){: .shadow.medium.center}\n\n\nEin Blick in die Demostufe von GitLab CI, die das Ansible-Playbook ausführt.\n\n\nWenn du dir die Pipelines ansiehst, kannst du sehen, wie GitLab CI verwendet wird, um Konfigurationsmanagement umzusetzen, ohne Ansible auf deinem Computer installieren zu müssen. Dies ist nur ein Beispiel dafür, wie GitLab CI genutzt werden kann, um Infrastruktur als Code auszuführen. Schau dir das Video unten an, um das vollständige Tutorial zu sehen:\n\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/M-SgRTKSeOg\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- blank line -->\n\n\n## FAQ – Häufig gestellte Fragen\n\n\n### Wie nutze ich den Ansible Tower?\n\n\nAnsible Tower ist eine webbasierte Benutzeroberfläche und eine Enterprise-Ergänzung zu Ansible, die zusätzliche Funktionen zur Automatisierung, Verwaltung und Überwachung von Ansible-Umgebungen bietet. Teams können mit Ansible Tower ihre Automatisierungsprozesse zentralisieren, Zugriffskontrollen verwalten, Zeitpläne für Aufgaben erstellen, Berichte generieren und mehr. Es erleichtert die Skalierung und den Einsatz von Ansible in großen Umgebungen und bietet eine benutzerfreundliche Oberfläche für die Automatisierung von IT-Abläufen.\n\n\n### Was ist der Ansible GitLab Runner?\n\n\nEin Ansible GitLab Runner ist ein integraler Bestandteil des GitLab CI/CD-Ökosystems, der speziell für die Ausführung von Ansible-Playbooks entwickelt wurde. Er ist ein Prozess, der von GitLab genutzt wird, um Jobs in CI/CD-Pipelines auszuführen. Entwickler(innen) können einen GitLab Runner so konfigurieren, dass er Ansible-Playbooks auf den Zielhosts ausführt, was es ermöglicht, die Infrastruktur automatisiert und ohne zusätzliche Ressourcen zu verwalten.\n","engineering",[26,27],"demo","CI/CD",{"slug":29,"featured":6,"template":30},"using-ansible-and-gitlab-as-infrastructure-for-code","BlogPost","content:de-de:blog:using-ansible-and-gitlab-as-infrastructure-for-code.yml","yaml","Using Ansible And Gitlab As Infrastructure For Code","content","de-de/blog/using-ansible-and-gitlab-as-infrastructure-for-code.yml","de-de/blog/using-ansible-and-gitlab-as-infrastructure-for-code","yml",{"_path":39,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":41,"_id":453,"_type":32,"title":454,"_source":34,"_file":455,"_stem":456,"_extension":37},"/shared/de-de/main-navigation","de-de",{"logo":42,"freeTrial":47,"sales":52,"login":57,"items":62,"search":394,"minimal":430,"duo":444},{"config":43},{"href":44,"dataGaName":45,"dataGaLocation":46},"/de-de/","gitlab logo","header",{"text":48,"config":49},"Kostenlose Testversion anfordern",{"href":50,"dataGaName":51,"dataGaLocation":46},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":53,"config":54},"Vertrieb kontaktieren",{"href":55,"dataGaName":56,"dataGaLocation":46},"/de-de/sales/","sales",{"text":58,"config":59},"Anmelden",{"href":60,"dataGaName":61,"dataGaLocation":46},"https://gitlab.com/users/sign_in/","sign in",[63,107,205,210,315,375],{"text":64,"config":65,"cards":67,"footer":90},"Plattform",{"dataNavLevelOne":66},"platform",[68,74,82],{"title":64,"description":69,"link":70},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":71,"config":72},"Erkunde unsere Plattform",{"href":73,"dataGaName":66,"dataGaLocation":46},"/de-de/platform/",{"title":75,"description":76,"link":77},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":78,"config":79},"Lerne GitLab Duo kennen",{"href":80,"dataGaName":81,"dataGaLocation":46},"/de-de/gitlab-duo/","gitlab duo ai",{"title":83,"description":84,"link":85},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":86,"config":87},"Mehr erfahren",{"href":88,"dataGaName":89,"dataGaLocation":46},"/de-de/why-gitlab/","why gitlab",{"title":91,"items":92},"Erste Schritte mit",[93,98,103],{"text":94,"config":95},"Platform Engineering",{"href":96,"dataGaName":97,"dataGaLocation":46},"/de-de/solutions/platform-engineering/","platform engineering",{"text":99,"config":100},"Entwicklererfahrung",{"href":101,"dataGaName":102,"dataGaLocation":46},"/de-de/developer-experience/","Developer experience",{"text":104,"config":105},"MLOps",{"href":106,"dataGaName":104,"dataGaLocation":46},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":108,"left":109,"config":110,"link":112,"lists":116,"footer":187},"Produkt",true,{"dataNavLevelOne":111},"solutions",{"text":113,"config":114},"Alle Lösungen anzeigen",{"href":115,"dataGaName":111,"dataGaLocation":46},"/de-de/solutions/",[117,142,165],{"title":118,"description":119,"link":120,"items":125},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":121},{"icon":122,"href":123,"dataGaName":124,"dataGaLocation":46},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[126,129,133,138],{"text":27,"config":127},{"href":128,"dataGaLocation":46,"dataGaName":27},"/de-de/solutions/continuous-integration/",{"text":130,"config":131},"KI-unterstützte Entwicklung",{"href":80,"dataGaLocation":46,"dataGaName":132},"AI assisted development",{"text":134,"config":135},"Quellcodeverwaltung",{"href":136,"dataGaLocation":46,"dataGaName":137},"/de-de/solutions/source-code-management/","Source Code Management",{"text":139,"config":140},"Automatisierte Softwarebereitstellung",{"href":123,"dataGaLocation":46,"dataGaName":141},"Automated software delivery",{"title":143,"description":144,"link":145,"items":150},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":146},{"href":147,"dataGaName":148,"dataGaLocation":46,"icon":149},"/de-de/solutions/security-compliance/","security and compliance","ShieldCheckLight",[151,156,161],{"text":152,"config":153},"Application Security Testing",{"href":154,"dataGaName":155,"dataGaLocation":46},"/solutions/application-security-testing/","Application security testing",{"text":157,"config":158},"Schutz der Software-Lieferkette",{"href":159,"dataGaLocation":46,"dataGaName":160},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":162,"config":163},"Software Compliance",{"href":164,"dataGaName":162,"dataGaLocation":46},"/solutions/software-compliance/",{"title":166,"link":167,"items":172},"Bewertung",{"config":168},{"icon":169,"href":170,"dataGaName":171,"dataGaLocation":46},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[173,177,182],{"text":174,"config":175},"Sichtbarkeit und Bewertung",{"href":170,"dataGaLocation":46,"dataGaName":176},"Visibility and Measurement",{"text":178,"config":179},"Wertstrommanagement",{"href":180,"dataGaLocation":46,"dataGaName":181},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":183,"config":184},"Analysen und Einblicke",{"href":185,"dataGaLocation":46,"dataGaName":186},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":188,"items":189},"GitLab für",[190,195,200],{"text":191,"config":192},"Enterprise",{"href":193,"dataGaLocation":46,"dataGaName":194},"/de-de/enterprise/","enterprise",{"text":196,"config":197},"Kleinunternehmen",{"href":198,"dataGaLocation":46,"dataGaName":199},"/de-de/small-business/","small business",{"text":201,"config":202},"den öffentlichen Sektor",{"href":203,"dataGaLocation":46,"dataGaName":204},"/de-de/solutions/public-sector/","public sector",{"text":206,"config":207},"Preise",{"href":208,"dataGaName":209,"dataGaLocation":46,"dataNavLevelOne":209},"/de-de/pricing/","pricing",{"text":211,"config":212,"link":214,"lists":218,"feature":302},"Ressourcen",{"dataNavLevelOne":213},"resources",{"text":215,"config":216},"Alle Ressourcen anzeigen",{"href":217,"dataGaName":213,"dataGaLocation":46},"/de-de/resources/",[219,252,274],{"title":220,"items":221},"Erste Schritte",[222,227,232,237,242,247],{"text":223,"config":224},"Installieren",{"href":225,"dataGaName":226,"dataGaLocation":46},"/de-de/install/","install",{"text":228,"config":229},"Kurzanleitungen",{"href":230,"dataGaName":231,"dataGaLocation":46},"/de-de/get-started/","quick setup checklists",{"text":233,"config":234},"Lernen",{"href":235,"dataGaLocation":46,"dataGaName":236},"https://university.gitlab.com/","learn",{"text":238,"config":239},"Produktdokumentation",{"href":240,"dataGaName":241,"dataGaLocation":46},"https://docs.gitlab.com/","product documentation",{"text":243,"config":244},"Best-Practice-Videos",{"href":245,"dataGaName":246,"dataGaLocation":46},"/de-de/getting-started-videos/","best practice videos",{"text":248,"config":249},"Integrationen",{"href":250,"dataGaName":251,"dataGaLocation":46},"/de-de/integrations/","integrations",{"title":253,"items":254},"Entdecken",[255,260,264,269],{"text":256,"config":257},"Kundenerfolge",{"href":258,"dataGaName":259,"dataGaLocation":46},"/de-de/customers/","customer success stories",{"text":261,"config":262},"Blog",{"href":263,"dataGaName":5,"dataGaLocation":46},"/de-de/blog/",{"text":265,"config":266},"Remote",{"href":267,"dataGaName":268,"dataGaLocation":46},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":270,"config":271},"TeamOps",{"href":272,"dataGaName":273,"dataGaLocation":46},"/de-de/teamops/","teamops",{"title":275,"items":276},"Vernetzen",[277,282,287,292,297],{"text":278,"config":279},"GitLab-Services",{"href":280,"dataGaName":281,"dataGaLocation":46},"/de-de/services/","services",{"text":283,"config":284},"Community",{"href":285,"dataGaName":286,"dataGaLocation":46},"/community/","community",{"text":288,"config":289},"Forum",{"href":290,"dataGaName":291,"dataGaLocation":46},"https://forum.gitlab.com/","forum",{"text":293,"config":294},"Veranstaltungen",{"href":295,"dataGaName":296,"dataGaLocation":46},"/events/","events",{"text":298,"config":299},"Partner",{"href":300,"dataGaName":301,"dataGaLocation":46},"/partners/","partners",{"backgroundColor":303,"textColor":304,"text":305,"image":306,"link":310},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":307,"config":308},"the source promo card",{"src":309},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":311,"config":312},"Lies die News",{"href":313,"dataGaName":314,"dataGaLocation":46},"/de-de/the-source/","the source",{"text":316,"config":317,"lists":319},"Unternehmen",{"dataNavLevelOne":318},"company",[320],{"items":321},[322,327,333,335,340,345,350,355,360,365,370],{"text":323,"config":324},"Über",{"href":325,"dataGaName":326,"dataGaLocation":46},"/de-de/company/","about",{"text":328,"config":329,"footerGa":332},"Karriere",{"href":330,"dataGaName":331,"dataGaLocation":46},"/jobs/","jobs",{"dataGaName":331},{"text":293,"config":334},{"href":295,"dataGaName":296,"dataGaLocation":46},{"text":336,"config":337},"Geschäftsführung",{"href":338,"dataGaName":339,"dataGaLocation":46},"/company/team/e-group/","leadership",{"text":341,"config":342},"Team",{"href":343,"dataGaName":344,"dataGaLocation":46},"/company/team/","team",{"text":346,"config":347},"Handbuch",{"href":348,"dataGaName":349,"dataGaLocation":46},"https://handbook.gitlab.com/","handbook",{"text":351,"config":352},"Investor Relations",{"href":353,"dataGaName":354,"dataGaLocation":46},"https://ir.gitlab.com/","investor relations",{"text":356,"config":357},"Trust Center",{"href":358,"dataGaName":359,"dataGaLocation":46},"/de-de/security/","trust center",{"text":361,"config":362},"AI Transparency Center",{"href":363,"dataGaName":364,"dataGaLocation":46},"/de-de/ai-transparency-center/","ai transparency center",{"text":366,"config":367},"Newsletter",{"href":368,"dataGaName":369,"dataGaLocation":46},"/company/contact/","newsletter",{"text":371,"config":372},"Presse",{"href":373,"dataGaName":374,"dataGaLocation":46},"/press/","press",{"text":376,"config":377,"lists":378},"Kontakt",{"dataNavLevelOne":318},[379],{"items":380},[381,384,389],{"text":53,"config":382},{"href":55,"dataGaName":383,"dataGaLocation":46},"talk to sales",{"text":385,"config":386},"Support",{"href":387,"dataGaName":388,"dataGaLocation":46},"/support/","get help",{"text":390,"config":391},"Kundenportal",{"href":392,"dataGaName":393,"dataGaLocation":46},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":395,"login":396,"suggestions":403},"Schließen",{"text":397,"link":398},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":399,"config":400},"gitlab.com",{"href":60,"dataGaName":401,"dataGaLocation":402},"search login","search",{"text":404,"default":405},"Vorschläge",[406,409,414,416,421,426],{"text":75,"config":407},{"href":80,"dataGaName":408,"dataGaLocation":402},"GitLab Duo (AI)",{"text":410,"config":411},"Code Suggestions (KI)",{"href":412,"dataGaName":413,"dataGaLocation":402},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":27,"config":415},{"href":128,"dataGaName":27,"dataGaLocation":402},{"text":417,"config":418},"GitLab auf AWS",{"href":419,"dataGaName":420,"dataGaLocation":402},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":422,"config":423},"GitLab auf Google Cloud",{"href":424,"dataGaName":425,"dataGaLocation":402},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":427,"config":428},"Warum GitLab?",{"href":88,"dataGaName":429,"dataGaLocation":402},"Why GitLab?",{"freeTrial":431,"mobileIcon":436,"desktopIcon":441},{"text":432,"config":433},"Kostenlos testen",{"href":434,"dataGaName":51,"dataGaLocation":435},"https://gitlab.com/-/trials/new/","nav",{"altText":437,"config":438},"GitLab-Symbol",{"src":439,"dataGaName":440,"dataGaLocation":435},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":437,"config":442},{"src":443,"dataGaName":440,"dataGaLocation":435},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":445,"mobileIcon":449,"desktopIcon":451},{"text":446,"config":447},"Erfahre mehr über GitLab Duo",{"href":80,"dataGaName":448,"dataGaLocation":435},"gitlab duo",{"altText":437,"config":450},{"src":439,"dataGaName":440,"dataGaLocation":435},{"altText":437,"config":452},{"src":443,"dataGaName":440,"dataGaLocation":435},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":458,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"title":459,"button":460,"config":465,"_id":467,"_type":32,"_source":34,"_file":468,"_stem":469,"_extension":37},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":461,"config":462},"Beta testen",{"href":463,"dataGaName":464,"dataGaLocation":46},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":466},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":471,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":472,"_id":675,"_type":32,"title":676,"_source":34,"_file":677,"_stem":678,"_extension":37},"/shared/de-de/main-footer",{"text":473,"source":474,"edit":480,"contribute":485,"config":490,"items":495,"minimal":667},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":475,"config":476},"Quelltext der Seite anzeigen",{"href":477,"dataGaName":478,"dataGaLocation":479},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":481,"config":482},"Diese Seite bearbeiten",{"href":483,"dataGaName":484,"dataGaLocation":479},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":486,"config":487},"Beteilige dich",{"href":488,"dataGaName":489,"dataGaLocation":479},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":491,"facebook":492,"youtube":493,"linkedin":494},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[496,519,574,603,637],{"title":64,"links":497,"subMenu":502},[498],{"text":499,"config":500},"DevSecOps-Plattform",{"href":73,"dataGaName":501,"dataGaLocation":479},"devsecops platform",[503],{"title":206,"links":504},[505,509,514],{"text":506,"config":507},"Tarife anzeigen",{"href":208,"dataGaName":508,"dataGaLocation":479},"view plans",{"text":510,"config":511},"Vorteile von Premium",{"href":512,"dataGaName":513,"dataGaLocation":479},"/de-de/pricing/premium/","why premium",{"text":515,"config":516},"Vorteile von Ultimate",{"href":517,"dataGaName":518,"dataGaLocation":479},"/de-de/pricing/ultimate/","why ultimate",{"title":520,"links":521},"Lösungen",[522,527,530,532,537,542,546,549,552,557,559,561,564,569],{"text":523,"config":524},"Digitale Transformation",{"href":525,"dataGaName":526,"dataGaLocation":479},"/de-de/topics/digital-transformation/","digital transformation",{"text":528,"config":529},"Sicherheit und Compliance",{"href":154,"dataGaName":155,"dataGaLocation":479},{"text":139,"config":531},{"href":123,"dataGaName":124,"dataGaLocation":479},{"text":533,"config":534},"Agile Entwicklung",{"href":535,"dataGaName":536,"dataGaLocation":479},"/de-de/solutions/agile-delivery/","agile delivery",{"text":538,"config":539},"Cloud-Transformation",{"href":540,"dataGaName":541,"dataGaLocation":479},"/de-de/topics/cloud-native/","cloud transformation",{"text":543,"config":544},"SCM",{"href":136,"dataGaName":545,"dataGaLocation":479},"source code management",{"text":27,"config":547},{"href":128,"dataGaName":548,"dataGaLocation":479},"continuous integration & delivery",{"text":178,"config":550},{"href":180,"dataGaName":551,"dataGaLocation":479},"value stream management",{"text":553,"config":554},"GitOps",{"href":555,"dataGaName":556,"dataGaLocation":479},"/de-de/solutions/gitops/","gitops",{"text":191,"config":558},{"href":193,"dataGaName":194,"dataGaLocation":479},{"text":196,"config":560},{"href":198,"dataGaName":199,"dataGaLocation":479},{"text":562,"config":563},"Öffentlicher Sektor",{"href":203,"dataGaName":204,"dataGaLocation":479},{"text":565,"config":566},"Bildungswesen",{"href":567,"dataGaName":568,"dataGaLocation":479},"/de-de/solutions/education/","education",{"text":570,"config":571},"Finanzdienstleistungen",{"href":572,"dataGaName":573,"dataGaLocation":479},"/de-de/solutions/finance/","financial services",{"title":211,"links":575},[576,578,580,582,585,587,589,591,593,595,597,599,601],{"text":223,"config":577},{"href":225,"dataGaName":226,"dataGaLocation":479},{"text":228,"config":579},{"href":230,"dataGaName":231,"dataGaLocation":479},{"text":233,"config":581},{"href":235,"dataGaName":236,"dataGaLocation":479},{"text":238,"config":583},{"href":240,"dataGaName":584,"dataGaLocation":479},"docs",{"text":261,"config":586},{"href":263,"dataGaName":5,"dataGaLocation":479},{"text":256,"config":588},{"href":258,"dataGaName":259,"dataGaLocation":479},{"text":265,"config":590},{"href":267,"dataGaName":268,"dataGaLocation":479},{"text":278,"config":592},{"href":280,"dataGaName":281,"dataGaLocation":479},{"text":270,"config":594},{"href":272,"dataGaName":273,"dataGaLocation":479},{"text":283,"config":596},{"href":285,"dataGaName":286,"dataGaLocation":479},{"text":288,"config":598},{"href":290,"dataGaName":291,"dataGaLocation":479},{"text":293,"config":600},{"href":295,"dataGaName":296,"dataGaLocation":479},{"text":298,"config":602},{"href":300,"dataGaName":301,"dataGaLocation":479},{"title":316,"links":604},[605,607,609,611,613,615,617,621,626,628,630,632],{"text":323,"config":606},{"href":325,"dataGaName":318,"dataGaLocation":479},{"text":328,"config":608},{"href":330,"dataGaName":331,"dataGaLocation":479},{"text":336,"config":610},{"href":338,"dataGaName":339,"dataGaLocation":479},{"text":341,"config":612},{"href":343,"dataGaName":344,"dataGaLocation":479},{"text":346,"config":614},{"href":348,"dataGaName":349,"dataGaLocation":479},{"text":351,"config":616},{"href":353,"dataGaName":354,"dataGaLocation":479},{"text":618,"config":619},"Sustainability",{"href":620,"dataGaName":618,"dataGaLocation":479},"/sustainability/",{"text":622,"config":623},"Vielfalt, Inklusion und Zugehörigkeit",{"href":624,"dataGaName":625,"dataGaLocation":479},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":356,"config":627},{"href":358,"dataGaName":359,"dataGaLocation":479},{"text":366,"config":629},{"href":368,"dataGaName":369,"dataGaLocation":479},{"text":371,"config":631},{"href":373,"dataGaName":374,"dataGaLocation":479},{"text":633,"config":634},"Transparenzerklärung zu moderner Sklaverei",{"href":635,"dataGaName":636,"dataGaLocation":479},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":638,"links":639},"Nimm Kontakt auf",[640,643,645,647,652,657,662],{"text":641,"config":642},"Sprich mit einem Experten/einer Expertin",{"href":55,"dataGaName":56,"dataGaLocation":479},{"text":385,"config":644},{"href":387,"dataGaName":388,"dataGaLocation":479},{"text":390,"config":646},{"href":392,"dataGaName":393,"dataGaLocation":479},{"text":648,"config":649},"Status",{"href":650,"dataGaName":651,"dataGaLocation":479},"https://status.gitlab.com/","status",{"text":653,"config":654},"Nutzungsbedingungen",{"href":655,"dataGaName":656,"dataGaLocation":479},"/terms/","terms of use",{"text":658,"config":659},"Datenschutzerklärung",{"href":660,"dataGaName":661,"dataGaLocation":479},"/de-de/privacy/","privacy statement",{"text":663,"config":664},"Cookie-Einstellungen",{"dataGaName":665,"dataGaLocation":479,"id":666,"isOneTrustButton":109},"cookie preferences","ot-sdk-btn",{"items":668},[669,671,673],{"text":653,"config":670},{"href":655,"dataGaName":656,"dataGaLocation":479},{"text":658,"config":672},{"href":660,"dataGaName":661,"dataGaLocation":479},{"text":663,"config":674},{"dataGaName":665,"dataGaLocation":479,"id":666,"isOneTrustButton":109},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",[680,692],{"_path":681,"_dir":682,"_draft":6,"_partial":6,"_locale":7,"content":683,"config":687,"_id":689,"_type":32,"title":20,"_source":34,"_file":690,"_stem":691,"_extension":37},"/en-us/blog/authors/brad-downey","authors",{"name":20,"config":684},{"headshot":685,"ctfId":686},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","6b6RTu6832NFEju2zKJhbE",{"template":688},"BlogAuthor","content:en-us:blog:authors:brad-downey.yml","en-us/blog/authors/brad-downey.yml","en-us/blog/authors/brad-downey",{"_path":693,"_dir":682,"_draft":6,"_partial":6,"_locale":7,"content":694,"config":697,"_id":698,"_type":32,"title":21,"_source":34,"_file":699,"_stem":700,"_extension":37},"/en-us/blog/authors/sara-kassabian",{"name":21,"config":695},{"headshot":7,"ctfId":696},"skassabian",{"template":688},"content:en-us:blog:authors:sara-kassabian.yml","en-us/blog/authors/sara-kassabian.yml","en-us/blog/authors/sara-kassabian",{"_path":702,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"header":703,"eyebrow":704,"blurb":705,"button":706,"secondaryButton":710,"_id":712,"_type":32,"title":713,"_source":34,"_file":714,"_stem":715,"_extension":37},"/shared/de-de/next-steps","Stelle jetzt bessere Software schneller bereit","Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab","Erlebe, was dein Team mit der intelligenten\n\n\nDevSecOps-Plattform erreichen kann.\n",{"text":48,"config":707},{"href":708,"dataGaName":51,"dataGaLocation":709},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":53,"config":711},{"href":55,"dataGaName":56,"dataGaLocation":709},"content:shared:de-de:next-steps.yml","Next Steps","shared/de-de/next-steps.yml","shared/de-de/next-steps",1759347802478]