Git Product home page Git Product logo

peladonerd's Introduction

ko-fi

Pelado Nerd repo

Este es un repo donde subo todo el código que uso para los videos de mi canal en youtube. Voy a tratar de mantenerlo actualizado y con toda la documentación que pueda, pero no prometo nada.

Contribuciones

Como siempre, cualquier contribución es bienvenida, simplemente forkeá este repo y haceme una PR.

Listado de videos que tienen archivos hasta ahora:

Si el nombre del capítulo no tiene link, es porque no necesité postear ningún archivo.

  1. Docker

    1. Introducción a Docker/ video
    2. Imágenes / video
    3. Volúmenes y puertos / video
    4. Docker-compose / video
    5. Networking / video
    6. Multi Stage Builds / video
    7. CI/CD / video
    8. Swarm / video
    9. Multi-Arch Builds / video
    10. Docker Registry / video
    11. Buildkit / video
    12. Curso Docker Completo 2021 / video
    13. Docker Deskop - Alternativas / video
  2. Raspberry

    1. Instalación de Docker en Raspberry y compartir archivos samba / video
    2. Descargando torrents automáticamente / video
    3. Plex sobre Docker en Raspbery / video
    4. Acceso remoto a tu Raspberry usando NO-IP.com / video
    5. Flexget / video
    6. Modo Kiosco / video
    7. Nginx + SSL en Raspberry / video
  3. Kubernetes

    1. Creando un cluster de Kubernetes con Digital Ocean / video
    2. Servicios y Load Balancers / video
    3. Deployments / video
    4. Requests y limites / video
    5. HPA / video
    6. Liveness y Readiness Probes / video
    7. Prometheus / video
    8. Ingress / video
    9. Daemonsets / video
    10. Logstash / video
    11. Volumenes (parte 1) / video
    12. Volumenes (parte 2) / video
    13. StatefulSets / video
    14. CI/CD Repo con los archivos CircleCI/ video
    15. Wordpres + MySQL / video
    16. ENVs y Secrets / video
    17. Prometheus 2: Grafana / video
    18. RBAC: Roles, RoleBinding, ClusterRole, ClusterRoleBinding, ServiceAccount / video
    19. CRDs + Traefik V2 / video
    20. Kustomize / video
    21. kubeadm / video
    22. Rancher / video
    23. Jobs y Cronjobs / video
    24. Thanos / video
    25. HPA 2: Custom metrics / video
    26. ArgoCD / video
    27. Pod Priorities / video
    28. Pod Disruption Budgets / video
    29. k0s / video
    30. istio / video
    31. Bootstrap Apps en Kubernetes / video
    32. LimitRange / video
    33. Helm 2 / video
    34. Curso Kubernetes Completo 2021 / video
    35. external-dns / video
    36. MetalLB / video
    37. crossplane / video
    38. fluent-bit / video
    39. cluster-autoscaler / video
  4. Varios

    1. Creá tu sitio con SSL gratis con Docker y Let's encrypt / video
    2. Traefik / video
    3. Poste / video
    4. Gitlab CI/CD / video
    5. Dia del SRE 3: Scrum / video
    6. OpenVPN / video
    7. Podman / video
    8. GitHub Actions / video
    9. Transmission Bot para Telegram / video
    10. CoreDNS / video
    11. RCA / video
    12. WireGuard + PiHole / video
    13. VIM / video
    14. Mastodon / video
    15. Comandos Linux 3 / video
    16. Comandos Raros Linux / video
    17. Ollama / video
    18. Wasm / video
    19. Excalidraw / video
  5. Viernes 2 Minutos

    1. Docker-compose override / video
    2. Kubernetes secrets / video
    3. Minikube / video
    4. OpenVPN / video
    5. GitLab / video
    6. Pi-Hole / video
    7. DuckDNS / video
    8. Rsnapshot / video
    9. Cups / video
    10. kubectl tips / video
    11. kind / video
    12. Telepresence / video
    13. Diferencia entre RUN, CMD y ENTRYPOINT / video
    14. MySQL Operator / video
    15. Supervisord / video
    16. Popeye / video
    17. Init Containers / video
    18. Netdata / video
    19. Matrix / video
    20. Kubernetes Dashboard / video
    21. Netatalk / TimeMachine opensource / video
    22. WireGuard / video
    23. Cronopete / video
    24. Vsftpd / video
    25. Rclone / video
    26. Portainer / video
    27. GeoIP / video
    28. Swarmpit / video
    29. Kompose / video
    30. Cert-manager en Kubernetes / video
    31. Nginx-Proxy-Manager / video
    32. Gemini / video
    33. ImagePullSecret-Patcher / video
    34. MinIO / video
    35. Gaming en Kubernetes - Additronk8s / video
    36. Whoogle / video
    37. MetalLB / video
    38. Fluent-bit / video
    39. Error-pages / video
  6. Terraform

    1. Terraform 1 / video
    2. Terraform 2 / video
  7. Streamings

    1. Gitlab CI/CD / video

peladonerd's People

Contributors

cdecarlos avatar chanix95 avatar darkmtrance avatar dependabot[bot] avatar faritvidal avatar gberlotperalta avatar haroldbrenesh avatar imcosta avatar iranzoferri avatar javierrami avatar jcminarro avatar jeastman19 avatar jlopez-technisys avatar johnclark84 avatar jossimunoz avatar juanyque avatar kevinszuchet avatar kmilo93sd avatar miguekos avatar mricim avatar mrnovalles avatar pablokbs avatar paganuzzi avatar paulomcnally avatar petermcgor avatar sebademasi10 avatar sebaminguez avatar ssaid avatar thelman avatar victorargento avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

peladonerd's Issues

Conectar al panel webmail desde fuera

Hola!,

realize pruebas y envió y recibo mails con el un subdominio de duckdns, pero no consigo entrar al panel webmail o admin desde fuera.

Demasiado tiempo en responder aunque realizo un ping y no la ttl es de icmp_seq=3 ttl=54 time=45.2 ms

Soy novato en esto. Muchas gracias
image

No puedo levantar el container de configmap-reload del alertmanager

Buenas, primero que nada quería agradecerte un montón por todo el contenido que compartis en tu video. Estoy teniendo un problema cuando quiero levantar el deployment del alertmanager para notificar via slack (tratando de seguir al pie de la letra tu clase 7 de Kubernetes).

Al principio no podía levantar el PVC porque me decía que no encontraba el storageclass.storage.k8s.io standard. Saque la línea de storageClassName del yaml del pvc para que use el default de mi cluster (o eso entendí que hacía) y logre crear el volumen.
Ahora el problema está en que hay uno de los containers del alert manager (el del configmap-reload) que no puede levantar debido a este error:

Error: failed to start container "prometheus-alertmanager-configmap-reload": Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:415: setting cgroup config for procHooks process caused \\\"failed to write \\\\\\\"10485760\\\\\\\" to \\\\\\\"/sys/fs/cgroup/memory/kubepods/pod5d900e7d-627d-4622-a729-a055245697ba/prometheus-alertmanager-configmap-reload/memory.limit_in_bytes\\\\\\\": write /sys/fs/cgroup/memory/kubepods/pod5d900e7d-627d-4622-a729-a055245697ba/prometheus-alertmanager-configmap-reload/memory.limit_in_bytes: device or resource busy\\\"\"": unknown

