Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,18 @@ const config = {
// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en']
i18n: {
defaultLocale: 'en',
locales: ['en', 'es'],
localeConfigs: {
en: {
label: 'English',
},
es: {
label: 'Español',
},
},
},
scripts: [
{
src: 'https://static.cloudflareinsights.com/beacon.min.js',
Expand Down
50 changes: 50 additions & 0 deletions i18n/es/docusaurus-plugin-content-docs/current/Welcome.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
sidebar_position: 1
slug: /
---

# Bienvenido

Learn to Cloud (L2C) es un material de aprendizaje creado bajo la creencia de que cualquier persona puede aprender las habilidades fundamentales de ingeniería en la nube con la guía y la disciplina adecuadas.

Esta guía está enfocada en ayudarte a aprender las habilidades de un **ingeniero de nube junior**, no de ningún otro rol.

## 💻 ¿Por qué debería usarlo?

Nuestra plataforma está intencionadamente:

- **diseñada para guiar, no para llevarte de la mano**

Proporcionamos los detalles esenciales mientras dejamos espacios intencionados para fomentar el pensamiento crítico, la resolución de problemas y la autosuficiencia.

- **centrada en la práctica con propósito**

Equilibramos el aprendizaje práctico con teoría cuidadosamente integrada para promover un aprendizaje intencional en lugar de una progresión pasiva.

- **en constante evolución**

Construida y actualizada por profesionales que trabajan activamente en el campo. Espera actualizaciones que la mantengan relevante y alineada con los estándares de la industria.

## 🤑 ¿Costo?

Sin costo, sin necesidad de crear una cuenta, nada. No tienes excusas. L2C es de código abierto y gratuito, y los recursos que recomendamos son gratuitos o muy asequibles.

## ⌚️ ¿Tiempo?

A tu propio ritmo. Sin embargo, podrías cubrir todo en aproximadamente **6 meses** dedicando unas **2 horas por día** y un poco más los fines de semana.

## Requisitos previos

- [Dale una estrella al repositorio de GitHub para mantenerte informado sobre las actualizaciones](https://github.com/learntocloud/learn-to-cloud).
- [Suscríbete gratis para obtener tutoriales de Cloud y consejos, recursos y orientación profesional](http://youtube.com/madebygps).
- Únete al [Discord de Learn to Cloud](https://discord.gg/Qymw28nQX6) y preséntate en el canal **#intros-and-socials**.

- Para actualizaciones del contenido y los recursos de la guía, sigue a [GPS](https://x.com/madebygps), [Rishab](https://x.com/rishabincloud) y [L2C](https://x.com/learntocloud) en **X**.

## 💪🏽 ¿Qué necesitas saber antes de comenzar?

Los únicos requisitos son **motivación y disciplina** — estos son aspectos que no podemos proporcionarte.

Entrar al mundo tecnológico nunca ha sido fácil, a pesar de lo que algunos creadores de contenido puedan sugerir. Este viaje será un desafío, pero si tienes un interés genuino en la ingeniería en la nube, valdrá la pena tu esfuerzo.

¡Buena suerte en tu viaje!
37 changes: 0 additions & 37 deletions i18n/es/docusaurus-plugin-content-docs/current/index.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Tema 1: Control de Versiones

Aquí en **L2C** utilizamos **Git** y **GitHub** para nuestro control de versiones. Necesito que dediques unos días a ponerte al día con estas herramientas.

1. Estudia: [Introducción a Git](https://learn.microsoft.com/training/modules/intro-to-git/)
2. Crea una [cuenta de GitHub](https://docs.github.com/get-started/start-your-journey/creating-an-account-on-github)
3. Ahora que tienes una cuenta de GitHub, marca con una estrella el [Repositorio de Learn to Cloud](https://github.com/learntocloud/learn-to-cloud)
4. En L2C somos grandes admiradores de las capacidades de la **Inteligencia Artificial Generativa (GenAI)** para ayudar en el aprendizaje. La utilizamos mucho para profundizar y aclarar conceptos. Es un buen momento para que configures una cuenta con cualquier herramienta que prefieras y comiences a usarla para tu propio aprendizaje.
Pruébalo primero poniendo a prueba tus conocimientos sobre qué es el control de versiones. Usa un asistente de IA para comprobar tu comprensión de los conceptos. Puedes utilizar este mensaje como plantilla:

``` txt
Estoy estudiando ingeniería en la nube y recientemente aprendí sobre control de versiones. Te proporcionaré una explicación al respecto y por favor hazme cualquier pregunta si mi explicación no es clara. Quiero asegurarme de que realmente entiendo este concepto, así que por favor no me corrijas, simplemente haz preguntas hasta que logre explicarlo correctamente. Aquí está mi explicación: el control de versiones es
```

5. Utilizamos **VS Code** para toda nuestra programación. Es momento de que [instales VS Code](https://code.visualstudio.com/)
6. Si trabajas en una computadora con **Windows** (los usuarios de Mac y Linux pueden saltarse este paso), deberás [seguir esta guía para configurar WSL](https://learn.microsoft.com/windows/wsl/install).
Todos nuestros laboratorios y herramientas esperan un entorno basado en Linux; WSL proporcionará eso.
Luego sigue esta guía: [Comienza a usar Visual Studio Code con el Subsistema de Windows para Linux](https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-vscode)
7. A estas alturas, ya deberías tener los conceptos básicos de **Git** y una cuenta de **GitHub**. Ahora necesito que aprendas sobre los comandos de línea de comandos que usarás con frecuencia.
Lee: [Línea de Comandos para Principiantes – Cómo Usar la Terminal como un Profesional](https://www.freecodecamp.org/news/command-line-for-beginners/#heading-most-common-and-useful-commands-to-use)
8. Ya estás listo para copiar el laboratorio localmente (**clonarlo**) en tu computadora.
Usando una terminal, crea una carpeta en tu computadora donde almacenarás todos tus laboratorios y proyectos.
Nómbrala `l2c`. Usa los comandos `mkdir` y `cd` para hacerlo.
9. Dentro de tu carpeta `l2c`, clona el repositorio del laboratorio:
`git clone https://github.com/learntocloud/linux-ctfs`
10. Usamos **Markdown** para toda nuestra documentación y archivos README. Es un lenguaje de marcado sencillo que te permite dar formato al texto fácilmente.
Necesito que aprendas los conceptos básicos de Markdown y crees un archivo README para tu perfil de GitHub.
Estudia: [Comunícate usando Markdown](https://learn.microsoft.com/en-us/training/modules/communicate-using-markdown/)
11. [Crea un archivo README para tu perfil de GitHub](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme#adding-a-profile-readme)
12. **Acción:** Clona tu repositorio README en tu máquina local. Usa **VS Code** para editarlo y sube los cambios de nuevo a GitHub desde la terminal de VS Code.
Aquí tienes una [excelente guía](https://www.freecodecamp.org/news/how-to-use-markdown-in-vscode/) sobre cómo usar Markdown en VS Code.
No sientas que tienes que hacer un README muy elegante. Escribe una breve descripción sobre quién eres y agrega enlaces a tus redes sociales.

---

## Conceptos de Control de Versiones que Debes Conocer

- ¿Qué es el control de versiones?
- ¿Qué es Markdown?
- ¿Qué es un repositorio Git?
- ¿Qué significa clonar un repositorio?
- Git debe estar instalado en tu computadora
- VS Code debe estar instalado en tu computadora
- WSL debe estar configurado para los usuarios de Windows
- Has creado una carpeta en tu computadora con el comando `mkdir` en la terminal
- El repositorio del laboratorio debe estar clonado localmente en tu computadora
- Tu repositorio README debe estar clonado localmente en tu computadora
- Debes haber marcado con una estrella el repositorio de Learn to Cloud

---

**Genial, cuando estés listo, continúa con el siguiente tema.**
21 changes: 21 additions & 0 deletions i18n/es/docusaurus-plugin-content-docs/current/phase1/2-cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Tema 2: Configuración de la CLI en la Nube

Ahora vamos a configurar tu entorno en la nube. Asegúrate de haber creado una cuenta con alguno de nuestros proveedores de nube compatibles: **AWS**, **Azure** o **GCP**.

1. Crea una cuenta en [AWS](https://aws.amazon.com/resources/create-account/) o [Azure](https://azure.microsoft.com/es-es/free/) o [GCP](https://cloud.google.com/free)

2. Una vez que tengas una cuenta, necesitas familiarizarte con la consola en la nube del proveedor que seleccionaste. Consulta: [Consola de administración de AWS](https://aws.amazon.com/getting-started/hands-on/getting-started-with-aws-management-console/) o [Portal de Azure](https://docs.microsoft.com/es-es/azure/azure-portal/azure-portal-overview)

3. Ahora deberías estar un poco familiarizado con la consola de tu proveedor en la nube. Por supuesto, puedes desplegar recursos haciendo clic, pero preferimos que uses la **CLI**. Estudia: [Por qué usar una CLI](https://www.freecodecamp.org/news/command-line-for-beginners/).

4. Instala la [AWS CLI](https://aws.amazon.com/cli/) o la [Azure CLI](https://docs.microsoft.com/es-es/cli/azure/install-azure-cli) o la [GCP CLI](https://cloud.google.com/sdk/docs/install)

## Conceptos de CLI que debes conocer

- ¿Qué es una CLI?
- Los beneficios de usar una CLI frente a una interfaz gráfica (UI) para la gestión de recursos en la nube.
- Creaste una cuenta en la nube.
- Instalaste una CLI en la nube.
- Configuraste la CLI con tu cuenta.

Genial, cuando estés listo, continúa al siguiente tema.
28 changes: 28 additions & 0 deletions i18n/es/docusaurus-plugin-content-docs/current/phase1/3-iac.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Tema 3: Infraestructura como Código

Dedicaremos mucho más tiempo a **Infraestructura como Código (IaC)** y otras prácticas de **DevOps** más adelante, ya que todos nuestros laboratorios las utilizan.
Por ahora, necesito que te familiarices con algunos conceptos de **Terraform** (una herramienta de infraestructura como código):

1. Estudia: [¿Qué es IaC?](https://www.hashicorp.com/resources/what-is-infrastructure-as-code)
2. Estudia: [¿Qué es la Infraestructura como Código con Terraform?](https://developer.hashicorp.com/terraform/intro)
3. Estudia: [Terraform init](https://developer.hashicorp.com/terraform/cli/commands/init)
4. Estudia: [Terraform apply](https://developer.hashicorp.com/terraform/cli/commands/apply)
5. Acción: Usa un asistente de IA para poner a prueba tu comprensión de los conceptos. Puedes usar este mensaje como plantilla:

```txt
Estoy estudiando ingeniería en la nube y recientemente aprendí sobre Infraestructura como Código. Te daré una explicación sobre esto y por favor hazme cualquier pregunta si mi explicación no es clara. Quiero asegurarme de que realmente entiendo este concepto, así que por favor no me corrijas, solo haz preguntas hasta que logre explicarlo correctamente. Aquí está mi explicación: IaC es
```

6. Finalmente, debemos asegurarnos de que **Terraform esté instalado**: [Instalar Terraform](https://developer.hashicorp.com/terraform/install).
Para los usuarios de Windows, asegúrate de instalarlo dentro de **Ubuntu** a través de **WSL**.

## Conceptos de Terraform que debes conocer

- ¿Qué es la Infraestructura como Código?
- ¿Qué es Terraform?
- ¿Por qué usar Terraform?
- Terraform debe estar instalado en tu computadora.
- ¿Qué hace el comando `terraform init`?
- ¿Qué hace el comando `terraform apply`?

Genial, cuando estés listo, continúa al siguiente tema.
17 changes: 17 additions & 0 deletions i18n/es/docusaurus-plugin-content-docs/current/phase1/4-ssh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Tema 4: SSH

Ahora necesitas aprender cómo acceder a una máquina virtual mediante **SSH**.

## Tareas

1. Estudia: [¿Qué es SSH?](https://www.cloudflare.com/learning/access-management/what-is-ssh/)

2. [Azure: Realiza este ejercicio para practicar tus habilidades](https://learn.microsoft.com/training/modules/develop-on-remote-machine/) o [AWS: Realiza este ejercicio para practicar tus habilidades](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-ssh.html) o [GCP: Lee esto para aprender cómo conectarte por SSH a una VM en Google Cloud](https://cloud.google.com/compute/docs/connect/standard-ssh)

## Conceptos de SSH que debes conocer

- ¿Qué es SSH?
- Cómo conectarse a una máquina virtual (VM) desde mi terminal local.
- Cómo conectarse mediante claves SSH (no contraseñas).

¡Excelente trabajo! Cuando estés listo, continúa al siguiente tema.
140 changes: 140 additions & 0 deletions i18n/es/docusaurus-plugin-content-docs/current/phase1/5-clibasics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Tema 5: Fundamentos de la CLI de Linux

Necesitas tener habilidades con la CLI de Linux para trabajar en la nube. Recomendamos que leas [Linux Basics for Hackers](https://nostarch.com/linuxbasicsforhackers#content). También puedes revisar la lista de comandos a continuación e investigar cada uno individualmente, aunque recomendamos el libro.

## Comandos Fundamentales

Antes de comenzar los desafíos, familiarízate con estos comandos esenciales:

- `pwd`: Imprime el directorio de trabajo – muestra tu ubicación actual.
- `cd`: Cambiar de directorio – navegar entre carpetas.
- `ls`: Listar el contenido del directorio.
- `cat`: Mostrar el contenido de un archivo.

## Desafío 1: Archivos Ocultos

Aprende estos comandos para encontrar archivos ocultos:

- `ls -a`: Lista todos los archivos, incluidos los ocultos.
- `ls -la`: Listado detallado incluyendo archivos ocultos.
- `find . -name ".*"`: Buscar archivos ocultos.

**Conceptos clave:**

- En Linux, los archivos ocultos comienzan con un punto (`.`).
- Los archivos ocultos no se muestran por defecto.
- Usa la opción `-a` con `ls` para mostrar archivos ocultos.

## Desafío 2: Búsqueda de Archivos

Domina estos comandos de búsqueda de archivos:

- `find /path -name "pattern"`: Buscar archivos por nombre.
- `find /path -type f`: Buscar archivos regulares.
- `locate filename`: Búsqueda rápida de archivos usando una base de datos.
- `grep -r "text" /path`: Buscar recursivamente dentro del contenido de archivos.

## Desafío 3: Análisis del Tamaño de Archivos

Comandos para analizar tamaños de archivos:

- `ls -lh`: Listar archivos con tamaños legibles para humanos.
- `du -h`: Mostrar uso de disco.
- `sort -h`: Ordenar por tamaños legibles para humanos.
- `find /path -type f -size +1M`: Encontrar archivos mayores a 1MB.

## Desafío 4: Investigación de Usuarios

Comandos para la gestión/investigación de usuarios:

- `id username`: Mostrar ID de usuario y grupos.
- `cat /etc/passwd`: Ver cuentas de usuario.
- `getent passwd uid`: Obtener usuario por UID.
- `ls -l /home/`: Listar directorios home.

**Comprendiendo archivos de usuario:**

- `/etc/passwd`: Información de cuentas de usuario.
- `~/.profile` y `~/.bashrc`: Archivos de configuración del shell.

## Desafío 5: Análisis de Permisos

Comandos para trabajar con permisos:

- `ls -l`: Ver permisos de archivos.
- `stat filename`: Información detallada del archivo.
- `find / -perm 777`: Encontrar archivos con permisos específicos.
- `chmod`: Cambiar permisos de archivos.

## Desafío 6: Servicios de Red

Comandos para investigar la red:

- `netstat -tuln`: Listar puertos en escucha.
- `ss -tuln`: Alternativa moderna a netstat.
- `lsof -i`: Listar archivos de red abiertos.
- `curl localhost:port`: Probar conectividad HTTP a un servicio.
- `nc -zv host port`: Probar conexión TCP.

## Desafío 7: Codificación/Decodificación

Comandos para el procesamiento de texto:

- `base64`: Codificar o decodificar texto.
- `echo -n "text"`: Echo sin nueva línea.
- El operador pipe (`|`) para encadenar comandos.

## Desafío 8: Configuración SSH

Comandos relacionados con SSH y buenas prácticas:

- `ls -la ~/.ssh/`: Listar el contenido del directorio SSH.
- `find ~/.ssh -type f`: Encontrar archivos relacionados con SSH.
- `chmod 600`: Establecer permisos seguros para claves.
- `ssh-keygen`: Generar claves SSH.

**Buenas prácticas:**

- Mantén tus claves privadas seguras.
- Asegura permisos correctos en archivos (por ejemplo, 600 para claves).
- Revisa tu archivo `authorized_keys`.

## Desafío 9: Solución de Problemas DNS

Ahora que los desafíos incluyen problemas de configuración DNS, aprende a comparar y editar archivos de configuración:

- Familiarízate con `/etc/resolv.conf` y sus respaldos.
- Practica usando herramientas de comparación de archivos para detectar diferencias.
- Revisa comandos de edición para modificar archivos de forma segura.

## Desafío 10: Carga Remota

En este desafío, activarás una bandera subiendo un archivo:

- Entiende métodos comunes para transferir archivos (por ejemplo, copia segura u utilidades similares).
- Aprende a trabajar con directorios remotos para detectar archivos nuevos.
- Experimenta con distintos enfoques de transferencia de archivos.

## Desafío 11: Configuración Web

Este desafío implica identificar un puerto no estándar de un servidor web:

- Aprende a localizar y revisar archivos de configuración (por ejemplo, de `nginx`).
- Familiarízate con lo básico de gestión de servicios para reiniciar o recargar servicios.
- Entiende cómo las configuraciones afectan el comportamiento de servidores web.

## Desafío 12: Análisis de Tráfico de Red

En el desafío más reciente, analizarás tráfico de red para descubrir mensajes ocultos:

- Familiarízate con métodos de captura de tráfico de red.
- Aprende a inspeccionar el contenido de paquetes en busca de datos ocultos.
- Experimenta con herramientas de análisis de red sin depender de recetas exactas de comandos.

## Consejos Generales

1. Usa las páginas `man` para entender las opciones de los comandos.
2. Experimenta con distintas combinaciones de comandos y técnicas de piping.
3. Trabaja cada desafío para construir tu comprensión de forma incremental.

Recuerda: el objetivo es aprender los comandos y comprender cómo funcionan. Tómate tiempo para experimentar con cada comando y explorar sus opciones y comportamientos.
Loading