[{"data":1,"prerenderedAt":766},["ShallowReactive",2],{"/de-de/topics/gitops/gitlab-enables-infrastructure-as-code":3,"navigation-de-de":98,"banner-de-de":512,"footer-de-de":522,"next-steps-de-de":756},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":89,"meta":90,"navigation":91,"path":92,"seo":93,"slug":6,"stem":96,"testContent":6,"type":6,"__hash__":97},"pages/de-de/topics/gitops/gitlab-enables-infrastructure-as-code/index.yml","",null,[8,22,30,87],{"type":9,"componentName":9,"componentContent":10},"CommonBreadcrumbs",{"crumbs":11},[12,16,20],{"title":13,"config":14},"Industry topics",{"href":15},"/topics/",{"title":17,"config":18},"GitOps",{"href":19},"/de-de/topics/gitops/",{"title":21},"Gitlab enables infrastructure as code",{"type":23,"componentName":23,"componentContent":24},"CommonArticleHero",{"title":25,"text":26,"config":27},"Wie Teams GitLab und Terraform für Infrastructure as Code nutzen: Eine Demo","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":28,"twoColumns":29},"wie-teams-gitlab-und-terraform-für-infrastructure-as-code-nutzen:-eine-demo",false,{"type":31,"componentName":31,"componentContent":32},"CommonSideNavigationWithTree",{"anchors":33,"components":56},{"text":34,"data":35},"Mehr zu diesem Thema",[36,40,44,48,52],{"text":37,"config":38},"Erfahre, wie GitLab Infrastructure as Code ermöglicht",{"href":39},"#learn-how-git-lab-enables-infrastructure-as-code",{"text":41,"config":42},"Erstelle deine Infrastruktur als Code in GitLab",{"href":43},"#building-your-infrastructure-as-code-in-git-lab",{"text":45,"config":46},"Innerhalb der Infrastruktur-Untergruppe",{"href":47},"#inside-the-infrastructure-subgroup",{"text":49,"config":50},"Bereitstellen von Code mit GitLab CI",{"href":51},"#deploying-code-using-git-lab-ci",{"text":53,"config":54},"Möchtest du mehr über GitOps erfahren?",{"href":55},"#ready-to-learn-more-about-git-ops",[57,62,67,72,77,82],{"type":58,"componentName":58,"componentContent":59},"TopicsCopy",{"text":60,"config":61},"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":5},{"type":58,"componentName":58,"componentContent":63},{"header":37,"text":64,"config":65},"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":66},"learn-how-git-lab-enables-infrastructure-as-code",{"type":58,"componentName":58,"componentContent":68},{"header":41,"text":69,"config":70},"### 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":71},"building-your-infrastructure-as-code-in-git-lab",{"type":58,"componentName":58,"componentContent":73},{"header":45,"text":74,"config":75},"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```shell\nterraform {\n  backend \"remote\" {\n    hostname = \"app.terraform.io\"\n    organization = \"gitops-demo\"\n    workspaces {\n      name = \"aws\"\n    }\n  }\n}\n```\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```text\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\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```text\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\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":76},"inside-the-infrastructure-subgroup",{"type":58,"componentName":58,"componentContent":78},{"header":49,"text":79,"config":80},"### 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```yaml\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\nIm nächsten Schritt musst du validieren, dass alles korrekt ist.\n\n```yaml\nvalidate:\n  stage: validate\n  script:\n    - terraform validate\n    - terraform fmt -check=true\n  only:\n    - branches\n```\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```text\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\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":81},"deploying-code-using-git-lab-ci",{"type":58,"componentName":58,"componentContent":83},{"header":53,"text":84,"config":85},"* [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":86},"ready-to-learn-more-about-git-ops",{"type":88,"componentName":88},"CommonNextSteps","yml",{},true,"/de-de/topics/gitops/gitlab-enables-infrastructure-as-code",{"title":25,"description":94,"config":95},"GitLab Topics | How teams use GitLab and Terraform for infrastructure as code: A demo",{"ignoreTitleCharLimit":91},"de-de/topics/gitops/gitlab-enables-infrastructure-as-code/index","8lJJfBIDzNht2DAUw4ZMIxvX4VsQO2KQdySCvNYxODM",{"data":99},{"logo":100,"freeTrial":105,"sales":110,"login":115,"items":120,"search":430,"minimal":464,"duo":482,"switchNav":491,"pricingDeployment":502},{"config":101},{"href":102,"dataGaName":103,"dataGaLocation":104},"/de-de/","gitlab logo","header",{"text":106,"config":107},"Kostenlose Testversion anfordern",{"href":108,"dataGaName":109,"dataGaLocation":104},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":111,"config":112},"Vertrieb kontaktieren",{"href":113,"dataGaName":114,"dataGaLocation":104},"/de-de/sales/","sales",{"text":116,"config":117},"Anmelden",{"href":118,"dataGaName":119,"dataGaLocation":104},"https://gitlab.com/users/sign_in/","sign in",[121,148,245,250,351,411],{"text":122,"config":123,"cards":125},"Plattform",{"dataNavLevelOne":124},"platform",[126,132,140],{"title":122,"description":127,"link":128},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":129,"config":130},"Die Plattform erkunden",{"href":131,"dataGaName":124,"dataGaLocation":104},"/de-de/platform/",{"title":133,"description":134,"link":135},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":136,"config":137},"Lerne GitLab Duo kennen",{"href":138,"dataGaName":139,"dataGaLocation":104},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":141,"description":142,"link":143},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":144,"config":145},"Mehr erfahren",{"href":146,"dataGaName":147,"dataGaLocation":104},"/de-de/why-gitlab/","why gitlab",{"text":149,"left":91,"config":150,"link":152,"lists":156,"footer":227},"Produkt",{"dataNavLevelOne":151},"solutions",{"text":153,"config":154},"Alle Lösungen anzeigen",{"href":155,"dataGaName":151,"dataGaLocation":104},"/de-de/solutions/",[157,182,205],{"title":158,"description":159,"link":160,"items":165},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":161},{"icon":162,"href":163,"dataGaName":164,"dataGaLocation":104},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[166,170,173,178],{"text":167,"config":168},"CI/CD",{"href":169,"dataGaLocation":104,"dataGaName":167},"/de-de/solutions/continuous-integration/",{"text":133,"config":171},{"href":138,"dataGaLocation":104,"dataGaName":172},"gitlab duo agent platform - product menu",{"text":174,"config":175},"Quellcodeverwaltung",{"href":176,"dataGaLocation":104,"dataGaName":177},"/de-de/solutions/source-code-management/","Source Code Management",{"text":179,"config":180},"Automatische Softwarebereitstellung",{"href":163,"dataGaLocation":104,"dataGaName":181},"Automated software delivery",{"title":183,"description":184,"link":185,"items":190},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":186},{"href":187,"dataGaName":188,"dataGaLocation":104,"icon":189},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[191,195,200],{"text":192,"config":193},"Anwendungssicherheitstests",{"href":187,"dataGaName":194,"dataGaLocation":104},"Application security testing",{"text":196,"config":197},"Schutz der Software-Lieferkette",{"href":198,"dataGaLocation":104,"dataGaName":199},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":201,"config":202},"Software-Compliance",{"href":203,"dataGaName":204,"dataGaLocation":104},"/de-de/solutions/software-compliance/","software compliance",{"title":206,"link":207,"items":212},"Auswertung",{"config":208},{"icon":209,"href":210,"dataGaName":211,"dataGaLocation":104},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[213,217,222],{"text":214,"config":215},"Sichtbarkeit und Auswertung",{"href":210,"dataGaLocation":104,"dataGaName":216},"Visibility and Measurement",{"text":218,"config":219},"Wertstrommanagement",{"href":220,"dataGaLocation":104,"dataGaName":221},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":223,"config":224},"Analysen und Einblicke",{"href":225,"dataGaLocation":104,"dataGaName":226},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":228,"items":229},"GitLab für",[230,235,240],{"text":231,"config":232},"Enterprise",{"href":233,"dataGaLocation":104,"dataGaName":234},"/de-de/enterprise/","enterprise",{"text":236,"config":237},"Kleinunternehmen",{"href":238,"dataGaLocation":104,"dataGaName":239},"/de-de/small-business/","small business",{"text":241,"config":242},"Öffentlicher Sektor",{"href":243,"dataGaLocation":104,"dataGaName":244},"/de-de/solutions/public-sector/","public sector",{"text":246,"config":247},"Preise",{"href":248,"dataGaName":249,"dataGaLocation":104,"dataNavLevelOne":249},"/de-de/pricing/","pricing",{"text":251,"config":252,"link":254,"lists":258,"feature":338},"Ressourcen",{"dataNavLevelOne":253},"resources",{"text":255,"config":256},"Alle Ressourcen anzeigen",{"href":257,"dataGaName":253,"dataGaLocation":104},"/de-de/resources/",[259,292,310],{"title":260,"items":261},"Erste Schritte",[262,267,272,277,282,287],{"text":263,"config":264},"Installieren",{"href":265,"dataGaName":266,"dataGaLocation":104},"/de-de/install/","install",{"text":268,"config":269},"Kurzanleitungen",{"href":270,"dataGaName":271,"dataGaLocation":104},"/de-de/get-started/","quick setup checklists",{"text":273,"config":274},"Lernen",{"href":275,"dataGaLocation":104,"dataGaName":276},"https://university.gitlab.com/","learn",{"text":278,"config":279},"Produktdokumentation",{"href":280,"dataGaName":281,"dataGaLocation":104},"https://docs.gitlab.com/","product documentation",{"text":283,"config":284},"Best-Practice-Videos",{"href":285,"dataGaName":286,"dataGaLocation":104},"/de-de/getting-started-videos/","best practice videos",{"text":288,"config":289},"Integrationen",{"href":290,"dataGaName":291,"dataGaLocation":104},"/de-de/integrations/","integrations",{"title":293,"items":294},"Entdecken",[295,300,305],{"text":296,"config":297},"Kundenerfolge",{"href":298,"dataGaName":299,"dataGaLocation":104},"/de-de/customers/","customer success stories",{"text":301,"config":302},"Blog",{"href":303,"dataGaName":304,"dataGaLocation":104},"/de-de/blog/","blog",{"text":306,"config":307},"Remote",{"href":308,"dataGaName":309,"dataGaLocation":104},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":311,"items":312},"Vernetzen",[313,318,323,328,333],{"text":314,"config":315},"GitLab Services",{"href":316,"dataGaName":317,"dataGaLocation":104},"/de-de/services/","services",{"text":319,"config":320},"Community",{"href":321,"dataGaName":322,"dataGaLocation":104},"/community/","community",{"text":324,"config":325},"Forum",{"href":326,"dataGaName":327,"dataGaLocation":104},"https://forum.gitlab.com/","forum",{"text":329,"config":330},"Veranstaltungen",{"href":331,"dataGaName":332,"dataGaLocation":104},"/events/","events",{"text":334,"config":335},"Partner",{"href":336,"dataGaName":337,"dataGaLocation":104},"/de-de/partners/","partners",{"backgroundColor":339,"textColor":340,"text":341,"image":342,"link":346},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":343,"config":344},"The Source Promo-Karte",{"src":345},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":347,"config":348},"Aktuelles",{"href":349,"dataGaName":350,"dataGaLocation":104},"/de-de/the-source/","the source",{"text":352,"config":353,"lists":355},"Unternehmen",{"dataNavLevelOne":354},"company",[356],{"items":357},[358,363,369,371,376,381,386,391,396,401,406],{"text":359,"config":360},"Über",{"href":361,"dataGaName":362,"dataGaLocation":104},"/de-de/company/","about",{"text":364,"config":365,"footerGa":368},"Karriere",{"href":366,"dataGaName":367,"dataGaLocation":104},"/jobs/","jobs",{"dataGaName":367},{"text":329,"config":370},{"href":331,"dataGaName":332,"dataGaLocation":104},{"text":372,"config":373},"Geschäftsführung",{"href":374,"dataGaName":375,"dataGaLocation":104},"/company/team/e-group/","leadership",{"text":377,"config":378},"Team",{"href":379,"dataGaName":380,"dataGaLocation":104},"/company/team/","team",{"text":382,"config":383},"Handbuch",{"href":384,"dataGaName":385,"dataGaLocation":104},"https://handbook.gitlab.com/","handbook",{"text":387,"config":388},"Investor Relations",{"href":389,"dataGaName":390,"dataGaLocation":104},"https://ir.gitlab.com/","investor relations",{"text":392,"config":393},"Trust Center",{"href":394,"dataGaName":395,"dataGaLocation":104},"/de-de/security/","trust center",{"text":397,"config":398},"AI Transparency Center",{"href":399,"dataGaName":400,"dataGaLocation":104},"/de-de/ai-transparency-center/","ai transparency center",{"text":402,"config":403},"Newsletter",{"href":404,"dataGaName":405,"dataGaLocation":104},"/company/contact/#contact-forms","newsletter",{"text":407,"config":408},"Presse",{"href":409,"dataGaName":410,"dataGaLocation":104},"/press/","press",{"text":412,"config":413,"lists":414},"Kontakt",{"dataNavLevelOne":354},[415],{"items":416},[417,420,425],{"text":111,"config":418},{"href":113,"dataGaName":419,"dataGaLocation":104},"talk to sales",{"text":421,"config":422},"Support-Portal",{"href":423,"dataGaName":424,"dataGaLocation":104},"https://support.gitlab.com","support portal",{"text":426,"config":427},"Kundenportal",{"href":428,"dataGaName":429,"dataGaLocation":104},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":431,"login":432,"suggestions":439},"Schließen",{"text":433,"link":434},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":435,"config":436},"gitlab.com",{"href":118,"dataGaName":437,"dataGaLocation":438},"search login","search",{"text":440,"default":441},"Vorschläge",[442,444,449,451,456,461],{"text":133,"config":443},{"href":138,"dataGaName":133,"dataGaLocation":438},{"text":445,"config":446},"Codevorschläge (KI)",{"href":447,"dataGaName":448,"dataGaLocation":438},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":167,"config":450},{"href":169,"dataGaName":167,"dataGaLocation":438},{"text":452,"config":453},"GitLab auf AWS",{"href":454,"dataGaName":455,"dataGaLocation":438},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":457,"config":458},"GitLab auf Google Cloud",{"href":459,"dataGaName":460,"dataGaLocation":438},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":141,"config":462},{"href":146,"dataGaName":463,"dataGaLocation":438},"Why GitLab?",{"freeTrial":465,"mobileIcon":470,"desktopIcon":475,"secondaryButton":478},{"text":466,"config":467},"Kostenlos testen",{"href":468,"dataGaName":109,"dataGaLocation":469},"https://gitlab.com/-/trials/new/","nav",{"altText":471,"config":472},"GitLab-Symbol",{"src":473,"dataGaName":474,"dataGaLocation":469},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":471,"config":476},{"src":477,"dataGaName":474,"dataGaLocation":469},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":260,"config":479},{"href":480,"dataGaName":481,"dataGaLocation":469},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":483,"mobileIcon":487,"desktopIcon":489},{"text":484,"config":485},"Mehr über GitLab Duo erfahren",{"href":138,"dataGaName":486,"dataGaLocation":469},"gitlab duo",{"altText":471,"config":488},{"src":473,"dataGaName":474,"dataGaLocation":469},{"altText":471,"config":490},{"src":477,"dataGaName":474,"dataGaLocation":469},{"button":492,"mobileIcon":497,"desktopIcon":499},{"text":493,"config":494},"/Option",{"href":495,"dataGaName":496,"dataGaLocation":469},"#contact","switch",{"altText":471,"config":498},{"src":473,"dataGaName":474,"dataGaLocation":469},{"altText":471,"config":500},{"src":501,"dataGaName":474,"dataGaLocation":469},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":503,"mobileIcon":508,"desktopIcon":510},{"text":504,"config":505},"Zurück zur Preisübersicht",{"href":248,"dataGaName":506,"dataGaLocation":469,"icon":507},"back to pricing","GoBack",{"altText":471,"config":509},{"src":473,"dataGaName":474,"dataGaLocation":469},{"altText":471,"config":511},{"src":477,"dataGaName":474,"dataGaLocation":469},{"title":513,"button":514,"config":519},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":515,"config":516},"GitLab Transcend jetzt ansehen",{"href":517,"dataGaName":518,"dataGaLocation":104},"/de-de/events/transcend/virtual/","transcend event",{"layout":520,"icon":521,"disabled":91},"release","AiStar",{"data":523},{"text":524,"source":525,"edit":531,"contribute":536,"config":541,"items":546,"minimal":747},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":526,"config":527},"Quelltext der Seite anzeigen",{"href":528,"dataGaName":529,"dataGaLocation":530},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":532,"config":533},"Diese Seite bearbeiten",{"href":534,"dataGaName":535,"dataGaLocation":530},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":537,"config":538},"Beteilige dich",{"href":539,"dataGaName":540,"dataGaLocation":530},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":542,"facebook":543,"youtube":544,"linkedin":545},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[547,592,643,685,712],{"title":246,"links":548,"subMenu":563},[549,553,558],{"text":550,"config":551},"Tarife anzeigen",{"href":248,"dataGaName":552,"dataGaLocation":530},"view plans",{"text":554,"config":555},"Vorteile von Premium",{"href":556,"dataGaName":557,"dataGaLocation":530},"/de-de/pricing/premium/","why premium",{"text":559,"config":560},"Vorteile von Ultimate",{"href":561,"dataGaName":562,"dataGaLocation":530},"/de-de/pricing/ultimate/","why ultimate",[564],{"title":412,"links":565},[566,568,570,572,577,582,587],{"text":111,"config":567},{"href":113,"dataGaName":114,"dataGaLocation":530},{"text":421,"config":569},{"href":423,"dataGaName":424,"dataGaLocation":530},{"text":426,"config":571},{"href":428,"dataGaName":429,"dataGaLocation":530},{"text":573,"config":574},"Status",{"href":575,"dataGaName":576,"dataGaLocation":530},"https://status.gitlab.com/","status",{"text":578,"config":579},"Nutzungsbedingungen",{"href":580,"dataGaName":581,"dataGaLocation":530},"/terms/","terms of use",{"text":583,"config":584},"Datenschutzerklärung",{"href":585,"dataGaName":586,"dataGaLocation":530},"/de-de/privacy/","privacy statement",{"text":588,"config":589},"Cookie-Einstellungen",{"dataGaName":590,"dataGaLocation":530,"id":591,"isOneTrustButton":91},"cookie preferences","ot-sdk-btn",{"title":149,"links":593,"subMenu":602},[594,598],{"text":595,"config":596},"DevSecOps-Plattform",{"href":131,"dataGaName":597,"dataGaLocation":530},"devsecops platform",{"text":599,"config":600},"KI-unterstützte Entwicklung",{"href":138,"dataGaName":601,"dataGaLocation":530},"ai-assisted development",[603],{"title":604,"links":605},"Themen",[606,610,613,618,623,628,633,638],{"text":167,"config":607},{"href":608,"dataGaName":609,"dataGaLocation":530},"/de-de/topics/ci-cd/","cicd",{"text":17,"config":611},{"href":19,"dataGaName":612,"dataGaLocation":530},"gitops",{"text":614,"config":615},"DevOps",{"href":616,"dataGaName":617,"dataGaLocation":530},"/de-de/topics/devops/","devops",{"text":619,"config":620},"Versionskontrolle",{"href":621,"dataGaName":622,"dataGaLocation":530},"/de-de/topics/version-control/","version control",{"text":624,"config":625},"DevSecOps",{"href":626,"dataGaName":627,"dataGaLocation":530},"/de-de/topics/devsecops/","devsecops",{"text":629,"config":630},"Cloud-nativ",{"href":631,"dataGaName":632,"dataGaLocation":530},"/de-de/topics/cloud-native/","cloud native",{"text":634,"config":635},"KI für das Programmieren",{"href":636,"dataGaName":637,"dataGaLocation":530},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":639,"config":640},"Agentische KI",{"href":641,"dataGaName":642,"dataGaLocation":530},"/de-de/topics/agentic-ai/","agentic ai",{"title":644,"links":645},"Lösungen",[646,649,651,656,660,663,666,669,671,673,675,680],{"text":192,"config":647},{"href":187,"dataGaName":648,"dataGaLocation":530},"Application Security Testing",{"text":179,"config":650},{"href":163,"dataGaName":164,"dataGaLocation":530},{"text":652,"config":653},"Agile Entwicklung",{"href":654,"dataGaName":655,"dataGaLocation":530},"/de-de/solutions/agile-delivery/","agile delivery",{"text":657,"config":658},"SCM",{"href":176,"dataGaName":659,"dataGaLocation":530},"source code management",{"text":167,"config":661},{"href":169,"dataGaName":662,"dataGaLocation":530},"continuous integration & delivery",{"text":218,"config":664},{"href":220,"dataGaName":665,"dataGaLocation":530},"value stream management",{"text":17,"config":667},{"href":668,"dataGaName":612,"dataGaLocation":530},"/de-de/solutions/gitops/",{"text":231,"config":670},{"href":233,"dataGaName":234,"dataGaLocation":530},{"text":236,"config":672},{"href":238,"dataGaName":239,"dataGaLocation":530},{"text":241,"config":674},{"href":243,"dataGaName":244,"dataGaLocation":530},{"text":676,"config":677},"Bildungswesen",{"href":678,"dataGaName":679,"dataGaLocation":530},"/de-de/solutions/education/","education",{"text":681,"config":682},"Finanzdienstleistungen",{"href":683,"dataGaName":684,"dataGaLocation":530},"/de-de/solutions/finance/","financial services",{"title":251,"links":686},[687,689,691,693,696,698,700,702,704,706,708,710],{"text":263,"config":688},{"href":265,"dataGaName":266,"dataGaLocation":530},{"text":268,"config":690},{"href":270,"dataGaName":271,"dataGaLocation":530},{"text":273,"config":692},{"href":275,"dataGaName":276,"dataGaLocation":530},{"text":278,"config":694},{"href":280,"dataGaName":695,"dataGaLocation":530},"docs",{"text":301,"config":697},{"href":303,"dataGaName":304,"dataGaLocation":530},{"text":296,"config":699},{"href":298,"dataGaName":299,"dataGaLocation":530},{"text":306,"config":701},{"href":308,"dataGaName":309,"dataGaLocation":530},{"text":314,"config":703},{"href":316,"dataGaName":317,"dataGaLocation":530},{"text":319,"config":705},{"href":321,"dataGaName":322,"dataGaLocation":530},{"text":324,"config":707},{"href":326,"dataGaName":327,"dataGaLocation":530},{"text":329,"config":709},{"href":331,"dataGaName":332,"dataGaLocation":530},{"text":334,"config":711},{"href":336,"dataGaName":337,"dataGaLocation":530},{"title":352,"links":713},[714,716,718,720,722,724,726,731,736,738,740,742],{"text":359,"config":715},{"href":361,"dataGaName":354,"dataGaLocation":530},{"text":364,"config":717},{"href":366,"dataGaName":367,"dataGaLocation":530},{"text":372,"config":719},{"href":374,"dataGaName":375,"dataGaLocation":530},{"text":377,"config":721},{"href":379,"dataGaName":380,"dataGaLocation":530},{"text":382,"config":723},{"href":384,"dataGaName":385,"dataGaLocation":530},{"text":387,"config":725},{"href":389,"dataGaName":390,"dataGaLocation":530},{"text":727,"config":728},"Nachhaltigkeit",{"href":729,"dataGaName":730,"dataGaLocation":530},"/sustainability/","Sustainability",{"text":732,"config":733},"Vielfalt, Inklusion und Zugehörigkeit",{"href":734,"dataGaName":735,"dataGaLocation":530},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":392,"config":737},{"href":394,"dataGaName":395,"dataGaLocation":530},{"text":402,"config":739},{"href":404,"dataGaName":405,"dataGaLocation":530},{"text":407,"config":741},{"href":409,"dataGaName":410,"dataGaLocation":530},{"text":743,"config":744},"Transparenzerklärung zu moderner Sklaverei",{"href":745,"dataGaName":746,"dataGaLocation":530},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":748},[749,751,754],{"text":578,"config":750},{"href":580,"dataGaName":581,"dataGaLocation":530},{"text":752,"config":753},"Cookies",{"dataGaName":590,"dataGaLocation":530,"id":591,"isOneTrustButton":91},{"text":583,"config":755},{"href":585,"dataGaName":586,"dataGaLocation":530},{"header":757,"blurb":758,"button":759,"secondaryButton":764},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":760,"config":761},"Kostenlosen Test starten",{"href":762,"dataGaName":109,"dataGaLocation":763},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":111,"config":765},{"href":113,"dataGaName":114,"dataGaLocation":763},1777393967038]