Esto sólo me sucede utilizando minikube. Si gasto los dolares que nos regalaste en digital ocean ahi funciona correctamente.
Se te ocurre que puedo hacer para solucionarlo?
Estuve viendo este issue para tratar de entender el problema.

Estoy usando:

  • minikube v1.7.3
  • kubctl v1.17.3
  • docker: v19.03.6

No funciona Docker Sock Raspberry Pi

Hola Pablo, te cuento mi problema, no me está funcionando el re direccionamiento de sock con NGINX-PROXY y Virtual Host en ARM. Me muestra el index del proxy.
$ curl http://raspi1909.hopto.org/

docker-compose.yml
nginx-proxy:
image: lroguet/rpi-nginx-proxy:latest
restart: always
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro

www:
image: nginx
restart: always
expose:
- "80"
volumes:
- /home/pi/docker/nginx/html:/usr/share/nginx/html:ro
environment:
- VIRTUAL_HOST=raspi1909.hopto.org

LOGS
pi@raspi1909:~/docker $ docker-compose logs -f
Attaching to docker_nginx-proxy_1, docker_www_1
nginx-proxy_1 | 185.124.173.205 - - [17/May/2019:14:49:06 +0000] "GET / HTTP/1.1" 200 867 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
nginx-proxy_1 | 200.125.69.42 - - [17/May/2019:15:08:56 +0000] "GET / HTTP/1.1" 200 867 "-" "curl/7.52.1"
nginx-proxy_1 | 200.125.69.42 - - [17/May/2019:15:21:14 +0000] "GET / HTTP/1.1" 200 867 "-" "curl/7.52.1"

Es necesario un load balancer si utilizas ingress?

Buenas en primer lugar me gustaría felicitarte por generar contenido de tanta calidad, he aprendido muchas cosas con tus vídeos.

Soy desarrollador y me gustaría hacer mis propios despliegues y bueno estoy haciendo pruebas con kubernetes con digitalocean. He visto que te cobran el balanceador, entonces opté por usar ingress además que lo veo mucho más util.
He aplicado tu configuración pero nunca consigo que sea accesible desde internet y me preguntaba por eso, si es necesario el balanceador.

Los pasos que seguí fueron sencillos, me bajé estos archivos para empezar con una configuración un poco dummy y lo unico que modifiqué es la ingress rule para poner en host el dominio que tengo apuntando al nodo (solo tengo uno, ya que estoy probando). El traefik dashboard es accesible desde el 30001 desde la ip del nodo.

¿Algún consejo de que puedo estar haciendo mal?

Gracias,
Un saludo

poste.io port 25 Outbound error

image

Hola, Tengo este error estoy montando el docker en ubuntu 18.04 con todas la reglas en el firewall tal y como viene en la documentación:

-p 25:25
-p 80:80
-p 443:443
-p 110:110
-p 143:143
-p 465:465
-p 587:587
-p 993:993
-p 995:995 \

tanto en el docker como en el firewall. sin embargo tengo el error de la imagen anterior, los correos entran sin problema pero a la hora de enviarlos no se entrega ninguno sin importar el servidor de correo al que lo envie.

saludos

Conflicto de puertos entre nginx y posteio

Saludos Pablo.
Estoy tratando de replicar la configuración del video de posteio en local
pero tengo un conflicto de puertos entre un contenedor de ngnix y posteio
este es mi docker compose

version: "3"

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx-proxy/public:/srv/www/static
      - ./nginx-proxy/default.conf:/etc/nginx/conf.d/default.conf
  poste:
    image: analogic/poste.io
    restart: always
    network_mode: "host"
    expose:
      - 25
      - 80
      - 443
      - 110
      - 143
      - 465
      - 587
      - 993
      - 995
    volumes:
      - /root/mail-data:/data
    environment:
      - HTTPS=ON

Debido a que el posteio se encuentra en network_mode: "host" el puerto expuesto 80 entra en conflicto con el puerto mapeado 80 del contenedor nginx. No quisiera mapear el puerto del ngnix a otro puerto porque lo necesito en ese, pero no se como hacer con el posteio porque necesita exponer el puerto 80 para poder entrar a su UI.

No se como resolver este conflicto o si Docker ofrece una solucion de mapear un puerto expuesto cuando esta en network_mode: "host"

Escalar servicios

Buenas Pelado,

Hay alguna manera de escalar servicios (no nginx) y agregar un load balancer

Ejemplo:
tengo un script en python que expone un puerto para realizar una una tarea
lo que quisiera es tener n instancias de ese servicio y tener un load balancer que derive las
requests.

hay algo que resuelva este problema?

Wordpres + MySQL - Variables php.ini + Volumen wp-content

Hola, alguien sabe como puedo pasar una parametrizacion a la configuracion de php (/etc/php.x/apache/php.ini) al momendo de deployment del wordpres?
COmo seria:
post_max_size=32M;
upload_max_filesize=128M;
memory_limit=128M;

Tambien, alguien pudo hacer que la wp-content no se pierda? Osea si, se realiza un volumen, pero despues como le digo al deployment del wordpres para que apunte a ese volumen?
GRacias

Poste.io MAILER-DAEMON@<mydomain.com>: Message not delivered

Saludos estimados PeladoNerd y comunidad. Me gustó el video de "CREÁ UN SERVER DE CORREO EN 1 MINUTO / V2M: Poste" y agradezco se compartiera esa información. Actualmente tengo un problema, del cual agradecería ayuda, y que consta de que configuré una droplet con docker y poster.io y a la hora de enviar un mensaje me aparece un error como el siguiente:
message not delivered
A problem has occurred when trying to deliver your mail to ...
Error: 550 5.7.1 this message does not have authentication information or fails to pass authentication checks. To best protect our users from spam&undefined; the message has been blocked. please visit https://support.google.com/mail/answer/81126#authentication for more information.
solo me deja enviar y recibir mails de mi propio dominio.... los demas, salientes, terminan rebotando. Solicito ayuda para saber que me hace falta configurar.

Actualmente tengo configurados un record MX manejado por mail. apuntando a la droplet con docker+poste.io y los demas records A apuntando a la droplet con mi sitio web.

problemas con Kubernetes

Hola, como andas?

Continuo escribiéndote por acá, como recomendaste en uno de tus videos.

El ejemplo del video 1 de kubernates , lo pude levantar perfecto, pero cuando quiero usar una imagen propia (una app básica con express que muestra 'Hello World Docker!' ) es status del pod me tira ImagePullBackOff.

Le hice el describe al pod como me dijiste y me tiro error al hacer le pull (puede ser que este buscándolo en el repositorio de DockerHub y no lo encuentra por ese tira ese error?), tengo la imagen que quiero correr en pod en mi maquina, te adjunto las screenshot.
describe
images

también el ReplicationController que modifiqué
ReplicationController

Otra pregunta el ReplicationController se encarga de subir la imagen al servidor?

Gracias por todo de antemano, saludos!

