#********************************************************************************* #* * #* ██╗ █████╗ ██████╗ ██████╗ █████╗ ██████╗ ███████╗ * #* ██║ ██╔══██╗██╔══██╗██╔════╝ ██╔══██╗██╔══██╗██╔════╝ * #* ██║ ███████║██████╔╝██║ ███╗███████║██║ ██║█████╗ * #* ██║ ██╔══██║██╔══██╗██║ ██║██╔══██║██║ ██║██╔══╝ * #* ███████╗██║ ██║██████╔╝╚██████╔╝██║ ██║██████╔╝███████╗ * #* ╚══════╝╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝ * #* * #* Laboratorio Modulo VIII - 4 Puntos * #* By: The_White_Hat_? 🕶 * #* * #********************************************************************************* # Variables globales DOCKER_COMPOSE_YML="docker-compose.yml" PORTAINER_URL="localhost:9000" WORDPRESS_URL="localhost:8080" SEPARATOR="*************************************************************************" # Encabezado estético tipo hacker header() { printf " \033[1;32m%s " "$SEPARATOR" printf "* 🌐 Laboratorio Modulo VIII - Prácticas con Docker (4 Pts) * " printf "* Ciber Seguridad by The_White_Hat_? 🕶 * " printf "%s\033[0m " "$SEPARATOR" } # Verificación de instalación de Docker check_docker_installed() { if ! command -v docker &>/dev/null; then printf "\033[1;31m[!] Docker no encontrado, iniciando instalación...\033[0m " sudo dnf -y update --nobest --skip-broken sudo dnf config-manager --add-repo=download.docker.com/linux/centos/docker-ce.repo sudo dnf remove -y podman buildah runc sudo dnf install -y docker-ce --nobest sudo systemctl start docker sudo systemctl enable docker else printf "\033[1;32m[✔] Docker ya está instalado.\033[0m " fi } # Práctica 1: Instalación de Nginx run_practice1() { if ! docker ps | grep -q mi_web; then printf "\033[1;33m[~] Configurando contenedor de Nginx...\033[0m " docker pull nginx mkdir -p /home/website sudo docker run -d --name mi_web -p 8888:80 -v /home/website:/usr/share/nginx/html/ nginx echo "<html><body><h1>Bienvenido a Nginx - Hacker Lab</h1><h2>Con Nginx en Docker</h2></body></html>" | sudo tee /home/website/index.html >/dev/null printf "\033[1;32m[✔] Contenedor creado con éxito. Acceda a: localhost:8888\033[0m " else printf "\033[1;36m[+] El contenedor Nginx ya está en ejecución.\033[0m " fi } # Práctica 2: Instalación de Portainer run_practice2() { if ! docker ps | grep -q portainer; then printf "\033[1;33m[~] Configurando Portainer...\033[0m " docker pull portainer/portainer-ce docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.4 printf "\033[1;32m[✔] Portainer configurado. Acceda en: %s\033[0m " "$PORTAINER_URL" else printf "\033[1;36m[+] Portainer ya está en ejecución.\033[0m " fi } # Práctica 3: Despliegue de Wordpress con Docker Compose run_practice3() { printf "\033[1;33m[~] Configurando Docker Compose y Wordpress...\033[0m " sudo curl -sL "github.com/docker/compose/releases/download/$(curl -s api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose printf "\033[1;36m[*] Docker Compose instalado.\033[0m " printf "\033[1;33m[~] Configurando archivo docker-compose.yml...\033[0m " cat <<EOL | sudo tee "$DOCKER_COMPOSE_YML" >/dev/null services: db: image: mariadb:10 volumes: - data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=wordpress - MYSQL_USER=manager - MYSQL_PASSWORD=secret web: image: wordpress:6 depends_on: - db volumes: - ./target:/var/www/html environment: - WORDPRESS_DB_USER=manager - WORDPRESS_DB_PASSWORD=secret - WORDPRESS_DB_HOST=db - WORDPRESS_DB_NAME=wordpress ports: - 8080:80 volumes: data: EOL printf "\033[1;33m[~] Desplegando contenedores de Wordpress...\033[0m " docker-compose -f "$DOCKER_COMPOSE_YML" up -d && printf "\033[1;32m[✔] Wordpress desplegado en %s\033[0m " "$WORDPRESS_URL" || printf "\033[1;31m[✘] Error en el despliegue de Wordpress.\033[0m " } # Menú principal main() { header check_docker_installed printf " \033[1;36mSeleccione la práctica a ejecutar:\033[0m " printf " \033[1;35m1) Práctica 1: Instalación de Nginx (1 Punto)\033[0m " printf " \033[1;35m2) Práctica 2: Instalación de Portainer (1 Punto)\033[0m " printf " \033[1;35m3) Práctica 3: Despliegue de Wordpress (2 Puntos)\033[0m " printf "\033[1;36mIngrese su elección [1-3]:\033[0m " read -r choice case $choice in 1) run_practice1 ;; 2) run_practice2 ;; 3) run_practice3 ;; *) printf "\033[1;31m[✘] Selección inválida.\033[0m " ;; esac } main
@angelgil292416 күн бұрын
#********************************************************************************* #* * #* ██╗ █████╗ ██████╗ ██████╗ █████╗ ██████╗ ███████╗ * #* ██║ ██╔══██╗██╔══██╗██╔════╝ ██╔══██╗██╔══██╗██╔════╝ * #* ██║ ███████║██████╔╝██║ ███╗███████║██║ ██║█████╗ * #* ██║ ██╔══██║██╔══██╗██║ ██║██╔══██║██║ ██║██╔══╝ * #* ███████╗██║ ██║██████╔╝╚██████╔╝██║ ██║██████╔╝███████╗ * #* ╚══════╝╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝ * #* * #* Laboratorio Modulo VIII - 4 Puntos * #* By: The_White_Hat_? 🕶 * #* * #********************************************************************************* # Variables globales DOCKER_COMPOSE_YML="docker-compose.yml" PORTAINER_URL="localhost:9000" WORDPRESS_URL="localhost:8080" SEPARATOR="*************************************************************************" # Encabezado estético tipo hacker header() { printf " \033[1;32m%s " "$SEPARATOR" printf "* 🌐 Laboratorio Modulo VIII - Prácticas con Docker (4 Pts) * " printf "* Ciber Seguridad by The_White_Hat_? 🕶 * " printf "%s\033[0m " "$SEPARATOR" } # Verificación de instalación de Docker check_docker_installed() { if ! command -v docker &>/dev/null; then printf "\033[1;31m[!] Docker no encontrado, iniciando instalación...\033[0m " sudo dnf -y update --nobest --skip-broken sudo dnf config-manager --add-repo=download.docker.com/linux/centos/docker-ce.repo sudo dnf remove -y podman buildah runc sudo dnf install -y docker-ce --nobest sudo systemctl start docker sudo systemctl enable docker else printf "\033[1;32m[✔] Docker ya está instalado.\033[0m " fi } # Práctica 1: Instalación de Nginx run_practice1() { if ! docker ps | grep -q mi_web; then printf "\033[1;33m[~] Configurando contenedor de Nginx...\033[0m " docker pull nginx mkdir -p /home/website sudo docker run -d --name mi_web -p 8888:80 -v /home/website:/usr/share/nginx/html/ nginx echo "<html><body><h1>Bienvenido a Nginx - Hacker Lab</h1><h2>Con Nginx en Docker</h2></body></html>" | sudo tee /home/website/index.html >/dev/null printf "\033[1;32m[✔] Contenedor creado con éxito. Acceda a: localhost:8888\033[0m " else printf "\033[1;36m[+] El contenedor Nginx ya está en ejecución.\033[0m " fi } # Práctica 2: Instalación de Portainer run_practice2() { if ! docker ps | grep -q portainer; then printf "\033[1;33m[~] Configurando Portainer...\033[0m " docker pull portainer/portainer-ce docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.4 printf "\033[1;32m[✔] Portainer configurado. Acceda en: %s\033[0m " "$PORTAINER_URL" else printf "\033[1;36m[+] Portainer ya está en ejecución.\033[0m " fi } # Práctica 3: Despliegue de Wordpress con Docker Compose run_practice3() { printf "\033[1;33m[~] Configurando Docker Compose y Wordpress...\033[0m " sudo curl -sL "github.com/docker/compose/releases/download/$(curl -s api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose printf "\033[1;36m[*] Docker Compose instalado.\033[0m " printf "\033[1;33m[~] Configurando archivo docker-compose.yml...\033[0m " cat <<EOL | sudo tee "$DOCKER_COMPOSE_YML" >/dev/null services: db: image: mariadb:10 volumes: - data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=wordpress - MYSQL_USER=manager - MYSQL_PASSWORD=secret web: image: wordpress:6 depends_on: - db volumes: - ./target:/var/www/html environment: - WORDPRESS_DB_USER=manager - WORDPRESS_DB_PASSWORD=secret - WORDPRESS_DB_HOST=db - WORDPRESS_DB_NAME=wordpress ports: - 8080:80 volumes: data: EOL printf "\033[1;33m[~] Desplegando contenedores de Wordpress...\033[0m " docker-compose -f "$DOCKER_COMPOSE_YML" up -d && printf "\033[1;32m[✔] Wordpress desplegado en %s\033[0m " "$WORDPRESS_URL" || printf "\033[1;31m[✘] Error en el despliegue de Wordpress.\033[0m " } # Menú principal main() { header check_docker_installed printf " \033[1;36mSeleccione la práctica a ejecutar:\033[0m " printf " \033[1;35m1) Práctica 1: Instalación de Nginx (1 Punto)\033[0m " printf " \033[1;35m2) Práctica 2: Instalación de Portainer (1 Punto)\033[0m " printf " \033[1;35m3) Práctica 3: Despliegue de Wordpress (2 Puntos)\033[0m " printf "\033[1;36mIngrese su elección [1-3]:\033[0m " read -r choice case $choice in 1) run_practice1 ;; 2) run_practice2 ;; 3) run_practice3 ;; *) printf "\033[1;31m[✘] Selección inválida.\033[0m " ;; esac } main
@angelgil292416 күн бұрын
#********************************************************************************* #* * #* ██╗ █████╗ ██████╗ ██████╗ █████╗ ██████╗ ███████╗ * #* ██║ ██╔══██╗██╔══██╗██╔════╝ ██╔══██╗██╔══██╗██╔════╝ * #* ██║ ███████║██████╔╝██║ ███╗███████║██║ ██║█████╗ * #* ██║ ██╔══██║██╔══██╗██║ ██║██╔══██║██║ ██║██╔══╝ * #* ███████╗██║ ██║██████╔╝╚██████╔╝██║ ██║██████╔╝███████╗ * #* ╚══════╝╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝ * #* * #* Laboratorio Modulo VIII - 4 Puntos * #* By: The_White_Hat_? 🕶 * #* * #********************************************************************************* # Variables globales DOCKER_COMPOSE_YML="docker-compose.yml" PORTAINER_URL="localhost:9000" WORDPRESS_URL="localhost:8080" SEPARATOR="*************************************************************************" # Encabezado estético tipo hacker header() { printf " \033[1;32m%s " "$SEPARATOR" printf "* 🌐 Laboratorio Modulo VIII - Prácticas con Docker (4 Pts) * " printf "* Ciber Seguridad by The_White_Hat_? 🕶 * " printf "%s\033[0m " "$SEPARATOR" } # Verificación de instalación de Docker check_docker_installed() { if ! command -v docker &>/dev/null; then printf "\033[1;31m[!] Docker no encontrado, iniciando instalación...\033[0m " sudo dnf -y update --nobest --skip-broken sudo dnf config-manager --add-repo=download.docker.com/linux/centos/docker-ce.repo sudo dnf remove -y podman buildah runc sudo dnf install -y docker-ce --nobest sudo systemctl start docker sudo systemctl enable docker else printf "\033[1;32m[✔] Docker ya está instalado.\033[0m " fi } # Práctica 1: Instalación de Nginx run_practice1() { if ! docker ps | grep -q mi_web; then printf "\033[1;33m[~] Configurando contenedor de Nginx...\033[0m " docker pull nginx mkdir -p /home/website sudo docker run -d --name mi_web -p 8888:80 -v /home/website:/usr/share/nginx/html/ nginx echo "<html><body><h1>Bienvenido a Nginx - Hacker Lab</h1><h2>Con Nginx en Docker</h2></body></html>" | sudo tee /home/website/index.html >/dev/null printf "\033[1;32m[✔] Contenedor creado con éxito. Acceda a: localhost:8888\033[0m " else printf "\033[1;36m[+] El contenedor Nginx ya está en ejecución.\033[0m " fi } # Práctica 2: Instalación de Portainer run_practice2() { if ! docker ps | grep -q portainer; then printf "\033[1;33m[~] Configurando Portainer...\033[0m " docker pull portainer/portainer-ce docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.4 printf "\033[1;32m[✔] Portainer configurado. Acceda en: %s\033[0m " "$PORTAINER_URL" else printf "\033[1;36m[+] Portainer ya está en ejecución.\033[0m " fi } # Práctica 3: Despliegue de Wordpress con Docker Compose run_practice3() { printf "\033[1;33m[~] Configurando Docker Compose y Wordpress...\033[0m " sudo curl -sL "github.com/docker/compose/releases/download/$(curl -s api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose printf "\033[1;36m[*] Docker Compose instalado.\033[0m " printf "\033[1;33m[~] Configurando archivo docker-compose.yml...\033[0m " cat <<EOL | sudo tee "$DOCKER_COMPOSE_YML" >/dev/null services: db: image: mariadb:10 volumes: - data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=wordpress - MYSQL_USER=manager - MYSQL_PASSWORD=secret web: image: wordpress:6 depends_on: - db volumes: - ./target:/var/www/html environment: - WORDPRESS_DB_USER=manager - WORDPRESS_DB_PASSWORD=secret - WORDPRESS_DB_HOST=db - WORDPRESS_DB_NAME=wordpress ports: - 8080:80 volumes: data: EOL printf "\033[1;33m[~] Desplegando contenedores de Wordpress...\033[0m " docker-compose -f "$DOCKER_COMPOSE_YML" up -d && printf "\033[1;32m[✔] Wordpress desplegado en %s\033[0m " "$WORDPRESS_URL" || printf "\033[1;31m[✘] Error en el despliegue de Wordpress.\033[0m " } # Menú principal main() { header check_docker_installed printf " \033[1;36mSeleccione la práctica a ejecutar:\033[0m " printf " \033[1;35m1) Práctica 1: Instalación de Nginx (1 Punto)\033[0m " printf " \033[1;35m2) Práctica 2: Instalación de Portainer (1 Punto)\033[0m " printf " \033[1;35m3) Práctica 3: Despliegue de Wordpress (2 Puntos)\033[0m " printf "\033[1;36mIngrese su elección [1-3]:\033[0m " read -r choice case $choice in 1) run_practice1 ;; 2) run_practice2 ;; 3) run_practice3 ;; *) printf "\033[1;31m[✘] Selección inválida.\033[0m " ;; esac } main
@heirangabriel925521 күн бұрын
quien en el 2024?¿
@angelgil292421 күн бұрын
😂
@angelgil292421 күн бұрын
"Pido disculpas, parece que mi playlist se coló en el video, aparte del asunto de que los comandos de arriba se ven recortados. Cualquier cosa, escríbanme si tienen alguna duda.
@angelgil292421 күн бұрын
"Parece que KZbin resume las URLs. Pueden reemplazar el comando y usar: curl -LO github.com/LMDB/lmdb/archive/refs/tags/LMDB_0.9.29.tar.gz
@angelgil292421 күн бұрын
"Pido disculpas, parece que mi playlist se coló en el video, aparte del asunto de que los comandos de arriba se ven recortados. Cualquier cosa, escríbanme si tienen alguna duda."
@eduardojavier11224 күн бұрын
eh visto varios videos parecidos al tuyo, y que bueno que el tuyo se entienda mejor.. se vee que investigas
@angelgil292424 күн бұрын
¡Gracias! Me alegra que te haya sido útil.
@SauloCuevasАй бұрын
brooo ayuda :(
@angelgil2924Ай бұрын
@@SauloCuevas ¿Qué paso?
@SauloCuevasАй бұрын
@@angelgil2924 estoy teniendo problemas
@SauloCuevasАй бұрын
@@angelgil2924 te estoy escribiendo por teams
@SauloCuevasАй бұрын
@@angelgil2924 estoy teniendo problemas con ese Lab
@SauloCuevasАй бұрын
@@angelgil2924 te escribi por teams bro
@ebabysrtАй бұрын
duro🔥
@ebabysrtАй бұрын
maestro, podría hacer un video sobre cómo hacer snapshots?