{"id":21016292,"url":"https://github.com/josejuansanchez/terraform-aws","last_synced_at":"2025-05-15T05:32:35.999Z","repository":{"id":151991887,"uuid":"592230817","full_name":"josejuansanchez/terraform-aws","owner":"josejuansanchez","description":"Repositorio para hacer experimentos con Terraform en AWS.","archived":false,"fork":false,"pushed_at":"2023-12-22T19:15:34.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-16T11:58:17.613Z","etag":null,"topics":["aws","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/josejuansanchez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-01-23T09:10:48.000Z","updated_at":"2024-02-14T12:43:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"9b7a922f-d02e-4a0e-beba-923d18afb889","html_url":"https://github.com/josejuansanchez/terraform-aws","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josejuansanchez%2Fterraform-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josejuansanchez%2Fterraform-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josejuansanchez%2Fterraform-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josejuansanchez%2Fterraform-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/josejuansanchez","download_url":"https://codeload.github.com/josejuansanchez/terraform-aws/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225332358,"owners_count":17457710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","terraform"],"created_at":"2024-11-19T10:12:49.134Z","updated_at":"2024-11-19T10:12:49.587Z","avatar_url":"https://github.com/josejuansanchez.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws\n\nRepositorio para hacer experimentos con [Terraform][1] en [AWS][2].\n\nEste repositorio ha sido creado como un recurso complementario para las prácticas de **Infraestructura como Código** del módulo de [Implantación de Aplicaciones Web][3] del **Ciclo Formativo de Grado Superior ASIR**.\n\n## ¿Qué es Terraform?\n\n[Terraform][1] es una herramienta de [infraestructura como código][4] (_Infraestructure as Code, IaC_) que permite crear, modificar y eliminar infraestructura de forma automática. \n\n[Terraform][1] puede gestionar los recursos de diferentes proveedores de servicios en la nube, como [AWS][2], [Google Cloud][5], [Azure][6], etc.\n\n## Instalación de Terraform\n\nPara realizar la instalación de Terraform se recomienda seguir los pasos de la [documentación oficial](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli).\n\n## Instalación del _plugin_ de Terraform para Visual Studio Code\n\nSe recomienda la instalación del _plugin_ de Terraform para Visual Studio Code. \n\nEl _plugin_ se llama **HashiCorp Terraform** y ha sido desarrollado por la empresa HashiCorp.\n\n## Comandos básicos\n\n### Inicializar el directorio de trabajo\n\nEn primer lugar hay que descargar los plugins necesarios del proveedor que se especifica en el archivo de configuración.\n\n```\nterraform init\n```\n\n### Formatear y validar el archivo de configuración\n\nTerraform nos proporciona un comando para formatear el archivo de configuración para que sea más legible. Algunas de las tareas que realiza este comando son, ajustar la indentación, ordenar los argumentos de los bloques de configuración, etc.\n\n```\nterraform fmt\n```\n\nPara validar la sintaxis del archivo de configuración podemos utilizar el siguiente comando.\n\n```\nterraform validate\n```\n\n### Mostrar los cambios que se van a realizar\n\nCompara la configuración del archivo de Terraform con la que existe actualmente en el proveedor de infraestructura y muestra las acciones que se tienen que realizar para conseguir la configuración deseada. Permite al usuario verificar los cambios antes de aplicarlos en el proveedor.\n\n```\nterraform plan\n```\n\n### Aplicar los cambios\n\nCrea los recursos del archivo de configuración en su cuenta de AWS.\n\n```\nterraform apply\n```\n\nSi queremos crear los recursos sin tener que escribir `yes` para confirmar la ejecución del comando, podemos utilizar la opción `-auto-approve`.\n\n```\nterraform apply -auto-approve\n```\n\n### Mostrar el estado actual de los recursos\n\nMuestra los recursos creados en el proveedor y su estado actual.\n\n``` \nterraform show\n```\n\n### Eliminar los recursos\n\nElimina los recursos indicados en el proveedor.\n\n``` \nterraform destroy\n```\n\n## Ejemplos\n\n- [Ejemplo 1](ejemplos/ejemplo-01). Crea una instancia EC2 en AWS.\n- [Ejemplo 2](ejemplos/ejemplo-02). Crea un grupo de seguridad y una instancia EC2 en AWS.\n- [Ejemplo 3](ejemplos/ejemplo-03). Crea un grupo de seguridad, una instancia EC2 en AWS y una IP elástica.\n- [Ejemplo 4](ejemplos/ejemplo-04). Ejecuta un script de bash en una instancia EC2.\n- [Ejemplo 5](ejemplos/ejemplo-05). Configuración de variables en un archivo externo.\n- [Ejemplo 6](ejemplos/ejemplo-06). Configuración de la información de salida.\n\n## Referencias\n\n- [What is Infrastructure as Code with Terraform?](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/infrastructure-as-code).\n- [Install Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli).\n- [Build Infrastructure](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-build).\n- [Change Infrastructure](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-change).\n- [Destroy Infrastructure](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-destroy).\n- [Define Input Variables](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-variables).\n\n[1]: https://www.terraform.io\n[2]: https://aws.amazon.com/es/\n[3]: https://josejuansanchez.org/iaw/\n[4]: https://es.wikipedia.org/wiki/Infraestructura_como_c%C3%B3digo\n[5]: https://cloud.google.com\n[6]: https://azure.microsoft.com/es-es/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosejuansanchez%2Fterraform-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosejuansanchez%2Fterraform-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosejuansanchez%2Fterraform-aws/lists"}