probar whoami con ssl

Estoy probando a usar let's encrypt como has enseñado en los videos con el contenedor de whoami pero me da un error el certificado ssl por http si funciona pero por https me da un error de certificado, alguna idea?

version: '3'
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - certs:/etc/nginx/certs:ro
      - vhostd:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
    labels:
      - com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy

  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    restart: always
    environment:
      - NGINX_PROXY_CONTAINER=nginx-proxy
    volumes:
      - certs:/etc/nginx/certs:rw
      - vhostd:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro

  whoami:
    image: containous/whoami
    restart: always
    environment:
     VIRTUAL_HOST: www.cawaii.com,cawai.com
     LETSENCRYPT_HOST: cawai.com
volumes: 
  certs:
  html:
  vhostd:

image
image

Resolver DynamicDNS en una A Record

Buenas!
De nuevo felicitarte por tu trabajo y hoy vengo con una pregunta que no consigo resolver.

He visto en tus vídeos que utilizas varios dominios que posees y se te resuelven en la ip de casa y no consigo saber cómo.

Actualmente tengo duckDNS pero claro no puedo utilizar una A record con el duckDNS ya que necesita de una ip.

Me gustaría saber que método utilizas para resolver el a record principal del dominio y que al final se transforma en la ip de tu hogar.

Gracias,
Un saludo

Ayudas varias raspberry docker

Hola Pablo muchas gracias por tus tutoriales son geniales!, soy muy nuevo en esto de raspberry, pero voy aprendiendo supongo, te consulto lo primero que hice fue instalar el contenedor de pihole, mediante docker compose yml no yaml y funciono perfecto, ahora el inconveniente que me surge es que estoy instalando rtorrent, pero que hago con el puerto 80 que ya lo esta ulilizando pihole? Gracias.
Saludos desde San Juan

poste.io error al enviar correo desde laravel

hola tengo un servidor con poste.io para los correos y otro con laravel trate de configurar para enviar correos desde la web creada con laravel usando el servidor con poste. io pero me sale el siguiente error: ( Connection could not be established with host smtp.dominio.com :stream_socket_client(): Peer certificate CN=mail.noumbu.com' did not match expected CN=smtp.dominio.com')
ante usaba el smtp de gmail y funcionaba pero ahora que tenia un servidor de correo propio quise cambiarlo para que los correos salgan con mi dominio y no con gmail y no estar pagando a google
agradezco su ayuda y respuesta

Como agregar la variable entorno para terraform?

Hola Otra vez.
He intentado mirar como agregar la variable entorno 'TR_VAR_digitalocean_tocken' para que pueda ser utilizada por terraform?

Es posible que nos informes?

He intentado agregando lo siguiente en la linea de comandos.

"Env TR_VAR_digitalocean_toeken="MitockenAPIDigitalOcean"

Se agrega pero cuando doy clear a la terminal y vuelvo a teclear "env" para mostar todas no me sale. No he dado terraform init y apply por que entieno que fallara. Al no verla yo en la lista.

Muchas Gracias

Openvpn + pihole

Hola Pablo
estuve mirando tu vídeo de openvpn y le quise agregar pihole
el problema es que no sé como decirle a ovpn la ip del pihole como DNS en ovpn

colas y sockets en clusters

Hola Pablo, tengo unas preguntas:

  1. Ya que es primera vez que voy a implementar colas en cluster, teniendo en cuenta que en cada pod esta la misma aplicación y tengo un servidor redis aparte, tendría que tener en cada pod ejecutando a Supervisor el comando para la ejecución de las colas que se encuentran en redis?

  2. Ya que me encuentro desarrollando la aplicación en Laravel(PHP), este para poder tener ciertas partes en tiempo real se conecta con un servidor Node.js para la parte de sockets, eso quiere decir que tengo que crear otros pods para la ejecución de este servidor teniendo en cuenta de que los canales también vienen de redis. estaría bien dejarlo bajo el mismo dominio o recomiendas colocarlos bajo otro o un subdominio del primero?

Muchas gracias.

Duda sobre puertos en Docker

Hola Pablo
Uso ufw como firewall
la pregunta es por que si hago binding de un puerto con docker, no pasa por el firewall ?

ejemplo:
tengo bloqueado el puerto 9700 en ufw, pero si hago el binding del contenedor de jenkins
puedo acceder desde el browser my-host:9700

Hay manera de cambiar esto? o sea que todo pase por ufw?

Poste.io siempre SPAM

Hola Pablo! Te jodo devuelta con algunos problemas que me han surgido.

He seguido los pasos para instalar el servidor de correo Poste.io, lo cual esta genial!! Pero.. lamentablemente hay un pero, sino no estaría jodiendo.. absolutamente todos los correos que envío desde la cualquier cuenta creada llegan como Spam y algunos ni siquiera salen del servidor obteniendo el mensaje "Delivery Status Notification (Failure)" casi instantáneamente.

Cuando envío un correo a una cuenta GSuit es cuando llega rebotado con el siguiente mensaje: "The response was:
Your email to group @Dominio was rejected due to spam classification. The owner of the group can choose to enable message moderation instead of bouncing these emails. More information can be found here: https://support.google.com/a/answer/168383."

Y cuando envío a correos @gmail o @Hotmail o @Dominio (que por ejemplo tiene un postfix instalado" llegan como Spam absolutamente todos los correos.

Para aclarar un poco, al ver el correo original obtengo lo siguiente:
SPF: PASS
DKIM:'PASS'
Received: from localhost (mail [127.0.0.1]) by mail.dominio.com (Haraka) with ESMTPSA id F3B6DKA1-AB00-4CA9-A230-3753F532382F.1 envelope-from [email protected] (authenticated bits=0) (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256 verify=FAIL);

NOTA: dominio.com es un dominio de ejemplo, pero el que utilizo existe obviamente!

Para este FAIL, intente cambiar el archivo HOST tanto del Droplet como del Docker, pero solo cambia de "localhost (mail [127.0.0.1])" a "localhost (ip6-localhost [::1])" y alguna otra forma, pero en ningun caso logro que lleguen los correos sin ser detectados como SPAM.

Cualquier ayuda se agradecerá!!
Muchas gracias!!!!
Saludos!!

Error Let's encrypt certificate

Pablo, me funciono todo al 99% solo me fallo la creación del certificado, y me di cuenta cuando ingrese a la bandeja de entrada del usuario admin, y estaba este correo, ocupe tus archivos para hacer pruebas cambiando los datos del dominio y ssh, sabe alguien en que estoy fallando, falta algún volumen para el certificado? Saludos! .-

There was error when issuing new Let's encrypt certificate

[2019-08-12 14:39:24] LEScript.INFO: Starting new account registration
[2019-08-12 14:39:27] LEScript.INFO: Getting last terms of service URL
[2019-08-12 14:39:27] LEScript.INFO: Sending registration to letsencrypt server
[2019-08-12 14:39:27] LEScript.INFO: Sending signed request to /acme/new-reg
[2019-08-12 14:39:27] LEScript.INFO: New account certificate registered
[2019-08-12 14:39:27] LEScript.INFO: Starting certificate generation process for domains
[2019-08-12 14:39:27] LEScript.INFO: Requesting challenge for mail.dominio.com
[2019-08-12 14:39:27] LEScript.INFO: Sending signed request to /acme/new-authz
[2019-08-12 14:39:27] LEScript.INFO: Got challenge token for mail.dominio.com
[2019-08-12 14:39:27] LEScript.INFO: Token for mail.dominio.com saved at /opt/www//.well-known/acme-challenge/r4Yc-lYO1lvRJJbtFIRPEoNfVXOHCrHycPg3siQSiV4 and should be available at http://mail.dominio.com/.well-known/acme-challenge/r4Yc-lYO1lvRJJbtFIRPEoNfVXOHCrHycPg3siQSiV4
[2019-08-12 14:39:27] LEScript.INFO: Sending request to challenge
[2019-08-12 14:39:27] LEScript.INFO: Sending signed request to https://acme-v01.api.letsencrypt.org/acme/challenge/tx_g5k9YjkAIbvEmr7hjBMyN1Tcy5DS4VtBpjIy5nZc/19476154789
[2019-08-12 14:39:28] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:29] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:30] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:31] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:32] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:34] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:35] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:36] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:37] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:38] LEScript.INFO: Verification pending, sleeping 1s
[2019-08-12 14:39:39] LEScript.INFO: Verification ended with status: valid
[2019-08-12 14:39:40] LEScript.INFO: Sending signed request to /acme/new-cert

