[{"data":1,"prerenderedAt":801},["ShallowReactive",2],{"/es/topics/gitops/gitlab-enables-infrastructure-as-code":3,"navigation-es":99,"banner-es":518,"footer-es":531,"next-steps-es":737,"footer-source-/es/topics/gitops/gitlab-enables-infrastructure-as-code/":752},{"_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},"/es/topics/gitops/gitlab-enables-infrastructure-as-code","gitops",false,"",{"title":9,"description":10,"config":11},"Cómo usan los equipos GitLab y Terraform para la infraestructura como código: Demostración","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},"/es/topics/gitops/",{"title":27},"Gitlab enables infrastructure as code",{"type":29,"componentName":29,"componentContent":30},"CommonArticleHero",{"title":9,"text":31,"config":32},"En esta demostración verá cómo seguir un buen procedimiento de GitOps para implementar la infraestructura como código mediante el uso de Terraform para la automatización y GitLab como la fuente única de la verdad.\n",{"id":33,"twoColumns":6},"cómo-usan-los-equipos-gitlab-y-terraform-para-la-infraestructura-como-código:-demostración",{"type":35,"componentName":35,"componentContent":36},"CommonSideNavigationWithTree",{"anchors":37,"components":60},{"text":38,"data":39},"Más sobre este tema",[40,44,48,52,56],{"text":41,"config":42},"Descubra cómo GitLab permite tener infraestructura como código",{"href":43},"#learn-how-git-lab-enables-infrastructure-as-code",{"text":45,"config":46},"Creación de su infraestructura como código en GitLab",{"href":47},"#building-your-infrastructure-as-code-in-git-lab",{"text":49,"config":50},"Dentro del subgrupo de infraestructura",{"href":51},"#inside-the-infrastructure-subgroup",{"text":53,"config":54},"Implementación de código mediante la CI de GitLab",{"href":55},"#deploying-code-using-git-lab-ci",{"text":57,"config":58},"¿Todo listo para obtener más información sobre GitOps?",{"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},"Cuando varios equipos usan un repositorio de Git como la fuente única de la verdad para toda la [infraestructura](/blog/using-ansible-and-gitlab-as-infrastructure-for-code/){data-ga-name =\"infrastructure\" data-ga-location = \"body\"} y el código de implementación de la aplicación, están llevando a cabo un buen procedimiento de GitOps. Los equipos de infraestructura pueden colaborar e implementar código en varios servicios en la nube mediante el uso de Terraform para la automatización. En este artículo se demuestra cómo los equipos pueden crear un clúster de Kubernetes mediante la colaboración con compañeros de equipo dentro de GitLab.\n",{"id":7},{"type":62,"componentName":62,"componentContent":67},{"header":41,"text":68,"config":69},"En esta demostración verá cómo seguir un buen procedimiento de GitOps para implementar la infraestructura como código mediante el uso de Terraform para la automatización y GitLab como la fuente única de la verdad (y la CI).\n",{"id":70},"learn-how-git-lab-enables-infrastructure-as-code",{"type":62,"componentName":62,"componentContent":72},{"header":45,"text":73,"config":74},"### Cómo empezar\n\n_Este [grupo gitops-demo](https://gitlab.com/gitops-demo) ilustra los pasos que pueden seguir los equipos._\n\nPara comenzar, inicie sesión en el grupo donde reside el proyecto dentro de GitLab. El siguiente paso es abrir el archivo [README.md](https://gitlab.com/gitops-demo/readme/blob/master/README.md), que muestra la estructura subyacente del grupo gitops-demo. Hay algunos proyectos individuales y dos subgrupos: **[infraestructura](https://gitlab.com/gitops-demo/infra)** y **[aplicaciones](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},"Hay un repositorio separado para cada nube: Azure, GCP y AWS, y un repositorio para plantillas.\nSe pueden encontrar archivos similares en los tres repositorios de la [nube](/blog/gitlab-ci-cd-is-for-multi-cloud/){data-ga-name = \"cloud\"data-ga-location =\"body\"}. Todos los archivos están escritos en Terraform para automatizar el proceso de implementación, mientras que el archivo `gitlab-ci.yml` también se almacena en el repositorio a fin de proporcionar instrucciones para la automatización.\n\n### El archivo de back-end\n\nAl usar [el servicio Terraform Cloud](https://www.hashicorp.com/blog/announcing-terraform-cloud) de HashiCorp como ubicación remota para el archivo de estado, mantiene el archivo de estado seguro y en una ubicación central para que cualquier proceso pueda acceder a él. Una ventaja de usar Terraform Cloud es que tiene la capacidad de bloquear el estado para garantizar que solo se pueda ejecutar un job a la vez. De este modo, se evita que varios jobs realicen cambios que creen conflictos. El código almacena los archivos de estado en [Terraform Cloud](https://app.terraform.io) en una organización llamada `gitops-demo` en un espacio de trabajo llamado `aws`. Esto mantiene el estado de ejecución en el proveedor de servicios en la nube, de forma que cualquier miembro del equipo tiene acceso en todo momento.\n\n```\nterraform {\n  backend \"remote\" {\n    hostname     = \"app.terraform.io\"\n    organization = \"gitops-demo\"\n    workspaces {\n      name = \"aws\"\n    }\n  }\n}\n\n```\n{: .language-ruby}\n\n### EKS.tf file\n\nEl EKS es otro archivo de Terraform que utiliza el módulo EKS para el clúster de Terraform. Los equipos pueden definir parámetros como el tipo de subredes y la cantidad de nodos en el archivo de Terraform EKS.\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### Definir el administrador de GitLab\n\nEl proveedor de Kubernetes se puede usar para crear un usuario administrador de GitLab y configurar [automáticamente como código y gestionado por Terraform](https://gitlab.com/gitops-demo/infra/aws/blob/master/gitlab-admin.tf).\n\n### Registrar el clúster con GitLab\n\nTras crear un clúster de Kubernetes, se debe registrar en GitLab para implementar más código en el clúster en el futuro. El primer paso es usar el proveedor de GitLab para crear un clúster de grupo llamado clúster de AWS.\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\nEl código contiene el nombre de dominio, el alcance del entorno y las credenciales de Kubernetes.\n\nDespués de ejecutar esto, el clúster se creará en AWS y se registrará automáticamente en el grupo [gitops-demo/apps](https://gitlab.com/gitops-demo/apps).\n",{"id":80},"inside-the-infrastructure-subgroup",{"type":62,"componentName":62,"componentContent":82},{"header":53,"text":83,"config":84},"### Plantilla de Terraform\n\nVuelva al grupo de infraestructura y abra la carpeta Templates (Plantillas). Al mirar el [archivo terraform.gitlab-ci.yml](https://gitlab.com/gitops-demo/infra/templates/blob/master/terraform.gitlab-ci.yml), se puede observar cómo funciona la CI para implementar código de infraestructura en la nube mediante el uso de Terraform.\n\nDentro del archivo de CI, los equipos pueden ver diversas etapas: validar, planificar, aplicar y destruir. Al usar la imagen de base de Terraform de Hashicorp, los usuarios pueden ejecutar diferentes tareas.\n\nEl primer paso es inicializar 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\nEl siguiente paso es validar que todo sea correcto.\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\nEs importante recordar que los buenos flujos de trabajo de GitOps incorporan la creación de una [solicitud de fusión](/blog/mr-reviews-with-vs-code/){data-ga-name =\"merge request\"data-ga-location =\"body\"} para los cambios.\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### La solicitud de fusión\n\nLa [solicitud de fusión (MR)](https://gitlab.com/gitops-demo/infra/aws/merge_requests/6){data-ga-name=\"MR\" data-ga-location=\"body\"} es el paso más importante en GitOps. Este es el proceso para revisar todos los cambios y ver su impacto. La solicitud de fusión (MR) también es una [herramienta de colaboración](/blog/merge-request-reviewers/){data-ga-name = \"collaboration tool\" data-ga-location = \"body\"} donde los miembros del equipo pueden discutir los cambios y las partes interesadas pueden aprobar los cambios antes de la fusión final en la rama principal.\n\nLa solicitud de fusión define lo que sucederá cuando se ejecute la infraestructura como código. Una vez creada la MR, el plan de Terraform se carga en ella. Después de que se hayan revisado y aprobado todos los cambios, el código puede fusionarse con la rama principal. Una vez que se fusionen los cambios de código, todos los cambios se implementarán en producción.\n",{"id":85},"deploying-code-using-git-lab-ci",{"type":62,"componentName":62,"componentContent":87},{"header":57,"text":88,"config":89},"* [¿Qué significa infraestructura como código?](/topics/gitops/infrastructure-as-code/){data-ga-name=\"infrastructure as code\" data-ga-location=\"body\"}\n* [Qué es GitOps](/topics/gitops/){data-ga-name=\"what is gitops\" data-ga-location=\"body\"}\n* [Descubra cómo GitLab optimiza los flujos de trabajo de GitOps](/solutions/gitops/){data-ga-name =\"streamlines workflows\"data-ga-location =\"body\"}\n* [Descubra el futuro de GitOps de la mano de los líderes de la industria](/why/gitops-infrastructure-automation/){data-ga-name =\"industry leaders\"data-ga-location =\"body\"}\n* [Lea la guía para principiantes de 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:es:topics:gitops:gitlab-enables-infrastructure-as-code:index.yml","yaml","content","es/topics/gitops/gitlab-enables-infrastructure-as-code/index.yml","es/topics/gitops/gitlab-enables-infrastructure-as-code/index","yml",{"_path":100,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"data":102,"_id":514,"_type":94,"title":515,"_source":95,"_file":516,"_stem":517,"_extension":98},"/shared/es/main-navigation","es",{"logo":103,"freeTrial":108,"sales":113,"login":118,"items":123,"search":456,"minimal":491,"duo":505},{"config":104},{"href":105,"dataGaName":106,"dataGaLocation":107},"/es/","gitlab logo","header",{"text":109,"config":110},"Obtener una prueba gratuita",{"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},"Hablar con ventas",{"href":116,"dataGaName":117,"dataGaLocation":107},"/es/sales/","sales",{"text":119,"config":120},"Iniciar sesión",{"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},"Plataforma",{"dataNavLevelOne":127},"platform",[129,135,143],{"title":125,"description":130,"link":131},"La plataforma de DevSecOps con tecnología de IA más completa",{"text":132,"config":133},"Explore nuestra plataforma",{"href":134,"dataGaName":127,"dataGaLocation":107},"/es/platform/",{"title":136,"description":137,"link":138},"GitLab Duo (IA)","Cree un software más rápido con IA en cada etapa de desarrollo",{"text":139,"config":140},"Presentamos GitLab Duo",{"href":141,"dataGaName":142,"dataGaLocation":107},"/es/gitlab-duo/","gitlab duo ai",{"title":144,"description":145,"link":146},"¿Por qué elegir GitLab?","10 razones por las que las empresas eligen GitLab",{"text":147,"config":148},"Más información",{"href":149,"dataGaName":150,"dataGaLocation":107},"/es/why-gitlab/","why gitlab",{"title":152,"items":153},"Comenzar con",[154,159,164],{"text":155,"config":156},"Ingeniería de plataformas",{"href":157,"dataGaName":158,"dataGaLocation":107},"/es/solutions/platform-engineering/","platform engineering",{"text":160,"config":161},"Experiencia de desarrollador",{"href":162,"dataGaName":163,"dataGaLocation":107},"/es/developer-experience/","Developer experience",{"text":165,"config":166},"MLOps",{"href":167,"dataGaName":165,"dataGaLocation":107},"/es/topics/devops/the-role-of-ai-in-devops/",{"text":169,"left":12,"config":170,"link":172,"lists":176,"footer":248},"Producto",{"dataNavLevelOne":171},"solutions",{"text":173,"config":174},"Ver todas las soluciones",{"href":175,"dataGaName":171,"dataGaLocation":107},"/es/solutions/",[177,203,226],{"title":178,"description":179,"link":180,"items":185},"Automatización","CI/CD y automatización para acelerar la implementación",{"config":181},{"icon":182,"href":183,"dataGaName":184,"dataGaLocation":107},"AutomatedCodeAlt","/es/solutions/delivery-automation/","automated software delivery",[186,190,194,199],{"text":187,"config":188},"CI/CD",{"href":189,"dataGaLocation":107,"dataGaName":187},"/es/solutions/continuous-integration/",{"text":191,"config":192},"Desarrollo asistido por IA",{"href":141,"dataGaLocation":107,"dataGaName":193},"AI assisted development",{"text":195,"config":196},"Gestión del código fuente",{"href":197,"dataGaLocation":107,"dataGaName":198},"/es/solutions/source-code-management/","Source Code Management",{"text":200,"config":201},"Entrega de software automatizada",{"href":183,"dataGaLocation":107,"dataGaName":202},"Automated software delivery",{"title":204,"description":205,"link":206,"items":211},"Seguridad","Entregue código más rápido sin comprometer la seguridad",{"config":207},{"href":208,"dataGaName":209,"dataGaLocation":107,"icon":210},"/es/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[212,216,221],{"text":213,"config":214},"Application Security Testing",{"href":208,"dataGaName":215,"dataGaLocation":107},"Application security testing",{"text":217,"config":218},"Seguridad en la cadena de suministro de software",{"href":219,"dataGaLocation":107,"dataGaName":220},"/es/solutions/supply-chain/","Software supply chain security",{"text":222,"config":223},"Cumplimiento y gobernanza",{"href":224,"dataGaName":225,"dataGaLocation":107},"/es/solutions/software-compliance/","Software Compliance",{"title":227,"link":228,"items":233},"Medición",{"config":229},{"icon":230,"href":231,"dataGaName":232,"dataGaLocation":107},"DigitalTransformation","/es/solutions/visibility-measurement/","visibility and measurement",[234,238,243],{"text":235,"config":236},"Visibilidad y medición",{"href":231,"dataGaLocation":107,"dataGaName":237},"Visibility and Measurement",{"text":239,"config":240},"Gestión del flujo de valor",{"href":241,"dataGaLocation":107,"dataGaName":242},"/es/solutions/value-stream-management/","Value Stream Management",{"text":244,"config":245},"Análisis e información",{"href":246,"dataGaLocation":107,"dataGaName":247},"/es/solutions/analytics-and-insights/","Analytics and insights",{"title":249,"items":250},"GitLab para",[251,256,261],{"text":252,"config":253},"Empresas",{"href":254,"dataGaLocation":107,"dataGaName":255},"/es/enterprise/","enterprise",{"text":257,"config":258},"Pequeñas empresas",{"href":259,"dataGaLocation":107,"dataGaName":260},"/es/small-business/","small business",{"text":262,"config":263},"Sector público",{"href":264,"dataGaLocation":107,"dataGaName":265},"/es/solutions/public-sector/","public sector",{"text":267,"config":268},"Precios",{"href":269,"dataGaName":270,"dataGaLocation":107,"dataNavLevelOne":270},"/es/pricing/","pricing",{"text":272,"config":273,"link":275,"lists":279,"feature":364},"Recursos",{"dataNavLevelOne":274},"resources",{"text":276,"config":277},"Ver todos los recursos",{"href":278,"dataGaName":274,"dataGaLocation":107},"/es/resources/",[280,313,336],{"title":281,"items":282},"Empezar",[283,288,293,298,303,308],{"text":284,"config":285},"Instalar",{"href":286,"dataGaName":287,"dataGaLocation":107},"/es/install/","install",{"text":289,"config":290},"Guías de inicio rápido",{"href":291,"dataGaName":292,"dataGaLocation":107},"/es/get-started/","quick setup checklists",{"text":294,"config":295},"Aprender",{"href":296,"dataGaLocation":107,"dataGaName":297},"https://university.gitlab.com/","learn",{"text":299,"config":300},"Documentación del producto",{"href":301,"dataGaName":302,"dataGaLocation":107},"https://docs.gitlab.com/","product documentation",{"text":304,"config":305},"Videos de prácticas recomendadas",{"href":306,"dataGaName":307,"dataGaLocation":107},"/es/getting-started-videos/","best practice videos",{"text":309,"config":310},"Integraciones",{"href":311,"dataGaName":312,"dataGaLocation":107},"/es/integrations/","integrations",{"title":314,"items":315},"Descubrir",[316,321,326,331],{"text":317,"config":318},"Historias de éxito del cliente",{"href":319,"dataGaName":320,"dataGaLocation":107},"/es/customers/","customer success stories",{"text":322,"config":323},"Blog",{"href":324,"dataGaName":325,"dataGaLocation":107},"/blog/","blog",{"text":327,"config":328},"Remoto",{"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},"/es/teamops/","teamops",{"title":337,"items":338},"Conectar",[339,344,349,354,359],{"text":340,"config":341},"Servicios de GitLab",{"href":342,"dataGaName":343,"dataGaLocation":107},"/es/services/","services",{"text":345,"config":346},"Comunidad",{"href":347,"dataGaName":348,"dataGaLocation":107},"/community/","community",{"text":350,"config":351},"Foro",{"href":352,"dataGaName":353,"dataGaLocation":107},"https://forum.gitlab.com/","forum",{"text":355,"config":356},"Eventos",{"href":357,"dataGaName":358,"dataGaLocation":107},"/events/","events",{"text":360,"config":361},"Socios",{"href":362,"dataGaName":363,"dataGaLocation":107},"/es/partners/","partners",{"backgroundColor":365,"textColor":366,"text":367,"image":368,"link":372},"#2f2a6b","#fff","Información sobre el futuro del desarrollo de software",{"altText":369,"config":370},"Tarjeta promocional The Source",{"src":371},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":373,"config":374},"Leer las últimas noticias",{"href":375,"dataGaName":376,"dataGaLocation":107},"/es/the-source/","the source",{"text":378,"config":379,"lists":381},"Empresa",{"dataNavLevelOne":380},"company",[382],{"items":383},[384,389,395,397,402,407,412,417,422,427,432],{"text":385,"config":386},"Acerca de nosotros",{"href":387,"dataGaName":388,"dataGaLocation":107},"/es/company/","about",{"text":390,"config":391,"footerGa":394},"Empleos",{"href":392,"dataGaName":393,"dataGaLocation":107},"/jobs/","jobs",{"dataGaName":393},{"text":355,"config":396},{"href":357,"dataGaName":358,"dataGaLocation":107},{"text":398,"config":399},"Equipo directivo",{"href":400,"dataGaName":401,"dataGaLocation":107},"/company/team/e-group/","leadership",{"text":403,"config":404},"Equipo",{"href":405,"dataGaName":406,"dataGaLocation":107},"/company/team/","team",{"text":408,"config":409},"Manual",{"href":410,"dataGaName":411,"dataGaLocation":107},"https://handbook.gitlab.com/","handbook",{"text":413,"config":414},"Relaciones con los inversores",{"href":415,"dataGaName":416,"dataGaLocation":107},"https://ir.gitlab.com/","investor relations",{"text":418,"config":419},"Centro de confianza",{"href":420,"dataGaName":421,"dataGaLocation":107},"/es/security/","trust center",{"text":423,"config":424},"AI Transparency Center",{"href":425,"dataGaName":426,"dataGaLocation":107},"/es/ai-transparency-center/","ai transparency center",{"text":428,"config":429},"Boletín",{"href":430,"dataGaName":431,"dataGaLocation":107},"/company/contact/","newsletter",{"text":433,"config":434},"Prensa",{"href":435,"dataGaName":436,"dataGaLocation":107},"/press/","press",{"text":438,"config":439,"lists":440},"Comuníquese con nosotros",{"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},"Obtener ayuda",{"href":449,"dataGaName":450,"dataGaLocation":107},"/support/","get help",{"text":452,"config":453},"Portal de clientes",{"href":454,"dataGaName":455,"dataGaLocation":107},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":457,"login":458,"suggestions":465},"Cerrar",{"text":459,"link":460},"Para buscar repositorios y proyectos, inicie sesión en",{"text":461,"config":462},"gitlab.com",{"href":121,"dataGaName":463,"dataGaLocation":464},"search login","search",{"text":466,"default":467},"Sugerencias",[468,471,476,478,483,488],{"text":136,"config":469},{"href":141,"dataGaName":470,"dataGaLocation":464},"GitLab Duo (AI)",{"text":472,"config":473},"Sugerencias de código (IA)",{"href":474,"dataGaName":475,"dataGaLocation":464},"/es/solutions/code-suggestions/","Code Suggestions (AI)",{"text":187,"config":477},{"href":189,"dataGaName":187,"dataGaLocation":464},{"text":479,"config":480},"GitLab en AWS",{"href":481,"dataGaName":482,"dataGaLocation":464},"/es/partners/technology-partners/aws/","GitLab on AWS",{"text":484,"config":485},"GitLab en Google Cloud",{"href":486,"dataGaName":487,"dataGaLocation":464},"/es/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":144,"config":489},{"href":149,"dataGaName":490,"dataGaLocation":464},"Why GitLab?",{"freeTrial":492,"mobileIcon":497,"desktopIcon":502},{"text":493,"config":494},"Iniciar la prueba gratuita",{"href":495,"dataGaName":112,"dataGaLocation":496},"https://gitlab.com/-/trials/new/","nav",{"altText":498,"config":499},"Ícono de GitLab",{"src":500,"dataGaName":501,"dataGaLocation":496},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":498,"config":503},{"src":504,"dataGaName":501,"dataGaLocation":496},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":506,"mobileIcon":510,"desktopIcon":512},{"text":507,"config":508},"Más información sobre GitLab Duo",{"href":141,"dataGaName":509,"dataGaLocation":496},"gitlab duo",{"altText":498,"config":511},{"src":500,"dataGaName":501,"dataGaLocation":496},{"altText":498,"config":513},{"src":504,"dataGaName":501,"dataGaLocation":496},"content:shared:es:main-navigation.yml","Main Navigation","shared/es/main-navigation.yml","shared/es/main-navigation",{"_path":519,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"title":520,"titleMobile":520,"button":521,"config":526,"_id":528,"_type":94,"_source":95,"_file":529,"_stem":530,"_extension":98},"/shared/es/banner","¡GitLab Duo Agent Platform ya está en beta pública!",{"text":522,"config":523},"Prueba la Beta",{"href":524,"dataGaName":525,"dataGaLocation":107},"/es/gitlab-duo/agent-platform/","duo banner",{"layout":527},"release","content:shared:es:banner.yml","shared/es/banner.yml","shared/es/banner",{"_path":532,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"data":533,"_id":733,"_type":94,"title":734,"_source":95,"_file":735,"_stem":736,"_extension":98},"/shared/es/main-footer",{"text":534,"source":535,"edit":541,"contribute":546,"config":551,"items":556,"minimal":725},"Git es una marca registrada de Software Freedom Conservancy, y nuestro uso de «GitLab» está bajo licencia",{"text":536,"config":537},"Ver fuente de la página",{"href":538,"dataGaName":539,"dataGaLocation":540},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":542,"config":543},"Editar esta página",{"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},"Contribuya",{"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://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[557,580,631,660,696],{"title":125,"links":558,"subMenu":563},[559],{"text":560,"config":561},"Plataforma de DevSecOps",{"href":134,"dataGaName":562,"dataGaLocation":540},"devsecops platform",[564],{"title":267,"links":565},[566,570,575],{"text":567,"config":568},"Ver planes",{"href":269,"dataGaName":569,"dataGaLocation":540},"view plans",{"text":571,"config":572},"¿Por qué elegir GitLab Premium?",{"href":573,"dataGaName":574,"dataGaLocation":540},"/es/pricing/premium/","why premium",{"text":576,"config":577},"¿Por qué elegir GitLab Ultimate?",{"href":578,"dataGaName":579,"dataGaLocation":540},"/es/pricing/ultimate/","why ultimate",{"title":581,"links":582},"Soluciones",[583,588,591,593,598,603,606,609,612,615,617,619,621,626],{"text":584,"config":585},"Transformación digital",{"href":586,"dataGaName":587,"dataGaLocation":540},"/es/topics/digital-transformation/","digital transformation",{"text":589,"config":590},"Seguridad y cumplimiento",{"href":208,"dataGaName":215,"dataGaLocation":540},{"text":200,"config":592},{"href":183,"dataGaName":184,"dataGaLocation":540},{"text":594,"config":595},"Desarrollo ágil",{"href":596,"dataGaName":597,"dataGaLocation":540},"/es/solutions/agile-delivery/","agile delivery",{"text":599,"config":600},"Transformación en la nube",{"href":601,"dataGaName":602,"dataGaLocation":540},"/es/topics/cloud-native/","cloud transformation",{"text":195,"config":604},{"href":197,"dataGaName":605,"dataGaLocation":540},"source code management",{"text":187,"config":607},{"href":189,"dataGaName":608,"dataGaLocation":540},"continuous integration & delivery",{"text":239,"config":610},{"href":241,"dataGaName":611,"dataGaLocation":540},"value stream management",{"text":23,"config":613},{"href":614,"dataGaName":5,"dataGaLocation":540},"/es/solutions/gitops/",{"text":252,"config":616},{"href":254,"dataGaName":255,"dataGaLocation":540},{"text":257,"config":618},{"href":259,"dataGaName":260,"dataGaLocation":540},{"text":262,"config":620},{"href":264,"dataGaName":265,"dataGaLocation":540},{"text":622,"config":623},"Educación",{"href":624,"dataGaName":625,"dataGaLocation":540},"/es/solutions/education/","education",{"text":627,"config":628},"Servicios financieros",{"href":629,"dataGaName":630,"dataGaLocation":540},"/es/solutions/finance/","financial services",{"title":272,"links":632},[633,635,637,639,642,644,646,648,650,652,654,656,658],{"text":284,"config":634},{"href":286,"dataGaName":287,"dataGaLocation":540},{"text":289,"config":636},{"href":291,"dataGaName":292,"dataGaLocation":540},{"text":294,"config":638},{"href":296,"dataGaName":297,"dataGaLocation":540},{"text":299,"config":640},{"href":301,"dataGaName":641,"dataGaLocation":540},"docs",{"text":322,"config":643},{"href":324,"dataGaName":325,"dataGaLocation":540},{"text":317,"config":645},{"href":319,"dataGaName":320,"dataGaLocation":540},{"text":327,"config":647},{"href":329,"dataGaName":330,"dataGaLocation":540},{"text":340,"config":649},{"href":342,"dataGaName":343,"dataGaLocation":540},{"text":332,"config":651},{"href":334,"dataGaName":335,"dataGaLocation":540},{"text":345,"config":653},{"href":347,"dataGaName":348,"dataGaLocation":540},{"text":350,"config":655},{"href":352,"dataGaName":353,"dataGaLocation":540},{"text":355,"config":657},{"href":357,"dataGaName":358,"dataGaLocation":540},{"text":360,"config":659},{"href":362,"dataGaName":363,"dataGaLocation":540},{"title":378,"links":661},[662,664,667,670,672,674,676,680,685,687,689,691],{"text":385,"config":663},{"href":387,"dataGaName":380,"dataGaLocation":540},{"text":665,"config":666},"Jobs",{"href":392,"dataGaName":393,"dataGaLocation":540},{"text":668,"config":669},"Liderazgo",{"href":400,"dataGaName":401,"dataGaLocation":540},{"text":403,"config":671},{"href":405,"dataGaName":406,"dataGaLocation":540},{"text":408,"config":673},{"href":410,"dataGaName":411,"dataGaLocation":540},{"text":413,"config":675},{"href":415,"dataGaName":416,"dataGaLocation":540},{"text":677,"config":678},"Sustainability",{"href":679,"dataGaName":677,"dataGaLocation":540},"/sustainability/",{"text":681,"config":682},"Diversidad, inclusión y pertenencia (DIB)",{"href":683,"dataGaName":684,"dataGaLocation":540},"/es/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":418,"config":686},{"href":420,"dataGaName":421,"dataGaLocation":540},{"text":428,"config":688},{"href":430,"dataGaName":431,"dataGaLocation":540},{"text":433,"config":690},{"href":435,"dataGaName":436,"dataGaLocation":540},{"text":692,"config":693},"Declaración de transparencia sobre la Ley de Esclavitud Moderna",{"href":694,"dataGaName":695,"dataGaLocation":540},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":438,"links":697},[698,701,703,705,710,715,720],{"text":699,"config":700},"Contactar con un experto",{"href":116,"dataGaName":117,"dataGaLocation":540},{"text":447,"config":702},{"href":449,"dataGaName":450,"dataGaLocation":540},{"text":452,"config":704},{"href":454,"dataGaName":455,"dataGaLocation":540},{"text":706,"config":707},"Estado",{"href":708,"dataGaName":709,"dataGaLocation":540},"https://status.gitlab.com/","status",{"text":711,"config":712},"Términos de uso",{"href":713,"dataGaName":714,"dataGaLocation":540},"/terms/","terms of use",{"text":716,"config":717},"Declaración de privacidad",{"href":718,"dataGaName":719,"dataGaLocation":540},"/es/privacy/","privacy statement",{"text":721,"config":722},"Preferencias de cookies",{"dataGaName":723,"dataGaLocation":540,"id":724,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":726},[727,729,731],{"text":711,"config":728},{"href":713,"dataGaName":714,"dataGaLocation":540},{"text":716,"config":730},{"href":718,"dataGaName":719,"dataGaLocation":540},{"text":721,"config":732},{"dataGaName":723,"dataGaLocation":540,"id":724,"isOneTrustButton":12},"content:shared:es:main-footer.yml","Main Footer","shared/es/main-footer.yml","shared/es/main-footer",{"_path":738,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"header":739,"eyebrow":740,"blurb":741,"button":742,"secondaryButton":746,"_id":748,"_type":94,"title":749,"_source":95,"_file":750,"_stem":751,"_extension":98},"/shared/es/next-steps","Comience a entregar mejor software más rápido","Más del 50 % de las empresas de Fortune 100 confían en GitLab","Descubra lo que su equipo puede hacer con la plataforma inteligente de\n\n\nDevSecOps.\n",{"text":109,"config":743},{"href":744,"dataGaName":112,"dataGaLocation":745},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":114,"config":747},{"href":116,"dataGaName":117,"dataGaLocation":745},"content:shared:es:next-steps.yml","Next Steps","shared/es/next-steps.yml","shared/es/next-steps",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":753,"content":755,"_id":93,"_type":94,"title":7,"_source":95,"_file":96,"_stem":97,"_extension":98},{"title":9,"description":10,"config":754},{"ignoreTitleCharLimit":12},[756,764,767,800],{"type":15,"componentName":15,"componentContent":757},{"crumbs":758},[759,761,763],{"title":19,"config":760},{"href":21},{"title":23,"config":762},{"href":25},{"title":27},{"type":29,"componentName":29,"componentContent":765},{"title":9,"text":31,"config":766},{"id":33,"twoColumns":6},{"type":35,"componentName":35,"componentContent":768},{"anchors":769,"components":781},{"text":38,"data":770},[771,773,775,777,779],{"text":41,"config":772},{"href":43},{"text":45,"config":774},{"href":47},{"text":49,"config":776},{"href":51},{"text":53,"config":778},{"href":55},{"text":57,"config":780},{"href":59},[782,785,788,791,794,797],{"type":62,"componentName":62,"componentContent":783},{"text":64,"config":784},{"id":7},{"type":62,"componentName":62,"componentContent":786},{"header":41,"text":68,"config":787},{"id":70},{"type":62,"componentName":62,"componentContent":789},{"header":45,"text":73,"config":790},{"id":75},{"type":62,"componentName":62,"componentContent":792},{"header":49,"text":78,"config":793},{"id":80},{"type":62,"componentName":62,"componentContent":795},{"header":53,"text":83,"config":796},{"id":85},{"type":62,"componentName":62,"componentContent":798},{"header":57,"text":88,"config":799},{"id":90},{"type":92,"componentName":92},1761814443579]