[{"data":1,"prerenderedAt":754},["ShallowReactive",2],{"/de-de/topics/gitops/gitlab-enables-infrastructure-as-code/":3,"navigation-de-de":99,"banner-de-de":519,"footer-de-de":531,"next-steps-de-de":739},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":13,"_id":93,"_type":94,"title":7,"_source":95,"_file":96,"_stem":97,"_extension":98},"/de-de/topics/gitops/gitlab-enables-infrastructure-as-code","gitops",false,"",{"title":9,"description":10,"config":11},"Wie Teams GitLab und Terraform für Infrastructure as Code nutzen: Eine Demo","GitLab Topics | How teams use GitLab and Terraform for infrastructure as code: A demo",{"ignoreTitleCharLimit":12},true,[14,28,34,91],{"type":15,"componentName":15,"componentContent":16},"CommonBreadcrumbs",{"crumbs":17},[18,22,26],{"title":19,"config":20},"Industry topics",{"href":21},"/topics/",{"title":23,"config":24},"GitOps",{"href":25},"/de-de/topics/gitops/",{"title":27},"Gitlab enables infrastructure as code",{"type":29,"componentName":29,"componentContent":30},"TopicsHero",{"title":9,"text":31,"config":32},"Diese Demo zeigt, wie man eine gute GitOps-Vorgehensweise befolgt, um Infrastructure as Code mit Terraform für die Automatisierung und GitLab als Single Source Of Truth bereitzustellen.\n",{"id":33,"twoColumns":6},"wie-teams-gitlab-und-terraform-für-infrastructure-as-code-nutzen:-eine-demo",{"type":35,"componentName":35,"componentContent":36},"CommonSideNavigationWithTree",{"anchors":37,"components":60},{"text":38,"data":39},"Mehr zu diesem Thema",[40,44,48,52,56],{"text":41,"config":42},"Erfahre, wie GitLab Infrastructure as Code ermöglicht",{"href":43},"#learn-how-git-lab-enables-infrastructure-as-code",{"text":45,"config":46},"Erstelle deine Infrastruktur als Code in GitLab",{"href":47},"#building-your-infrastructure-as-code-in-git-lab",{"text":49,"config":50},"Innerhalb der Infrastruktur-Untergruppe",{"href":51},"#inside-the-infrastructure-subgroup",{"text":53,"config":54},"Bereitstellen von Code mit GitLab CI",{"href":55},"#deploying-code-using-git-lab-ci",{"text":57,"config":58},"Möchtest du mehr über GitOps erfahren?",{"href":59},"#ready-to-learn-more-about-git-ops",[61,66,71,76,81,86],{"type":62,"componentName":62,"componentContent":63},"TopicsCopy",{"text":64,"config":65},"Wenn mehrere Teams ein Git-Repository als einzige Quelle der Wahrheit für den gesamten [Infrastruktur-](/blog/using-ansible-and-gitlab-as-infrastructure-for-code/){data-ga-name=\"infrastructure\" data-ga-location=\"body\"} und Anwendungsbereitstellungscode verwenden, ist das eine gute GitOps-Vorgehensweise. Infrastrukturteams können zusammenarbeiten und mit Terraform Code für mehrere Cloud-Dienste für die Automatisierung bereitstellen. Dieser Artikel zeigt, wie Teams einen Kubernetes-Cluster erstellen können, indem sie mit Teamkolleg(inn)en in GitLab zusammenarbeiten.\n",{"id":7},{"type":62,"componentName":62,"componentContent":67},{"header":41,"text":68,"config":69},"Diese Demo zeigt, wie man eine gute GitOps-Vorgehensweise befolgt, um Infrastructure as Code mit Terraform für die Automatisierung und GitLab als Single Source Of Truth (und CI) bereitzustellen.\n",{"id":70},"learn-how-git-lab-enables-infrastructure-as-code",{"type":62,"componentName":62,"componentContent":72},{"header":45,"text":73,"config":74},"### Erste Schritte\n\n_Die [Gruppe gitops-demo](https://gitlab.com/gitops-demo) veranschaulicht die Schritte, die Infrastrukturteams befolgen können._\n\nMelde dich zunächst in der Gruppe an, in der sich das Projekt in GitLab befindet. Im nächsten Schritt öffnest du die Datei [README.md](https://gitlab.com/gitops-demo/readme/blob/master/README.md), die die zugrunde liegende Struktur der Gruppe gitops-demo zeigt. Es gibt einige Einzelprojekte und zwei Untergruppen: **[Infrastruktur](https://gitlab.com/gitops-demo/infra)** und **[Anwendungen](https://gitlab.com/gitops-demo/apps)**.\n",{"id":75},"building-your-infrastructure-as-code-in-git-lab",{"type":62,"componentName":62,"componentContent":77},{"header":49,"text":78,"config":79},"Es gibt ein separates Repository für jede Cloud: Azure, GCP und AWS sowie ein Repository für Vorlagen.\nÄhnliche Dateien findest du in allen drei [Cloud](/blog/gitlab-ci-cd-is-for-multi-cloud/){data-ga-name=\"cloud\" data-ga-location=\"body\"}-Repositories. Alle Dateien werden in Terraform geschrieben, um den Bereitstellungsprozess zu automatisieren. Außerdem wird im Repository auch eine Datei mit dem Namen `gitlab-ci.yml` gespeichert, die Anweisungen für die Automatisierung enthält.\n\n### Die Backend-Datei\n\nMit dem [Terraform-Cloud-Service](https://www.hashicorp.com/blog/announcing-terraform-cloud) von HashiCorp als Remote-Standort für die Statusdatei wird die Statusdatei sicher und an einem zentralen Ort aufbewahrt, sodass jeder Prozess auf sie zugreifen kann. Ein Vorteil von Terraform Cloud ist die Möglichkeit, den Status zu sperren, um sicherzustellen, dass immer nur ein Job ausgeführt werden kann. Dadurch wird verhindert, dass unterschiedliche Jobs widersprüchliche Änderungen vornehmen. Der Code speichert die Statusdateien in der [Terraform Cloud](https://app.terraform.io) in einer Organisation namens `gitops-demo` in einem Arbeitsbereich namens `aws`. Dadurch bleibt der Cloud-Anbieter im Status „Wird ausgeführt“, so dass jedes Teammitglied jederzeit Zugriff darauf hat.\n```\nterraform {\n  backend \"remote\" {\n    hostname = \"app.terraform.io\"\n    organization = \"gitops-demo\"\n    workspaces {\n      name = \"aws\"\n    }\n  }\n}\n```\n{: .language-ruby}\n### EKS.tf file\n\nEKS ist eine weitere Terraform-Datei, die das EKS-Modul für den Terraform-Cluster nutzt.\n\nTeams können Parameter wie die Art der Subnetze und die Anzahl der Knoten in der EKS-Terraform-Datei festlegen.\n\n```\nmodule \"eks\" {\n  source           = \"terraform-aws-modules/eks/aws\"\n  cluster_name     = \"gitops-demo-eks\"\n  subnets          = \"${module.vpc.public_subnets}\"\n  write_kubeconfig = \"false\"\n  tags = {\n    Terraform   = \"true\"\n    Environment = \"dev\"\n  }\n  vpc_id = \"${module.vpc.vpc_id}\"\n  worker_groups = [\n    {\n      instance_type = \"m4.large\"\n      asg_max_size  = 5\n      tags = [{\n        key                 = \"Terraform\"\n        value               = \"true\"\n        propagate_at_launch = true\n      }]\n    }\n  ]\n}\n```\n{: .language-ruby}\n\n### GitLab-Admin definieren\n\nMit dem Kubernetes-Anbieter kannst du ein Benutzerkonto für eine(n) GitLab-Administrator(in) erstellen und [automatisch als Code und von Terraform verwaltet](https://gitlab.com/gitops-demo/infra/aws/blob/master/gitlab-admin.tf) einrichten.\n\n### Registrierung des Clusters bei GitLab\n\nJetzt, wo ein Kubernetes-Cluster erstellt wurde, ist es an der Zeit, ihn bei GitLab zu registrieren, damit in Zukunft mehr Code für den Cluster bereitgestellt werden kann. Der erste Schritt besteht darin, mit dem GitLab-Anbieter einen Gruppencluster namens AWS-Cluster zu erstellen.\n\n```\ndata \"gitlab_group\" \"gitops-demo-apps\" {\n  full_path = \"gitops-demo/apps\"\n}\nprovider \"gitlab\" {\n  alias   = \"use-pre-release-plugin\"\n  version = \"v2.99.0\"\n}\nresource \"gitlab_group_cluster\" \"aws_cluster\" {\n  provider           = \"gitlab.use-pre-release-plugin\"\n  group              = \"${data.gitlab_group.gitops-demo-apps.id}\"\n  name               = \"${module.eks.cluster_id}\"\n  domain             = \"eks.gitops-demo.com\"\n  environment_scope  = \"eks/*\"\n  kubernetes_api_url = \"${module.eks.cluster_endpoint}\"\n  kubernetes_token   = \"${data.kubernetes_secret.gitlab-admin-token.data.token}\"\n  kubernetes_ca_cert = \"${trimspace(base64decode(module.eks.cluster_certificate_authority_data))}\"\n}\n```\n{: .language-ruby}\n\nCode enthält den Domänennamen, den Umgebungsbereich und die Kubernetes-Anmeldedat.\n\nNach der Ausführung wird der Cluster in AWS erstellt und automatisch in der Gruppe [gitops-demo/apps](https://gitlab.com/gitops-demo/apps) registriert.\n",{"id":80},"inside-the-infrastructure-subgroup",{"type":62,"componentName":62,"componentContent":82},{"header":53,"text":83,"config":84},"### Terraform-Vorlage\n\nKehr zur Infrastrukturgruppe zurück und öffne den Ordner „Vorlagen“. Wenn du dir die [Datei „terraform.gitlab-ci.yml“](https://gitlab.com/gitops-demo/infra/templates/blob/master/terraform.gitlab-ci.yml) ansiehst, kannst du sehen, wie CI bei der Bereitstellung von Infrastrukturcode in der Cloud mit Terraform funktioniert.\n\nIn der CI-Datei sehen die Teams verschiedene Phasen: validate (validieren), plan (planen), apply (anwenden) und destroy (zerstören). Mit dem Terraform-Basis-Image von Hashicorp können Benutzer(innen) verschiedene Aufgaben ausführen.\n\nDer erste Schritt ist die Initialisierung von Terraform.\n\n```\nbefore_script:\n  - terraform --version\n  - terraform init\n  - apk add --update curl\n  - curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/kubectl\n  - install kubectl /usr/local/bin/ && rm kubectl\n  - curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator\n  - install aws-iam-authenticator /usr/local/bin/ && rm aws-iam-authenticator\n```\n{: .language-ruby}\n\nIm nächsten Schritt musst du validieren, dass alles korrekt ist.\n\n```\nvalidate:\n  stage: validate\n  script:\n    - terraform validate\n    - terraform fmt -check=true\n  only:\n    - branches\n```\n{: .language-ruby}\n\nDenke daran, dass gute GitOps-Workflows das Erstellen eines [Merge Request](/blog/mr-reviews-with-vs-code/){data-ga-name=\"merge request\" data-ga-location=\"body\"} für die Änderungen beinhalten.\n\n```\nmerge review:\n  stage: plan\n  script:\n    - terraform plan -out=$PLAN\n    - echo \\`\\`\\`diff > plan.txt\n    - terraform show -no-color ${PLAN} | tee -a plan.txt\n    - echo \\`\\`\\` >> plan.txt\n    - sed -i -e 's/  +/+/g' plan.txt\n    - sed -i -e 's/  ~/~/g' plan.txt\n    - sed -i -e 's/  -/-/g' plan.txt\n    - MESSAGE=$(cat plan.txt)\n    - >-\n      curl -X POST -g -H \"PRIVATE-TOKEN: ${GITLAB_TOKEN}\"\n      --data-urlencode \"body=${MESSAGE}\"\n      \"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/merge_requests/${CI_MERGE_REQUEST_IID}/discussions\"\n  artifacts:\n    name: plan\n    paths:\n      - $PLAN\n  only:\n    - merge_requests\n```\n{: .language-ruby}\n\n### Der Merge Request\n\nDer [Merge Request (MR)](https://gitlab.com/gitops-demo/infra/aws/merge_requests/6){data-ga-name=\"MR\" data-ga-location=\"body\"} ist der wichtigste Schritt in GitOps. Dies ist der Prozess, um alle Änderungen zu überprüfen und die Auswirkungen dieser Änderungen zu sehen. Der MR ist auch ein [Kollaborationstool](/blog/merge-request-reviewers/){data-ga-name=\"collaboration tool\" data-ga-location=\"body\"}, in dem Teammitglieder Änderungen besprechen und Stakeholder Änderungen vor dem endgültigen Merge in den main-Branch genehmigen können.\n\nDer Merge Request legt fest, was passieren soll, wenn die Infrastruktur als Code (Infrastructure as Code) ausgeführt wird. Nachdem der MR erstellt wurde, wird der Terraform-Plan in den MR hochgeladen. Nachdem alle Änderungen geprüft und genehmigt wurden, kann der Code mit dem main-Branch zusammengeführt werden. Sobald die Codeänderungen zusammengeführt sind, werden alle Änderungen in der Produktion bereitgestellt.\n",{"id":85},"deploying-code-using-git-lab-ci",{"type":62,"componentName":62,"componentContent":87},{"header":57,"text":88,"config":89},"* [Was bedeutet Infrastructure as Code?](/topics/gitops/infrastructure-as-code/){data-ga-name=\"infrastructure as code\" data-ga-location=\"body\"}\n* [Was ist GitOps?](/topics/gitops/){data-ga-name=\"what is gitops\" data-ga-location=\"body\"}\n* [Erfahre, wie GitLab die Workflows von GitOps optimiert](/solutions/gitops/){data-ga-name=\"streamlines workflows\" data-ga-location=\"body\"}\n* [Entdecke die Zukunft von GitOps von Branchenführern](/why/gitops-infrastructure-automation/){data-ga-name=\"industry leaders\" data-ga-location=\"body\"}\n* [Lies den Einsteigerleitfaden zu GitOps](https://page.gitlab.com/resources-ebook-beginner-guide-gitops.html)\n",{"id":90},"ready-to-learn-more-about-git-ops",{"type":92,"componentName":92},"CommonNextSteps","content:de-de:topics:gitops:gitlab-enables-infrastructure-as-code:index.yml","yaml","content","de-de/topics/gitops/gitlab-enables-infrastructure-as-code/index.yml","de-de/topics/gitops/gitlab-enables-infrastructure-as-code/index","yml",{"_path":100,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"data":102,"_id":515,"_type":94,"title":516,"_source":95,"_file":517,"_stem":518,"_extension":98},"/shared/de-de/main-navigation","de-de",{"logo":103,"freeTrial":108,"sales":113,"login":118,"items":123,"search":456,"minimal":492,"duo":506},{"config":104},{"href":105,"dataGaName":106,"dataGaLocation":107},"/de-de/","gitlab logo","header",{"text":109,"config":110},"Kostenlose Testversion anfordern",{"href":111,"dataGaName":112,"dataGaLocation":107},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":114,"config":115},"Vertrieb kontaktieren",{"href":116,"dataGaName":117,"dataGaLocation":107},"/de-de/sales/","sales",{"text":119,"config":120},"Anmelden",{"href":121,"dataGaName":122,"dataGaLocation":107},"https://gitlab.com/users/sign_in/","sign in",[124,168,266,271,377,437],{"text":125,"config":126,"cards":128,"footer":151},"Plattform",{"dataNavLevelOne":127},"platform",[129,135,143],{"title":125,"description":130,"link":131},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":132,"config":133},"Erkunde unsere Plattform",{"href":134,"dataGaName":127,"dataGaLocation":107},"/de-de/platform/",{"title":136,"description":137,"link":138},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":139,"config":140},"Lerne GitLab Duo kennen",{"href":141,"dataGaName":142,"dataGaLocation":107},"/de-de/gitlab-duo/","gitlab duo ai",{"title":144,"description":145,"link":146},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":147,"config":148},"Mehr erfahren",{"href":149,"dataGaName":150,"dataGaLocation":107},"/de-de/why-gitlab/","why gitlab",{"title":152,"items":153},"Erste Schritte mit",[154,159,164],{"text":155,"config":156},"Platform Engineering",{"href":157,"dataGaName":158,"dataGaLocation":107},"/de-de/solutions/platform-engineering/","platform engineering",{"text":160,"config":161},"Entwicklererfahrung",{"href":162,"dataGaName":163,"dataGaLocation":107},"/de-de/developer-experience/","Developer experience",{"text":165,"config":166},"MLOps",{"href":167,"dataGaName":165,"dataGaLocation":107},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":169,"left":12,"config":170,"link":172,"lists":176,"footer":248},"Produkt",{"dataNavLevelOne":171},"solutions",{"text":173,"config":174},"Alle Lösungen anzeigen",{"href":175,"dataGaName":171,"dataGaLocation":107},"/de-de/solutions/",[177,203,226],{"title":178,"description":179,"link":180,"items":185},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":181},{"icon":182,"href":183,"dataGaName":184,"dataGaLocation":107},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[186,190,194,199],{"text":187,"config":188},"CI/CD",{"href":189,"dataGaLocation":107,"dataGaName":187},"/de-de/solutions/continuous-integration/",{"text":191,"config":192},"KI-unterstützte Entwicklung",{"href":141,"dataGaLocation":107,"dataGaName":193},"AI assisted development",{"text":195,"config":196},"Quellcodeverwaltung",{"href":197,"dataGaLocation":107,"dataGaName":198},"/de-de/solutions/source-code-management/","Source Code Management",{"text":200,"config":201},"Automatisierte Softwarebereitstellung",{"href":183,"dataGaLocation":107,"dataGaName":202},"Automated software delivery",{"title":204,"description":205,"link":206,"items":211},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":207},{"href":208,"dataGaName":209,"dataGaLocation":107,"icon":210},"/de-de/solutions/security-compliance/","security and compliance","ShieldCheckLight",[212,216,221],{"text":213,"config":214},"Sicherheit und Compliance",{"href":208,"dataGaLocation":107,"dataGaName":215},"Security & Compliance",{"text":217,"config":218},"Schutz der Software-Lieferkette",{"href":219,"dataGaLocation":107,"dataGaName":220},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":222,"config":223},"Compliance und Governance",{"href":224,"dataGaLocation":107,"dataGaName":225},"/de-de/solutions/continuous-software-compliance/","Compliance and governance",{"title":227,"link":228,"items":233},"Bewertung",{"config":229},{"icon":230,"href":231,"dataGaName":232,"dataGaLocation":107},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[234,238,243],{"text":235,"config":236},"Sichtbarkeit und Bewertung",{"href":231,"dataGaLocation":107,"dataGaName":237},"Visibility and Measurement",{"text":239,"config":240},"Wertstrommanagement",{"href":241,"dataGaLocation":107,"dataGaName":242},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":244,"config":245},"Analysen und Einblicke",{"href":246,"dataGaLocation":107,"dataGaName":247},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":249,"items":250},"GitLab für",[251,256,261],{"text":252,"config":253},"Enterprise",{"href":254,"dataGaLocation":107,"dataGaName":255},"/de-de/enterprise/","enterprise",{"text":257,"config":258},"Kleinunternehmen",{"href":259,"dataGaLocation":107,"dataGaName":260},"/de-de/small-business/","small business",{"text":262,"config":263},"den öffentlichen Sektor",{"href":264,"dataGaLocation":107,"dataGaName":265},"/de-de/solutions/public-sector/","public sector",{"text":267,"config":268},"Preise",{"href":269,"dataGaName":270,"dataGaLocation":107,"dataNavLevelOne":270},"/de-de/pricing/","pricing",{"text":272,"config":273,"link":275,"lists":279,"feature":364},"Ressourcen",{"dataNavLevelOne":274},"resources",{"text":276,"config":277},"Alle Ressourcen anzeigen",{"href":278,"dataGaName":274,"dataGaLocation":107},"/de-de/resources/",[280,313,336],{"title":281,"items":282},"Erste Schritte",[283,288,293,298,303,308],{"text":284,"config":285},"Installieren",{"href":286,"dataGaName":287,"dataGaLocation":107},"/de-de/install/","install",{"text":289,"config":290},"Kurzanleitungen",{"href":291,"dataGaName":292,"dataGaLocation":107},"/de-de/get-started/","quick setup checklists",{"text":294,"config":295},"Lernen",{"href":296,"dataGaLocation":107,"dataGaName":297},"https://university.gitlab.com/","learn",{"text":299,"config":300},"Produktdokumentation",{"href":301,"dataGaName":302,"dataGaLocation":107},"https://docs.gitlab.com/","product documentation",{"text":304,"config":305},"Best-Practice-Videos",{"href":306,"dataGaName":307,"dataGaLocation":107},"/de-de/getting-started-videos/","best practice videos",{"text":309,"config":310},"Integrationen",{"href":311,"dataGaName":312,"dataGaLocation":107},"/de-de/integrations/","integrations",{"title":314,"items":315},"Entdecken",[316,321,326,331],{"text":317,"config":318},"Kundenerfolge",{"href":319,"dataGaName":320,"dataGaLocation":107},"/de-de/customers/","customer success stories",{"text":322,"config":323},"Blog",{"href":324,"dataGaName":325,"dataGaLocation":107},"/de-de/blog/","blog",{"text":327,"config":328},"Remote",{"href":329,"dataGaName":330,"dataGaLocation":107},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":332,"config":333},"TeamOps",{"href":334,"dataGaName":335,"dataGaLocation":107},"/de-de/teamops/","teamops",{"title":337,"items":338},"Vernetzen",[339,344,349,354,359],{"text":340,"config":341},"GitLab-Services",{"href":342,"dataGaName":343,"dataGaLocation":107},"/de-de/services/","services",{"text":345,"config":346},"Community",{"href":347,"dataGaName":348,"dataGaLocation":107},"/community/","community",{"text":350,"config":351},"Forum",{"href":352,"dataGaName":353,"dataGaLocation":107},"https://forum.gitlab.com/","forum",{"text":355,"config":356},"Veranstaltungen",{"href":357,"dataGaName":358,"dataGaLocation":107},"/events/","events",{"text":360,"config":361},"Partner",{"href":362,"dataGaName":363,"dataGaLocation":107},"/de-de/partners/","partners",{"backgroundColor":365,"textColor":366,"text":367,"image":368,"link":372},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":369,"config":370},"the source promo card",{"src":371},"/images/navigation/the-source-promo-card.svg",{"text":373,"config":374},"Lies die News",{"href":375,"dataGaName":376,"dataGaLocation":107},"/de-de/the-source/","the source",{"text":378,"config":379,"lists":381},"Unternehmen",{"dataNavLevelOne":380},"company",[382],{"items":383},[384,389,395,397,402,407,412,417,422,427,432],{"text":385,"config":386},"Über",{"href":387,"dataGaName":388,"dataGaLocation":107},"/de-de/company/","about",{"text":390,"config":391,"footerGa":394},"Karriere",{"href":392,"dataGaName":393,"dataGaLocation":107},"/jobs/","jobs",{"dataGaName":393},{"text":355,"config":396},{"href":357,"dataGaName":358,"dataGaLocation":107},{"text":398,"config":399},"Geschäftsführung",{"href":400,"dataGaName":401,"dataGaLocation":107},"/company/team/e-group/","leadership",{"text":403,"config":404},"Team",{"href":405,"dataGaName":406,"dataGaLocation":107},"/company/team/","team",{"text":408,"config":409},"Handbuch",{"href":410,"dataGaName":411,"dataGaLocation":107},"https://handbook.gitlab.com/","handbook",{"text":413,"config":414},"Investor Relations",{"href":415,"dataGaName":416,"dataGaLocation":107},"https://ir.gitlab.com/","investor relations",{"text":418,"config":419},"Trust Center",{"href":420,"dataGaName":421,"dataGaLocation":107},"/de-de/security/","trust center",{"text":423,"config":424},"AI Transparency Center",{"href":425,"dataGaName":426,"dataGaLocation":107},"/de-de/ai-transparency-center/","ai transparency center",{"text":428,"config":429},"Newsletter",{"href":430,"dataGaName":431,"dataGaLocation":107},"/company/contact/","newsletter",{"text":433,"config":434},"Presse",{"href":435,"dataGaName":436,"dataGaLocation":107},"/press/","press",{"text":438,"config":439,"lists":440},"Kontakt",{"dataNavLevelOne":380},[441],{"items":442},[443,446,451],{"text":114,"config":444},{"href":116,"dataGaName":445,"dataGaLocation":107},"talk to sales",{"text":447,"config":448},"Support",{"href":449,"dataGaName":450,"dataGaLocation":107},"/support/","get help",{"text":452,"config":453},"Kundenportal",{"href":454,"dataGaName":455,"dataGaLocation":107},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":457,"login":458,"suggestions":465},"Schließen",{"text":459,"link":460},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":461,"config":462},"gitlab.com",{"href":121,"dataGaName":463,"dataGaLocation":464},"search login","search",{"text":466,"default":467},"Vorschläge",[468,471,476,478,483,488],{"text":136,"config":469},{"href":141,"dataGaName":470,"dataGaLocation":464},"GitLab Duo (AI)",{"text":472,"config":473},"Code Suggestions (KI)",{"href":474,"dataGaName":475,"dataGaLocation":464},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":187,"config":477},{"href":189,"dataGaName":187,"dataGaLocation":464},{"text":479,"config":480},"GitLab auf AWS",{"href":481,"dataGaName":482,"dataGaLocation":464},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":484,"config":485},"GitLab auf Google Cloud",{"href":486,"dataGaName":487,"dataGaLocation":464},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":489,"config":490},"Warum GitLab?",{"href":149,"dataGaName":491,"dataGaLocation":464},"Why GitLab?",{"freeTrial":493,"mobileIcon":498,"desktopIcon":503},{"text":494,"config":495},"Kostenlos testen",{"href":496,"dataGaName":112,"dataGaLocation":497},"https://gitlab.com/-/trials/new/","nav",{"altText":499,"config":500},"GitLab-Symbol",{"src":501,"dataGaName":502,"dataGaLocation":497},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":499,"config":504},{"src":505,"dataGaName":502,"dataGaLocation":497},"/images/brand/gitlab-logo-type.svg",{"freeTrial":507,"mobileIcon":511,"desktopIcon":513},{"text":508,"config":509},"Erfahre mehr über GitLab Duo",{"href":141,"dataGaName":510,"dataGaLocation":497},"gitlab duo",{"altText":499,"config":512},{"src":501,"dataGaName":502,"dataGaLocation":497},{"altText":499,"config":514},{"src":505,"dataGaName":502,"dataGaLocation":497},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":520,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"title":521,"button":522,"config":526,"_id":528,"_type":94,"_source":95,"_file":529,"_stem":530,"_extension":98},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":147,"config":523},{"href":524,"dataGaName":525,"dataGaLocation":107},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":527},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":532,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"data":533,"_id":735,"_type":94,"title":736,"_source":95,"_file":737,"_stem":738,"_extension":98},"/shared/de-de/main-footer",{"text":534,"source":535,"edit":541,"contribute":546,"config":551,"items":556,"minimal":727},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":536,"config":537},"Quelltext der Seite anzeigen",{"href":538,"dataGaName":539,"dataGaLocation":540},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":542,"config":543},"Diese Seite bearbeiten",{"href":544,"dataGaName":545,"dataGaLocation":540},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":547,"config":548},"Beteilige dich",{"href":549,"dataGaName":550,"dataGaLocation":540},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":552,"facebook":553,"youtube":554,"linkedin":555},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[557,580,633,663,697],{"title":125,"links":558,"subMenu":563},[559],{"text":560,"config":561},"DevSecOps-Plattform",{"href":134,"dataGaName":562,"dataGaLocation":540},"devsecops platform",[564],{"title":267,"links":565},[566,570,575],{"text":567,"config":568},"Tarife anzeigen",{"href":269,"dataGaName":569,"dataGaLocation":540},"view plans",{"text":571,"config":572},"Vorteile von Premium",{"href":573,"dataGaName":574,"dataGaLocation":540},"/de-de/pricing/premium/","why premium",{"text":576,"config":577},"Vorteile von Ultimate",{"href":578,"dataGaName":579,"dataGaLocation":540},"/de-de/pricing/ultimate/","why ultimate",{"title":581,"links":582},"Lösungen",[583,588,591,593,598,603,607,610,613,616,618,620,623,628],{"text":584,"config":585},"Digitale Transformation",{"href":586,"dataGaName":587,"dataGaLocation":540},"/de-de/topics/digital-transformation/","digital transformation",{"text":213,"config":589},{"href":208,"dataGaName":590,"dataGaLocation":540},"security & compliance",{"text":200,"config":592},{"href":183,"dataGaName":184,"dataGaLocation":540},{"text":594,"config":595},"Agile Entwicklung",{"href":596,"dataGaName":597,"dataGaLocation":540},"/de-de/solutions/agile-delivery/","agile delivery",{"text":599,"config":600},"Cloud-Transformation",{"href":601,"dataGaName":602,"dataGaLocation":540},"/de-de/topics/cloud-native/","cloud transformation",{"text":604,"config":605},"SCM",{"href":197,"dataGaName":606,"dataGaLocation":540},"source code management",{"text":187,"config":608},{"href":189,"dataGaName":609,"dataGaLocation":540},"continuous integration & delivery",{"text":239,"config":611},{"href":241,"dataGaName":612,"dataGaLocation":540},"value stream management",{"text":23,"config":614},{"href":615,"dataGaName":5,"dataGaLocation":540},"/de-de/solutions/gitops/",{"text":252,"config":617},{"href":254,"dataGaName":255,"dataGaLocation":540},{"text":257,"config":619},{"href":259,"dataGaName":260,"dataGaLocation":540},{"text":621,"config":622},"Öffentlicher Sektor",{"href":264,"dataGaName":265,"dataGaLocation":540},{"text":624,"config":625},"Bildungswesen",{"href":626,"dataGaName":627,"dataGaLocation":540},"/de-de/solutions/education/","education",{"text":629,"config":630},"Finanzdienstleistungen",{"href":631,"dataGaName":632,"dataGaLocation":540},"/de-de/solutions/finance/","financial services",{"title":272,"links":634},[635,637,639,641,644,646,649,651,653,655,657,659,661],{"text":284,"config":636},{"href":286,"dataGaName":287,"dataGaLocation":540},{"text":289,"config":638},{"href":291,"dataGaName":292,"dataGaLocation":540},{"text":294,"config":640},{"href":296,"dataGaName":297,"dataGaLocation":540},{"text":299,"config":642},{"href":301,"dataGaName":643,"dataGaLocation":540},"docs",{"text":322,"config":645},{"href":324,"dataGaName":325,"dataGaLocation":540},{"text":317,"config":647},{"href":648,"dataGaName":320,"dataGaLocation":540},"/customers/",{"text":327,"config":650},{"href":329,"dataGaName":330,"dataGaLocation":540},{"text":340,"config":652},{"href":342,"dataGaName":343,"dataGaLocation":540},{"text":332,"config":654},{"href":334,"dataGaName":335,"dataGaLocation":540},{"text":345,"config":656},{"href":347,"dataGaName":348,"dataGaLocation":540},{"text":350,"config":658},{"href":352,"dataGaName":353,"dataGaLocation":540},{"text":355,"config":660},{"href":357,"dataGaName":358,"dataGaLocation":540},{"text":360,"config":662},{"href":362,"dataGaName":363,"dataGaLocation":540},{"title":378,"links":664},[665,667,669,671,673,675,677,681,686,688,690,692],{"text":385,"config":666},{"href":387,"dataGaName":380,"dataGaLocation":540},{"text":390,"config":668},{"href":392,"dataGaName":393,"dataGaLocation":540},{"text":398,"config":670},{"href":400,"dataGaName":401,"dataGaLocation":540},{"text":403,"config":672},{"href":405,"dataGaName":406,"dataGaLocation":540},{"text":408,"config":674},{"href":410,"dataGaName":411,"dataGaLocation":540},{"text":413,"config":676},{"href":415,"dataGaName":416,"dataGaLocation":540},{"text":678,"config":679},"Sustainability",{"href":680,"dataGaName":678,"dataGaLocation":540},"/sustainability/",{"text":682,"config":683},"Vielfalt, Inklusion und Zugehörigkeit",{"href":684,"dataGaName":685,"dataGaLocation":540},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":418,"config":687},{"href":420,"dataGaName":421,"dataGaLocation":540},{"text":428,"config":689},{"href":430,"dataGaName":431,"dataGaLocation":540},{"text":433,"config":691},{"href":435,"dataGaName":436,"dataGaLocation":540},{"text":693,"config":694},"Transparenzerklärung zu moderner Sklaverei",{"href":695,"dataGaName":696,"dataGaLocation":540},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":698,"links":699},"Nimm Kontakt auf",[700,703,705,707,712,717,722],{"text":701,"config":702},"Sprich mit einem Experten/einer Expertin",{"href":116,"dataGaName":117,"dataGaLocation":540},{"text":447,"config":704},{"href":449,"dataGaName":450,"dataGaLocation":540},{"text":452,"config":706},{"href":454,"dataGaName":455,"dataGaLocation":540},{"text":708,"config":709},"Status",{"href":710,"dataGaName":711,"dataGaLocation":540},"https://status.gitlab.com/","status",{"text":713,"config":714},"Nutzungsbedingungen",{"href":715,"dataGaName":716,"dataGaLocation":540},"/terms/","terms of use",{"text":718,"config":719},"Datenschutzerklärung",{"href":720,"dataGaName":721,"dataGaLocation":540},"/de-de/privacy/","privacy statement",{"text":723,"config":724},"Cookie-Einstellungen",{"dataGaName":725,"dataGaLocation":540,"id":726,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":728},[729,731,733],{"text":713,"config":730},{"href":715,"dataGaName":716,"dataGaLocation":540},{"text":718,"config":732},{"href":720,"dataGaName":721,"dataGaLocation":540},{"text":723,"config":734},{"dataGaName":725,"dataGaLocation":540,"id":726,"isOneTrustButton":12},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",{"_path":740,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"header":741,"eyebrow":742,"blurb":743,"button":744,"secondaryButton":748,"_id":750,"_type":94,"title":751,"_source":95,"_file":752,"_stem":753,"_extension":98},"/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":109,"config":745},{"href":746,"dataGaName":112,"dataGaLocation":747},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":114,"config":749},{"href":116,"dataGaName":117,"dataGaLocation":747},"content:shared:de-de:next-steps.yml","Next Steps","shared/de-de/next-steps.yml","shared/de-de/next-steps",1753475325731]