Error en la generación de los certificados con Terraform, DigitalOcean, Docker, LetsEncrypt

a la hora de LetsEncrypt generar el certificado en DigitalOcean según los tutoriales, me sale el siguiente error
Screen Shot 2019-06-12 at 3 06 13 PM

los archivos de Terraform son los siguientes:
02_droplet.tf:
resource "digitalocean_droplet" "web" {
image = "ubuntu-18-04-x64"
name = "web-1"
region = "nyc1"
size = "s-1vcpu-1gb"
user_data = "${file("userdata.yml")}"
ssh_keys = ["${digitalocean_ssh_key.juancho.fingerprint}"]
}

userdata.yml:
#cloud-config
package_update: true
packages:

  • docker.io

  • docker-compose
    write_files:

  • path: /root/docker-compose.yaml
    content: |
    version: "2"
    services:
    nginx-proxy:
    image: jwilder/nginx-proxy
    restart: always
    ports:
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/tmp/docker.sock:ro
    - /root/certs:/etc/nginx/certs:ro
    - /etc/nginx/vhost.d
    - /usr/share/nginx/html
    labels:
    - com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy

    letsencrypt:
      image: jrcs/letsencrypt-nginx-proxy-companion
      restart: always
      volumes_from: 
        - nginx-proxy:rw
      volumes:
        - /root/certs:/etc/nginx/certs:rw
        - /var/run/docker.sock:/var/run/docker.sock:ro
    
    www:
      image: nginx
      restart: always
      expose:
        - "80"
      environment:
        - VIRTUAL_HOST=scriptf.com,www.scriptf.com
        - LETSENCRYPT_HOST=scriptf.com,www.scriptf.com
        - [email protected]
    

runcmd:

  • cd /root
  • docker-compose up -d

03_dns.tf:
resource "digitalocean_domain" "scriptf" {
name = "scriptf.com"
}

resource "digitalocean_record" "scriptf" {
domain = "${digitalocean_domain.scriptf.name}"
type = "A"
name = "@"
ttl = "10"
value = "${digitalocean_droplet.web.ipv4_address}"
}

agradecería si alguien me puede ayudar. Gracias

Dominios

Buenas Pablo,

una consulta,
Estoy ejecutando pi-hole con (gracias a tu vídeo me anime a usarlo con docker )
me gustaría quiero agregar rtorrent que también va hace el bind 80:80

ahora bien, hay alguna manera utilizando docker para utilizar virtualhost?

Tipo

  • hole.rpi
  • rtorrent.rpi
  • cups.rpi

rpi es solo un ejemplo de TLD

en un momento imagine que podía utilizar jwilder/nginx-proxy

Igualmente pienso que de debe tocar algo a nivel o router o se podría aprovechar el dns de pihole?

Saludos.

Poste.io con letsencrypt-nginx-proxy-companion ERROR

Buen dia peladonerd, queria consultarte por Poste.io. Estoy tratando de levantarlo en mi servidor casero con un docker-compose.yml pero me salen errores como los de la image (a pesar de que en mi router tengo abierto el puerto 25)

imagen

Lo que si, en los puertos del nginx-proxy uso el 8000 y 8443 (tambien abiertos en el router y apuntando al servidor casero). Como se aprecia, uso dominios de duckdns.

Adjunto el docker-compose.yml. Dos cuestiones adicionales: la primera, con la variable HTTPS=ON, no me dejaba acceder ni por el puerto 8000 ni el 8443 al server, asi que la dejaba en OFF para probar; la segunda, solo podia acceder desde el puerto 8000 (que apunta al 80 del docker del nginx), es decir, tenia que acceder desde http://mail-testing.duckdns.org:8000.

version: '3.0'

services:
  duckdns:
    image: linuxserver/duckdns
    container_name: duckdns
    environment:
      - TZ=America/Argentina/Jujuy
      - SUBDOMAINS=public-repository,testing-jairo,mail-testing
      - TOKEN=2829705a-7c0b-4fc9-bd33-bba676204e4a
      - LOG_FILE=false #optional
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "8000:80"
      - "8443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - certs:/etc/nginx/certs:ro
      - vhostd:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - mailserver:/usr/share/nginx/html/.well-known
    labels:
      - com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy
  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt
    restart: always
    environment:
      - NGINX_PROXY_CONTAINER=nginx-proxy
    volumes:
      - certs:/etc/nginx/certs:rw
      - vhostd:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - mailserver:/usr/share/nginx/html/.well-known
      - /var/run/docker.sock:/var/run/docker.sock:ro
  web:
    image: nginx
    restart: always
    volumes: 
      - ./www:/usr/share/nginx/html
    expose:
      - 80
    environment:
      - VIRTUAL_HOST=public-repository.duckdns.org
      - LETSENCRYPT_HOST=public-repository.duckdns.org
      - [email protected]
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    expose:
      - 8081
    environment:
      - ME_CONFIG_BASICAUTH_USERNAME=jairo
      - ME_CONFIG_BASICAUTH_PASSWORD=MongoExpress2019!
      - ME_CONFIG_MONGODB_PORT=27017
      - ME_CONFIG_MONGODB_ADMINUSERNAME=root
      - ME_CONFIG_MONGODB_ADMINPASSWORD=MongoDB2019!
      - VIRTUAL_HOST=testing-jairo.duckdns.org
      - LETSENCRYPT_HOST=testing-jairo.duckdns.org
      - [email protected]
    links:
      - mongo
  mongo:
    image: mongo
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: MongoDB2019!
    ports:
      - "27017:27017"
    volumes:
      - ./database/db:/data/db
  mailserver:
    image: analogic/poste.io
    container_name: mailserver
    restart: always
    expose:
      - 80
    ports:
      - "25:25"
      - "110:110"
      - "143:143"
      - "587:587"
      - "993:993"
      - "995:995"
      - "4190:4190"
    environment:
      - VIRTUAL_HOST=mail-testing.duckdns.org
      - LETSENCRYPT_HOST=mail-testing.duckdns.org
      - [email protected]
      - HTTPS=OFF
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - data:/data
      - mailserver:/opt/www/.well-known
