Fallo al iniciar (/tmp/add-cloudflare-ips)

Hola!

Tengo este error cuando intento reconstruir:

FAILED
--------------------
Pups::ExecError: /tmp/add-cloudflare-ips falló con retorno #<Process::Status: pid 1484 exit 8>
Ubicación del fallo: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falló con los parámetros "/tmp/add-cloudflare-ips"
9fe8337bb7b8e64abb480bd2527551585759e48df340dc74bb84c67bdf1ee6b2
** FAILED TO BOOTSTRAP ** por favor, desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

Este error fue seguro con habilitar y deshabilitar el proxy (nube naranja) en CloudFlare :frowning:

1 me gusta

¿Puedes desplazarte hacia arriba y mostrar la salida anterior donde falla el comando /tmp/add-cloudflare-ips?

CSS compilado: 2022-03-22 16:54:37 UTC
I, [2022-03-22T16:54:37.832057 #1]  INFO -- : Descargando MaxMindDB...
Comprimiendo Javascript y generando mapas de origen

I, [2022-03-22T16:54:37.874506 #1]  INFO -- : Archivo > /usr/local/bin/discourse  chmod: +x  chown:
I, [2022-03-22T16:54:37.880784 #1]  INFO -- : Archivo > /usr/local/bin/rails  chmod: +x  chown:
I, [2022-03-22T16:54:37.887872 #1]  INFO -- : Archivo > /usr/local/bin/rake  chmod: +x  chown:
I, [2022-03-22T16:54:37.894248 #1]  INFO -- : Archivo > /usr/local/bin/rbtrace  chmod: +x  chown:
I, [2022-03-22T16:54:37.900136 #1]  INFO -- : Archivo > /usr/local/bin/stackprof  chmod: +x  chown:
I, [2022-03-22T16:54:37.907873 #1]  INFO -- : Archivo > /etc/update-motd.d/10-web  chmod: +x  chown:
I, [2022-03-22T16:54:37.912825 #1]  INFO -- : Archivo > /etc/logrotate.d/rails  chmod:   chown:
I, [2022-03-22T16:54:37.917132 #1]  INFO -- : Archivo > /etc/logrotate.d/nginx  chmod:   chown:
I, [2022-03-22T16:54:37.924129 #1]  INFO -- : Archivo > /etc/runit/1.d/00-ensure-links  chmod: +x  chown:
I, [2022-03-22T16:54:37.930083 #1]  INFO -- : Archivo > /etc/runit/1.d/01-cleanup-web-pids  chmod: +x  chown:
I, [2022-03-22T16:54:37.936780 #1]  INFO -- : Archivo > /root/.bash_profile  chmod: 644  chown:
I, [2022-03-22T16:54:37.941664 #1]  INFO -- : Archivo > /usr/local/etc/ImageMagick-7/policy.xml  chmod:   chown:
I, [2022-03-22T16:54:37.949303 #1]  INFO -- : Reemplazando (?-mix:server.+{) con limit_req_zone $binary_remote_addr zone=flood:10m rate=$reqs_per_secondr/s;
limit_req_zone $binary_remote_addr zone=bot:10m rate=$reqs_per_minute/m;
limit_req_status 429;
limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_status 429;
server {
 en /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T16:54:37.952599 #1]  INFO -- : Reemplazando (?-mix:location @discourse {) con location @discourse {
  limit_conn connperip $conn_per_ip;
  limit_req zone=flood burst=$burst_per_second nodelay;
  limit_req zone=bot burst=$burst_per_minute nodelay; en /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T16:54:37.960935 #1]  INFO -- : Archivo > /tmp/add-cloudflare-ips  chmod: +x  chown:
I, [2022-03-22T16:54:37.961856 #1]  INFO -- : > /tmp/add-cloudflare-ips
--2022-03-22 16:54:37--  https://www.cloudflare.com/ips-v4/
Resolviendo www.cloudflare.com (www.cloudflare.com)... 104.16.124.96, 104.16.123.96, 2606:4700::6810:7c60, ...
Conectando a www.cloudflare.com (www.cloudflare.com)|104.16.124.96|:443... conectado.
Solicitud HTTP enviada, esperando respuesta... 403 Forbidden
2022-03-22 16:54:38 ERROR 403: Forbidden.

I, [2022-03-22T16:54:38.130543 #1]  INFO -- :
I, [2022-03-22T16:54:38.146489 #1]  INFO -- : Terminando procesos asíncronos
I, [2022-03-22T16:54:38.148916 #1]  INFO -- : Enviando INT a HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
2022-03-22 16:54:38.149 UTC [42] LOG:  recibida solicitud de apagado rápido
I, [2022-03-22T16:54:38.150508 #1]  INFO -- : Enviando TERM a exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1647968078) Received SIGTERM scheduling shutdown...
2022-03-22 16:54:38.155 UTC [42] LOG:  abortando transacciones activas
2022-03-22 16:54:38.167 UTC [42] LOG:  el proceso secundario \"logical replication launcher\" (PID 51) salió con código de salida 1
2022-03-22 16:54:38.171 UTC [46] LOG:  apagando
103:M 22 Mar 2022 16:54:38.203 # User requested shutdown...
103:M 22 Mar 2022 16:54:38.204 * Guardando la instantánea final de RDB antes de salir.
103:M 22 Mar 2022 16:54:38.213 * DB guardado en disco
103:M 22 Mar 2022 16:54:38.214 # Redis está listo para salir, adiós...
2022-03-22 16:54:38.228 UTC [42] LOG:  el sistema de bases de datos está apagado


FALLIDO
--------------------
Pups::ExecError: /tmp/add-cloudflare-ips falló con retorno #<Process::Status: pid 1487 exit 8>
Ubicación del fallo: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falló con los parámetros \"/tmp/add-cloudflare-ips\"
3123cbaef859e04ff382e3194e1745b88ee6e4777de9f0f7b45cb6cf2ac6d757
** FALLO AL INICIAR ** por favor desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
root@app:/var/discourse#

Cloudflare ha bloqueado tu IP para que no puedas obtener su lista de IPs. Puedes intentarlo de nuevo, preguntarles por qué o gestionar la lista tú mismo.

Para solucionar el problema inmediato, probablemente recuperaría la lista desde tu ordenador local y adaptaría la plantilla para codificarla en lugar de obtenerla de Cloudflare, y luego te pondrías en contacto con ellos.

@RyanK ¿alguna sugerencia sobre esto? nuestra plantilla extrae las listas en cada compilación, pero esto no debería ser un problema. Esperaría recibir una limitación de tasa 429 en lugar de un 403 si fuera así.

3 Me gusta

Lo siento por la pregunta, no soy un profesional :frowning: ¿Cómo puedo agregar las IPs de CloudFlare sin usar esta plantilla cloudflare.template.yml? Estoy usando Discourse Docker en Ubuntu 20.04.

Tengo el mismo problema en dos instancias separadas, con diferentes IP. @GreenOWL ¿qué centro de datos estás usando?

1 me gusta

Si Cloudflare está bloqueando tu acceso y no tienes suficiente experiencia para solucionarlo manualmente, te recomiendo encarecidamente que elimines el fronting de Cloudflare.

4 Me gusta

Abre las puertas del infierno para los abusadores.

1 me gusta

El centro de datos de su proveedor de alojamiento.

1 me gusta

A menos que administres una comunidad que atraiga a abusadores, no debería ser un problema. Y ejecutar Discourse de tal manera que tu IP no se filtre es bastante complicado.

Variante 2.

Si no puedes ayudar, deja de ofender a los usuarios.

En realidad, la acción de la plantilla se puede incrustar manualmente obteniendo las IP de CF de otra IP. @Falco te dio un buen consejo.

Sí, vultr también. Supongo que deberías enviarles un ticket mencionando que es un problema en todas sus IP.

Verifica en tu yaml la ubicación del volumen montado.

Intento reemplazar las URL cloudflare.com/ips-v4/, cloudflare.com/ips-v6/ en cloudflare.template.yml por las IP de mi servidor (cuando se alojan listas de IP).

contents: |
        #!/bin/bash -e
        # Descargar lista de IPs de CloudFlare
        wget -q https://www.myserver.com/ips-v4/ -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget -q https://www.myserver.com/ips-v6/ -O - >> /tmp/cloudflare-ips
        # Convertir en comandos nginx y escapar para incluirlos en el comando sed append
        CONTENTS=$(</tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from \u0026;/' | tr '\n' '\\' | sed 's/\\\\/\\\\n/g')

Tengo este resultado

I, [2022-03-22T18:49:10.469231 #1]  INFO -- : Descargando MaxMindDB...
Comprimiendo Javascript y generando Source Maps

I, [2022-03-22T18:49:10.514524 #1]  INFO -- : Archivo > /usr/local/bin/discourse  chmod: +x  chown:
I, [2022-03-22T18:49:10.521050 #1]  INFO -- : Archivo > /usr/local/bin/rails  chmod: +x  chown:
I, [2022-03-22T18:49:10.528727 #1]  INFO -- : Archivo > /usr/local/bin/rake  chmod: +x  chown:
I, [2022-03-22T18:49:10.534748 #1]  INFO -- : Archivo > /usr/local/bin/rbtrace  chmod: +x  chown:
I, [2022-03-22T18:49:10.541288 #1]  INFO -- : Archivo > /usr/local/bin/stackprof  chmod: +x  chown:
I, [2022-03-22T18:49:10.549718 #1]  INFO -- : Archivo > /etc/update-motd.d/10-web  chmod: +x  chown:
I, [2022-03-22T18:49:10.554428 #1]  INFO -- : Archivo > /etc/logrotate.d/rails  chmod:   chown:
I, [2022-03-22T18:49:10.558589 #1]  INFO -- : Archivo > /etc/logrotate.d/nginx  chmod:   chown:
I, [2022-03-22T18:49:10.565929 #1]  INFO -- : Archivo > /etc/runit/1.d/00-ensure-links  chmod: +x  chown:
I, [2022-03-22T18:49:10.571595 #1]  INFO -- : Archivo > /etc/runit/1.d/01-cleanup-web-pids  chmod: +x  chown:
I, [2022-03-22T18:49:10.578243 #1]  INFO -- : Archivo > /root/.bash_profile  chmod: 644  chown:
I, [2022-03-22T18:49:10.583602 #1]  INFO -- : Archivo > /usr/local/etc/ImageMagick-7/policy.xml  chmod:   chown:
I, [2022-03-22T18:49:10.589959 #1]  INFO -- : Reemplazando (?-mix:server.+{) con limit_req_zone $binary_remote_addr zone=flood:10m rate=$reqs_per_secondr/s;
limit_req_zone $binary_remote_addr zone=bot:10m rate=$reqs_per_minuter/m;
limit_req_status 429;
limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_status 429;
server {
 en /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T18:49:10.592764 #1]  INFO -- : Reemplazando (?-mix:location @discourse {) con location @discourse {
  limit_conn connperip $conn_per_ip;
  limit_req zone=flood burst=$burst_per_second nodelay;
  limit_req zone=bot burst=$burst_per_minute nodelay; en /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T18:49:10.601940 #1]  INFO -- : Archivo > /tmp/add-cloudflare-ips  chmod: +x  chown:
I, [2022-03-22T18:49:10.604368 #1]  INFO -- : > /tmp/add-cloudflare-ips
I, [2022-03-22T18:49:10.791696 #1]  INFO -- :
I, [2022-03-22T18:49:10.811681 #1]  INFO -- : Terminando procesos asíncronos
I, [2022-03-22T18:49:10.813970 #1]  INFO -- : Enviando INT a HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
2022-03-22 18:49:10.815 UTC [42] LOG:  recibida solicitud de apagado rápido
I, [2022-03-22T18:49:10.816541 #1]  INFO -- : Enviando TERM a exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1647974950) Received SIGTERM scheduling shutdown...
2022-03-22 18:49:10.820 UTC [42] LOG:  abortando transacciones activas
2022-03-22 18:49:10.834 UTC [42] LOG:  el worker de fondo "logical replication launcher" (PID 51) salió con código de salida 1
2022-03-22 18:49:10.837 UTC [46] LOG:  apagando
2022-03-22 18:49:10.877 UTC [42] LOG:  el sistema de base de datos está apagado
103:M 22 Mar 2022 18:49:10.896 # Solicitud de apagado del usuario...
103:M 22 Mar 2022 18:49:10.897 * Guardando la instantánea final de RDB antes de salir.
103:M 22 Mar 2022 18:49:10.923 * DB guardado en disco
103:M 22 Mar 2022 18:49:10.924 # Redis está listo para salir, adiós...


FAILED
--------------------
Pups::ExecError: /tmp/add-cloudflare-ips falló con retorno #<Process::Status: pid 1487 exit 8>
Ubicación del fallo: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falló con los parámetros "/tmp/add-cloudflare-ips"
7b755fd1f149c4b1bfb984edccf952001a7d97621aba59a111d07784bf39dc78
** FALLO AL INICIAR ** por favor desplácese hacia arriba y busque mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

Intenta copiar cloudflare.template.yml existente a cloudflare-static.template.yml y reemplaza la parte superior para que se vea así:

run:
  - file:
      path: /tmp/add-cloudflare-ips
      chmod: +x
      contents: |
        #!/bin/bash -e
        cat <<EOF > /tmp/cloudflare-ips
        173.245.48.0/20
        103.21.244.0/22
        103.22.200.0/22
        103.31.4.0/22
        141.101.64.0/18
        108.162.192.0/18
        190.93.240.0/20
        188.114.96.0/20
        197.234.240.0/22
        198.41.128.0/17
        162.158.0.0/15
        104.16.0.0/13
        104.24.0.0/14
        172.64.0.0/13
        131.0.72.0/22
        2400:cb00::/32
        2606:4700::/32
        2803:f800::/32
        2405:b500::/32
        2405:8100::/32
        2a06:98c0::/29
        2c0f:f248::/32
        EOF
        # Convertir en comandos nginx y escapar para incluirlos en el comando de añadir sed
        CONTENTS=$(< /tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from &;/' | tr '\n' '\\' | sed 's/\\/\\n/g')

        echo CloudFlare IPs:
        echo $(echo | sed "/^/a $CONTENTS")
        # Insertar en discourse.conf
        sed -i "/sendfile on;/a $CONTENTS\\nreal_ip_header CF-Connecting-IP;" /etc/nginx/conf.d/discourse.conf
        # Limpiar
        rm /tmp/cloudflare-ips

  - exec: "/tmp/add-cloudflare-ips"
  - exec: "rm /tmp/add-cloudflare-ips"

Luego, cambia tu contenedor de aplicaciones para usar la plantilla -static en lugar de la original.

No lo dejes así para siempre.

4 Me gusta

Puedo arreglarlo en cloudflare.template.yml

Estoy usando GitHub para alojar la lista de IPs de CloudFlare y tengo este error porque uso un enlace con el símbolo /

        # Download list of CloudFlare ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v4/ -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v6/ -O - >> /tmp/cloudflare-ips

Necesito la URL sin este /:

        # Download list of CloudFlare ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v4 -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v6 -O - >> /tmp/cloudflare-ips

Funciona :slight_smile:

Creo que, desde la perspectiva, es necesario crear un espejo del sitio web de IPs de CloudFlare https://www.cloudflare.com/ips-v4 y https://www.cloudflare.com/ips-v6 para obtener una lista actualizada y evitar el bloqueo.

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.