volumes:
  certs:
  html:
  vhostd:
  data:
  mailserver:

También adjunto los logs del nginx-proxy y letsencrypt

Attaching to nginx-proxy
nginx-proxy      | WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
nginx-proxy      | is being generated in the background.  Once the new dhparam.pem is in place, nginx will be reloaded.
nginx-proxy      | forego     | starting dockergen.1 on port 5000
nginx-proxy      | forego     | starting nginx.1 on port 5100
nginx-proxy      | dockergen.1 | 2020/02/08 23:27:25 Generated '/etc/nginx/conf.d/default.conf' from 10 containers
nginx-proxy      | dockergen.1 | 2020/02/08 23:27:25 Running 'nginx -s reload'
nginx-proxy      | dockergen.1 | 2020/02/08 23:27:25 Watching docker events
nginx-proxy      | dockergen.1 | 2020/02/08 23:27:28 Generated '/etc/nginx/conf.d/default.conf' from 11 containers
nginx-proxy      | dockergen.1 | 2020/02/08 23:27:28 Running 'nginx -s reload'
nginx-proxy      | dockergen.1 | 2020/02/08 23:27:28 Received event start for container 8d9f21c858db
nginx-proxy      | dockergen.1 | 2020/02/08 23:27:28 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification 'nginx -s reload'
nginx-proxy      | 2020/02/08 23:28:16 [notice] 111#111: signal process started
nginx-proxy      | Generating DH parameters, 2048 bit long safe prime, generator 2
nginx-proxy      | This is going to take a long time
nginx-proxy      | dhparam generation complete, reloading nginx
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:41 +0000] "GET / HTTP/1.1" 302 5 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:41 +0000] "GET /admin/install/server HTTP/1.1" 200 2387 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:53 +0000] "GET /admin/install/test?target=110&hostname=mail-testing.duckdns.org HTTP/1.1" 200 80 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:55 +0000] "GET /admin/install/test?target=587&hostname=mail-testing.duckdns.org HTTP/1.1" 200 88 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:55 +0000] "GET /admin/install/test?target=143&hostname=mail-testing.duckdns.org HTTP/1.1" 200 165 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:57 +0000] "GET /admin/install/test?target=995&hostname=mail-testing.duckdns.org HTTP/1.1" 200 80 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:57 +0000] "GET /admin/install/test?target=993&hostname=mail-testing.duckdns.org HTTP/1.1" 200 161 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:58 +0000] "GET /admin/install/test?target=4190&hostname=mail-testing.duckdns.org HTTP/1.1" 200 100 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:31:58 +0000] "GET /admin/install/test?target=outbound&hostname=mail-testing.duckdns.org HTTP/1.1" 200 106 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:32:03 +0000] "GET /admin/install/test?target=25&hostname=mail-testing.duckdns.org HTTP/1.1" 200 89 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:32:04 +0000] "GET /admin/install/test?target=ip6&hostname=mail-testing.duckdns.org HTTP/1.1" 200 80 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:32:09 +0000] "GET /admin/install/test?target=ip4&hostname=mail-testing.duckdns.org HTTP/1.1" 200 77 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:32:50 +0000] "GET /admin/install/test?target=80&hostname=mail-testing.duckdns.org HTTP/1.1" 504 160 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:32:50 +0000] "GET /admin/install/test?target=443&hostname=mail-testing.duckdns.org HTTP/1.1" 504 167 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
nginx-proxy      | nginx.1    | 2020/02/08 23:32:50 [error] 113#113: *9 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 190.110.242.179, server: mail-testing.duckdns.org, request: "GET /admin/install/test?target=443&hostname=mail-testing.duckdns.org HTTP/1.1", upstream: "http://192.168.80.4:80/admin/install/test?target=443&hostname=mail-testing.duckdns.org", host: "mail-testing.duckdns.org:8000", referrer: "http://mail-testing.duckdns.org:8000/admin/install/server"
nginx-proxy      | nginx.1    | mail-testing.duckdns.org 190.110.242.179 - - [08/Feb/2020:23:32:54 +0000] "GET /admin/install/test?target=result-le&hostname=mail-testing.duckdns.org HTTP/1.1" 504 160 "http://mail-testing.duckdns.org:8000/admin/install/server" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
Attaching to letsencrypt
letsencrypt      | Info: Custom Diffie-Hellman group found, generation skipped.
letsencrypt      | Reloading nginx proxy (446f18aab3e729c92c57a6653fa45e1ff81543c33e6f142270aaed745e0d6204)...
letsencrypt      | 2020/02/08 23:27:28 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification ''
letsencrypt      | 2020/02/08 23:27:28 [notice] 73#73: signal process started
letsencrypt      | Sleep for 3600s
letsencrypt      | 2020/02/08 23:27:28 Generated '/app/letsencrypt_service_data' from 11 containers
letsencrypt      | 2020/02/08 23:27:28 Running '/app/signal_le_service'
letsencrypt      | 2020/02/08 23:27:28 Watching docker events
letsencrypt      | 2020/02/08 23:27:28 Contents of /app/letsencrypt_service_data did not change. Skipping notification '/app/signal_le_service'
letsencrypt      | /etc/nginx/certs/mail-testing.duckdns.org /app
letsencrypt      | Reloading nginx proxy (446f18aab3e729c92c57a6653fa45e1ff81543c33e6f142270aaed745e0d6204)...
letsencrypt      | 2020/02/08 23:27:29 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification ''
letsencrypt      | 2020/02/08 23:27:29 [notice] 105#105: signal process started
letsencrypt      | Creating/renewal mail-testing.duckdns.org certificates... (mail-testing.duckdns.org)
letsencrypt      | 2020-02-08 23:27:32,847:INFO:simp_le:1414: Generating new certificate private key
letsencrypt      | 2020-02-08 23:27:45,508:ERROR:simp_le:1396: CA marked some of the authorizations as invalid, which likely means it could not access http://example.com/.well-known/acme-challenge/X. Did you set correct path in -d example.com:path or --default_root? Are all your domains accessible from the internet? Please check your domains' DNS entries, your host's network/firewall setup and your webserver config. If a domain's DNS entry has both A and AAAA fields set up, some CAs such as Let's Encrypt will perform the challenge validation over IPv6. If your DNS provider does not answer correctly to CAA records request, Let's Encrypt won't issue a certificate for your domain (see https://letsencrypt.org/docs/caa/). Failing authorizations: https://acme-v02.api.letsencrypt.org/acme/authz-v3/2715025637
letsencrypt      | Challenge validation has failed, see error log.
letsencrypt      | 
letsencrypt      | Debugging tips: -v improves output verbosity. Help is available under --help.
letsencrypt      | /app
letsencrypt      | /etc/nginx/certs/public-repository.duckdns.org /app
letsencrypt      | Creating/renewal public-repository.duckdns.org certificates... (public-repository.duckdns.org)
letsencrypt      | 2020-02-08 23:27:47,223:INFO:simp_le:1546: Certificates already exist and renewal is not necessary, exiting with status code 1.
letsencrypt      | /app
letsencrypt      | /etc/nginx/certs/testing-jairo.duckdns.org /app
letsencrypt      | Creating/renewal testing-jairo.duckdns.org certificates... (testing-jairo.duckdns.org)
letsencrypt      | 2020-02-08 23:27:49,141:INFO:simp_le:1546: Certificates already exist and renewal is not necessary, exiting with status code 1.
letsencrypt      | /app
letsencrypt      | Sleep for 3600s

Desde ya, muchas gracias por tu ayuda.
PD/ Sos un groso...!

directorios propiedad de root

Estoy haciendo pruebas con transmission usando la config del docker-compose y mapeando el directorio a un disco usb conectado a la raspberry o sin disco siempre me crea los directorios y ficheros con el propietario root, he intentado usar el campo user: 1000:1000 pero no funciona.

Alguien me puede ayudar? o no hay forma de solucionarlo y es así?

mi docker-compose.yalm es el siguiente:

services:
  transmission:
    command: transmission-daemon -f -g /config
    container_name: transmission
    expose:
    - 9091
    image: jaymoulin/transmission
    ports:
    - 9091:9091
    - 51413:51413
    - 51413:51413/udp
    volumes:
    - '/media/usb/docker/torrent/transmission/config:/config'
    - '/media/usb/docker/torrent/downloads:/downloads'
    restart: unless-stopped
    user: 1000:1000
version: "3.3"
drwxr-xr-x 2 root root 4.0K Mar 12 22:36 blocklists
-rw------- 1 root root  352 Mar 12 22:47 dht.dat
drwxr-xr-x 2 root root 4.0K Mar 12 22:36 resume
-rw------- 1 root root 2.2K Mar 12 22:47 settings.json
drwxr-xr-x 2 root root 4.0K Mar 12 22:36 torrents

Registry UI

Hola Pablo, tenía una pequeña consulta, veo que cuando levantamos el docker-compose este lleva la clave ya hardcodeada en el mismo.

Y por ende al ingresar a la UI siempre estoy autorizado, es posible cambiar esto para que haga un prompt de la password?

saludos.

Docker Wordpress con Macvlan

Hola Pablo.

Muchas gracias por tu curso de Docker y compartir tus conocimientos de maestro ninja con todos!

Después de ver el capitulo de wordpress y de networking he intentado hacer correr wordpress desde una IP en vez de un puerto 8080 pero me ha sido imposible.

Cuando reviso la red creada por docker veo las IP's correctamente asignadas a cada contendedor, pero si hago un ping a la IP es unreachable.

Por lo que entiendo la red macvlan crea una interfaz virtual que debería ser descubrible por toda la red ¿no?

Te paso mi docker-compose.yml a ver si me puedes iluminar y decir donde estoy metiendo la pata.

La Ip de mi portátil es: 192.168.1.131
La interfaz wifi es: wlp1s0

version: '3.1'

services:

  wordpress:
    image: wordpress:php7.1-apache
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: root
      WORDPRESS_DB_NAME: wordpress
    links:
      - mysql:mysql
    networks:
       myvlan:
        ipv4_address: 192.168.1.51

  mysql:
    image: mysql:8.0.13
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./mysql-data:/var/lib/mysql
    networks:
       myvlan:
        ipv4_address: 192.168.1.50

networks:
  myvlan:
    driver: macvlan
    driver_opts:
      parent: wlp1s0
    ipam:
      config:
        - subnet: "192.168.1.0/24"

Muchas gracias.

usar helm con Kind

Con minikube no tuve problemas usando helm, pero con un cluster de con Kind se ve que faltan configurar algunas cosas

helm install --name my-moodle stable/moodle
Error: release my-moodle failed: namespaces "default" is forbidden: User "system:serviceaccount:kube-system:default" cannot get resource "namespaces" in API group "" in the namespace "default"

Trate de arreglar esto, pero termine de romper el cluster, es obvio que me falta configurar un contexto de dev y prod con los permisos.

Cualquier guia es bien recibida

duda sobre HPA

Pablo,
estoy intentando poner mi K8S en producción y usar HPA, lo que me resulta incómodo es que para calcular el límite de escalado (en mi caso CPU) usa lo asignando en resources.requests, y en mi caso que el resuources.limits es más del doble del request, empieza a escalar antes de lo necesario ¿hay alguna forma de cambiarlo para que use como referencia el limit?

Certificados en Openmedia Vault

Hola , buenas , he instalado openmedia vault en un equipo odroid Hc2 con plugin de docker , y cuando ejecuto me da el siguiente error.

services.d] done.
nginx: [alert] detected a LuaJIT version which is not OpenResty's; many optimizations will be disabled and performance will be compromised (see https://github.com/openresty/luajit2 for OpenResty's LuaJIT or, even better, consider using the OpenResty releases from https://openresty.org/en/download.html)
nginx: [error] lua_load_resty_core failed to load the resty.core module from https://github.com/openresty/lua-resty-core; ensure you are using an OpenResty release from https://openresty.org/en/download.html (rc: 2, reason: module 'resty.core' not found:
no field package.preload['resty.core']
no file './resty/core.lua'
no file '/usr/share/luajit-2.1.0-beta3/resty/core.lua'
no file '/usr/local/share/lua/5.1/resty/core.lua'
no file '/usr/local/share/lua/5.1/resty/core/init.lua'
no file '/usr/share/lua/5.1/resty/core.lua'
no file '/usr/share/lua/5.1/resty/core/init.lua'
no file '/usr/share/lua/common/resty/core.lua'
no file '/usr/share/lua/common/resty/core/init.lua'
no file './resty/core.so'
no file '/usr/local/lib/lua/5.1/resty/core.so'
no file '/usr/lib/lua/5.1/resty/core.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './resty.so'
no file '/usr/local/lib/lua/5.1/resty.so'
no file '/usr/lib/lua/5.1/resty.so'
no file '/usr/local/lib/lua/5.1/loadall.so')
Server ready

agracedería que me ayudaran .

Un Saludo.

minikube to Kind - Error al crear Cluster

Despues de instalar Kind.
creo el cluster: kind create cluster --config kind-multi-node.yaml.
Hace todo el proceso bien.

kind-worker2 | running |   | - | kindest/node:v1.15.3
kind-control-plane | running |   | - | kindest/node:v1.15.3
kind-worker | running |   | - | kindest/node:v1.15.3

kubectl cluster-info
Kubernetes master is running at https://127.0.0.1:49453
KubeDNS is running at https://127.0.0.1:49453/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Captura de Pantalla 2019-08-31 a la(s) 18 29 57

[dump.txt](https://github.com/pablokbs/peladonerd/files/3562879/dump.txt)

Create Auto CNAME and A Records on DigitalOcean

Hola, Excelente Canal de youtube y excelente trabajo el que haces.
*Tengo una pregunta sobre traefik.
Es posible que el traefik pueda crear automaticamente el record CNAME o A. del sub dominio?

y no tener que crearlo yo manualmente siempre en DigitalOcean u otro Controlador DNS o Dominio.?

No se si me he explicado.

Ejemplo: Dominio minombre.com
Pero tengo un servicio que se llamara git.minombre.com

Es posible que ya el traefik cree el record git.minombre.com en DigitalOcean sin tener yo que ir agregar el cname directamente antes de deploy el docker-compose?

Muchas Gracias.

Esquema de colores

¿Qué esquema de colores usas en la terminal? Siempre he usado colores oscuros de fondo, pero en tus videos veo que usas fondo blanco y unos colores que realmente me hicieron cambiar de idea.

Saludos

Falla: Internal server error con poste.io y traefik en digitalocean.

Buenas,

Muchas gracias por tus videos.

Estuve intentando montar poste.io y traefik en un servidor de digital ocean pero me falla cuando intento ir al mailserver.

He montado otro contenedor "whoami" por ejemplo y he puesto un host domain y funciona correctamente por lo que descarto completamente que traefik este mal.

Lo que me ocurre es que me da un "Internal server error"

Aqui dejo mi docker-compose.yaml a ver. 👍

https://raw.githubusercontent.com/fradducho/fraddygil/master/docker-compose.yaml

He comentado el whoami y el contenedor my-app que fueron de pruebas para poder enfocarme unicamente en el del mail pero me falla.

Puede mas o menos iluminarme que puede estar pasando ?

Se que has colocado unos videos donde lo haces con nginx pero me interesa hacerlo con traefik. Que si no hay manera entonces lo hago con nginx pero dejo este issue aqui a ver si alguno de ustedes puede ayudarme.

Mil gracias de ante mano.

Dashboard poste.io

Hola buen dia peladoNerd, quisiera pedir de tu ayuda si es posible que me puedas decir que significa esto que estoy viendo constantemente en mi dashboard de poste.io

B9-9E1D-FBF0E48DB27C... ip-113-131.4vendeta.com / 78.128.113.131 → 465 helo: ip-113-131.4vendeta.com. auth: auth/poste/LOGIN local_port: disconnected
21-ACDB-9E186D1955A 0217.ip-51-91-99.eu / 51.91.99.217 → 587 helo: ADMIN local_port: disconnected
he tratado de indagar en internet pero no he encontrado mucha informacion podrias apoyarme, de antemano muchas gracias Saludos desde Mexico

CrashLoopBackOff pod/nginx-ingress

Hola @pablokbs,
Al ejecutar

cd ./kubernetes/8/ingress
kubectl apply -f . 
kubectl get all -n nginx-ingess

tengo un error:

NAME                                READY   STATUS             RESTARTS   AGE
pod/nginx-ingress-795d99648-mg7b9   0/1     CrashLoopBackOff   6          6m23s

❯ kubectl -n nginx-ingress logs nginx-ingress-795d99648-mg7b9
I0715 21:01:33.112661       1 main.go:155] Starting NGINX Ingress controller Version=edge GitCommit=f04246d2
F0715 21:01:33.124679       1 main.go:261] Error trying to get the default server TLS secret nginx-ingress/default-server-secret: could not get nginx-ingress/default-server-secret: secrets "default-server-secret" is forbidden: User "system:serviceaccount:nginx-ingress:nginx-ingress" cannot get resource "secrets" in API group "" in the namespace "nginx-ingress"

❯ kubectl describe pod -n nginx-ingress nginx-ingress-795d99648-mg7b9
vents:
  Type     Reason     Age                     From               Message
  ----     ------     ----                    ----               -------
  Normal   Scheduled  8m34s                   default-scheduler  Successfully assigned nginx-ingress/nginx-ingress-795d99648-mg7b9 to minikube
  Normal   Created    7m42s (x4 over 8m31s)   kubelet, minikube  Created container nginx-ingress
  Normal   Started    7m42s (x4 over 8m31s)   kubelet, minikube  Started container nginx-ingress
  Normal   Pulling    7m (x5 over 8m33s)      kubelet, minikube  Pulling image "nginx/nginx-ingress:edge"
  Normal   Pulled     6m59s (x5 over 8m31s)   kubelet, minikube  Successfully pulled image "nginx/nginx-ingress:edge"
  Warning  BackOff    3m26s (x24 over 8m29s)  kubelet, minikube  Back-off restarting failed container

Como puedo solucionar esto?
Desde ya muchas gracias!

duda correo poste.io

Hola Pelado Nerd vi tu video CREÁ UN SERVER DE CORREO EN 1 MINUTO / V2M: Poste me pareció muy interesante el ver que tan rápido se configura un servidor de correo, yo tengo uno instalado en la empresa donde laboro pero ahora me estoy encontrando con un problema de que los correos no llegan al destinatario y no encuentra gran información no se si tu puedas auxiliarme, entre al SMTP Banner Check desglosan dome lo siguiente

`

El banner SMTP emitido por su servidor de correo electrónico no contenía el nombre de host que resolvimos para la dirección IP de su servidor.

`

dentro del dashboard veo esto en la sección de Diagnostico de conexión del servidor la siguiente información y no se si es correcto o debería de tener mi dominio

  | Test | Description | Test result
Testing gmail.com port 25 connection | Received "220 mx.google.com ESMTP t3si2340130qtq.156 - gsmtp"

esperando contar con tu iluminación quedo atento a cualquier duda

RSNAPSHOT

Tengo asi el docker compose
` rsnapshot:
container_name: bakups
image: pablokbs/rsnapshot-cron
restart: always
volumes:
- /etc:/host/etc:ro
- /home/pi:/host/home/pi:ro
- /media/pendrive/raspberrypi:/snapshots

environment:
  - BACKUP_DIRECTORIES=/host/      raspberrypi/
  - CRON_DAILY=0 0 5 * * *
  - CRON_WEEKLY=0 0 6 * * 1
  - CRON_MONTHLY=0 30 6 1 * *
  - RSNAPSHOT_HOURLY_TIMES=0
  - RSNAPSHOT_DAILY_TIMES=7
  - RSNAPSHOT_WEEKLY_TIMES=4
  - RSNAPSHOT_MONTHLY_TIMES=3

`
y el log dice:

`----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot hourly

ERROR: /etc/rsnapshot.conf on line 250:
ERROR: retain hourly 0 - "hourly" must be at least 1 or higher
ERROR: ---------------------------------------------------------------------
ERROR: Errors were found in /etc/rsnapshot.conf,
ERROR: rsnapshot can not continue. If you think an entry looks right, make
ERROR: sure you don't have spaces where only tabs should be.

rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot hourly

ERROR: /etc/rsnapshot.conf on line 250:
ERROR: retain hourly 0 - "hourly" must be at least 1 or higher
ERROR: ---------------------------------------------------------------------
ERROR: Errors were found in /etc/rsnapshot.conf,
ERROR: rsnapshot can not continue. If you think an entry looks right, make
ERROR: sure you don't have spaces where only tabs should be.
`
Si le pongo un valor superior a uno en RSNAPSHOT_HOURLY_TIMES=0 funciona.

Cambios en api

Estoy siguiendo algunos videos para crear cluster usando minikube, y varios archivos yaml que devuelven error de matcheo en versiones. Ej:

Video:
https://www.youtube.com/watch?v=Gp6LNymkw70

Archivo:
https://github.com/pablokbs/peladonerd/blob/master/kubernetes/13/04-mongo-full.yaml

Error:
error: unable to recognize "04-mongo-full.yaml": no matches for kind "StatefulSet" in version "apps/v1beta1"

Siguiendo otros videos, tambien recibi un error parecido (ahora no me acuerdo cual es), pero fue algo parecido como esto:

no matches for kind "DaemonSet" in version "extensions/v1beta1"

Por lo poco que puedo entender, hay sintaxis que están deprecadas, pero no entiendo bien cual o como reemplazarlas.

Esta es mi version de kubectl
rodrix@rodrix  ~  kubectl version Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.1", GitCommit:"7879fc12a63337efff607952a323df90cdc7a335", GitTreeState:"clean", BuildDate:"2020-04-08T17:38:50Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:50:46Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}

Alguien mas tuvo el mismo problema?,

Gracias.

subdominio nginx-proxy

Error en configuracion de subdominio:

Para ponerlo en contexto, estoy tratando de configurar el subdominio gastitos.cagandola.cl para el dominio cagandola.cl el cual esta alojado en DigitalOcean, como vera he creado el registro de dominio en DigitalOcean todos de tipo A como vera en la siguiente imagen:

registroDNS

He configurado el archivo docker-compose.yml según sus especificaciones, el servicio al cual estoy tratando de acceder es el siguiente:

service

Pero al tratar de ingresar mediante el navegador web me arroga el siguiente error:

502 Bad Gateway nginx 1.17.3

Si me pudiese ayudar se lo agradecería.
De ante mano muchas gracias.

No consigo enviar mail con poste.io

Hola chic@s, no se si tiene algo que ver con el dkim, pero no consigo enviar ni un solo mail con poste.io, donde configuro la clave privada dkim, dentro del contenedor o en el host?. Busco documentación y no la encuentro, alguna sugerencia? gracias, un saludo

Consejos para los que esten usando Poste.io

Hola Pelado! En primer lugar gracias por el tutorial para instalar Poste.io. Ya lo tengo corriendo en mi servidor y funciona excelente 😄 🎉

Captura

Para los que esten en la misma les dejo algunos consejos:

  1. Desactivar ClamAV: Si estan deployando en Digital Ocean van a tener que hacerlo porque se come el procesador. Basta con agregar DISABLE_CLAMAV=TRUE como variable de entorno en userdata.yaml.

Se van a quedar sin el antivirus, pero si usan Linux o tienen sentido común 🤷‍♂️

  1. Agregar SPF y DMARC:

  2. Agregar DKIM: Lo pueden sacar desde Virtual Domains > tudominio.com > DKIM key

  3. Usar un SMTP Relay: En mi caso los e-mails no se mandaban. También hay gente que manda y a la otra persona le llega a spam. Para esto se puede configurar un relay en System Setting > Email Processing > Default SMTP Route. Pueden usar Sendgrid, Mailgun o cualquier otro 👍

No olviden validar el dominio asi no sale "Enviado desde sendgrid.net" o lo que sea. En el caso de Sendgrid se hace desde acá.

  1. Opcional: Crear un CNAME para SMTP, POP, IMAP: Algunos clientes por defecto van a buscar, por ejemplo, smtp.tudominio.com, por eso es buena idea crear un CNAME:
    • smtp.tudominio.com. CNAME mail.tudominio.com.
    • pop.tudominio.com. CNAME mail.tudominio.com.
    • imap.tudominio.com. CNAME mail.tudominio.com.

Otras cosas que yo hice y quizá no son necesarias:

  1. Crear un volumen: Metí los datos en un volumen, asi si por algún motivo tengo que regenerar el servidor de e-mail no pierdo los datos. ¿Se puede poner algo como prevent_destroy para evitar que a Terraform le pinte boletearlo?

  2. Eliminé la creación del dominio: Como ya tenia el dominio raiz generado de antes me fallaba porque intentaba regenerarlo.

  3. Puse el dominio raiz en una variable: Para más placer. (Y por el punto 7)

  4. Cambie la interpolación de variables: En Terraform 0.12 ya no hace falta el "${variable}". Si es solo eso se puede poner la variable directamente y me ahorro el warning.

  5. Use la imágen de Debian 10: ¿Porqué? No hay porque. (Me gusta más nomás)

Como toda persona de bien hice los cambios con Terraform (Excepto puntos 3 y 4) 💪
Estan en un fork, por si alguno quiere chusmear o tomar algo lo puede hacer desde acá:

Saludos

Raspberry pi 3 + OMV4 + Docker raspbian/Desktop

Hola amigos soy nuevo en este fantástico mundillo, no sé si lo que les voy a comentar se puede hacer con una única Raspberry Pi. Tengo la Raspberry Pi con el OMV4 ( cargue una imagen del OMV4 directamente en la tarjeta SD de la Raspberry) y lo tengo como Nass , tanto por FTP como samba. Mi duda es la siguiente, hay alguna forma de instalar en la Raspberry Pi un docker de sistema operativo tipo raspbian/Desktop y acceder vía web al sistema operativo?? Gracias ante todo

Duda sobre Terraform

Buenas Pelado!!!

Estoy arrancando con Terraform y quería consultar si es posible usar Terraform (obviamente) con servidores que no esten entre los providers.. como por ejemplo "Terraformear" en una Raspberry.

conexión entre contenedores

Estoy realizando una aplicación en php, me todo que realizar un servicio web más en java (y lo empaquete en otro contenedor) porque así lo requería el cual tiene que ser consumido desde la aplicación de php, a la hora de intentar consumir este no se como consumirlo ya que como son 2 contenedores diferentes van a tener ip's diferentes y no quiero quemar las ip's ya que supongo que es una mala practica. me podrían ayudar para saber como coger la ip del contenedor sin quemarla en el código?

Typo en ejemplo de traefik

En el ejemplo de traefik, no levanta docker-compose. Solo le faltan 4 espacios al inicio de la linea 26 del archivo:

https://github.com/pablokbs/peladonerd/blob/master/varios/2/docker-compose.yaml

Gracias por el ejemplo !

/etc/default/docker vs /lib/systemd/system/docker.service ¿cual es mejor?

¿estas 2 opciones cual es la mejor?

sudo vim /etc/default/docker

  • Agregar esta linea al final con la ruta de tu disco externo montado;
    export DOCKER_TMPDIR="/mnt/storage/docker-tmp"

A mi me es incompatible con:
sudo nano /lib/systemd/system/docker.service

  • agregar en la linea "-g /media/pi/USB" (Optionally, store containers in an external USB drive. Change the following line);
    ExecStart=/usr/bin/dockerd -g /media/pi/USB -H fd:// --containerd=/run/containerd/containerd.sock

¿cual seria la mejor opcion para que no carge la SD en la Raspberry?

  • igual no es este el espacio donde insertar esta duda pero, me pierdo en "GitHub"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.