Échec du démarrage (/tmp/add-cloudflare-ips)

Bonjour !

J’ai cette erreur lorsque j’essaie de reconstruire :

FAILED
--------------------
Pups::ExecError : /tmp/add-cloudflare-ips a échoué avec le retour #<Process::Status: pid 1484 exit 8>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec a échoué avec les paramètres « /tmp/add-cloudflare-ips »
9fe8337bb7b8e64abb480bd2527551585759e48df340dc74bb84c67bdf1ee6b2
** ÉCHEC DU BOOTSTRAP ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Cette erreur était sans danger avec l’activation et la désactivation du proxy (nuage orange) sur CloudFlare :frowning:

1 « J'aime »

Pouvez-vous faire défiler vers le haut et afficher la sortie ci-dessus où la commande /tmp/add-cloudflare-ips échoue ?

Compilation CSS terminée : 2022-03-22 16:54:37 UTC
I, [2022-03-22T16:54:37.832057 #1]  INFO -- : Téléchargement de MaxMindDB...
Compression du Javascript et génération des Source Maps

I, [2022-03-22T16:54:37.874506 #1]  INFO -- : Fichier > /usr/local/bin/discourse  chmod : +x  chown :
I, [2022-03-22T16:54:37.880784 #1]  INFO -- : Fichier > /usr/local/bin/rails  chmod : +x  chown :
I, [2022-03-22T16:54:37.887872 #1]  INFO -- : Fichier > /usr/local/bin/rake  chmod : +x  chown :
I, [2022-03-22T16:54:37.894248 #1]  INFO -- : Fichier > /usr/local/bin/rbtrace  chmod : +x  chown :
I, [2022-03-22T16:54:37.900136 #1]  INFO -- : Fichier > /usr/local/bin/stackprof  chmod : +x  chown :
I, [2022-03-22T16:54:37.907873 #1]  INFO -- : Fichier > /etc/update-motd.d/10-web  chmod : +x  chown :
I, [2022-03-22T16:54:37.912825 #1]  INFO -- : Fichier > /etc/logrotate.d/rails  chmod :   chown :
I, [2022-03-22T16:54:37.917132 #1]  INFO -- : Fichier > /etc/logrotate.d/nginx  chmod :   chown :
I, [2022-03-22T16:54:37.924129 #1]  INFO -- : Fichier > /etc/runit/1.d/00-ensure-links  chmod : +x  chown :
I, [2022-03-22T16:54:37.930083 #1]  INFO -- : Fichier > /etc/runit/1.d/01-cleanup-web-pids  chmod : +x  chown :
I, [2022-03-22T16:54:37.936780 #1]  INFO -- : Fichier > /root/.bash_profile  chmod : 644  chown :
I, [2022-03-22T16:54:37.941664 #1]  INFO -- : Fichier > /usr/local/etc/ImageMagick-7/policy.xml  chmod :   chown :
I, [2022-03-22T16:54:37.949303 #1]  INFO -- : Remplacement de (?-mix:server.+{) par 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 r/m;
limit_req_status 429;
limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_status 429;
server {
 dans /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T16:54:37.952599 #1]  INFO -- : Remplacement de (?-mix:location @discourse {) par 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; dans /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T16:54:37.960935 #1]  INFO -- : Fichier > /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/
Résolution de www.cloudflare.com (www.cloudflare.com)... 104.16.124.96, 104.16.123.96, 2606:4700::6810:7c60, ...
Connexion à www.cloudflare.com (www.cloudflare.com)|104.16.124.96|:443... connecté.
Requête HTTP envoyée, en attente de la réponse... 403 Forbidden
2022-03-22 16:54:38 ERREUR 403: Forbidden.

I, [2022-03-22T16:54:38.130543 #1]  INFO -- :
I, [2022-03-22T16:54:38.146489 #1]  INFO -- : Arrêt des processus asynchrones
I, [2022-03-22T16:54:38.148916 #1]  INFO -- : Envoi de INT à 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 :  demande d'arrêt rapide reçue
I, [2022-03-22T16:54:38.150508 #1]  INFO -- : Envoi de TERM à exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid : 103
103:gestionnaire-de-signaux (1647968078) SIGTERM reçu, planification de l'arrêt...
2022-03-22 16:54:38.155 UTC [42] LOG :  annulation de toutes les transactions actives
2022-03-22 16:54:38.167 UTC [42] LOG :  l'arrière-plan worker \"logical replication launcher\" (PID 51) s'est terminé avec le code de sortie 1
2022-03-22 16:54:38.171 UTC [46] LOG :  arrêt en cours
103:M 22 Mar 2022 16:54:38.203 # Arrêt demandé par l'utilisateur...
103:M 22 Mar 2022 16:54:38.204 * Sauvegarde du dernier instantané RDB avant la sortie.
103:M 22 Mar 2022 16:54:38.213 * DB sauvegardé sur disque
103:M 22 Mar 2022 16:54:38.214 # Redis est maintenant prêt à quitter, au revoir...
2022-03-22 16:54:38.228 UTC [42] LOG :  le système de base de données est arrêté


ÉCHEC
--------------------
Pups::ExecError : /tmp/add-cloudflare-ips a échoué avec le retour #<Process::Status: pid 1487 exit 8>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
échec de l'exécution avec les paramètres « /tmp/add-cloudflare-ips »
3123cbaef859e04ff382e3194e1745b88ee6e4777de9f0f7b45cb6cf2ac6d757
** ÉCHEC DU DÉMARRAGE ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
root@app:/var/discourse#

Cloudflare a bloqué votre adresse IP pour la récupération de sa liste d’adresses IP. Vous pouvez réessayer, leur demander pourquoi, ou gérer la liste vous-même.

Pour résoudre le problème immédiat, je récupérerais probablement la liste depuis votre ordinateur local et adapterais le modèle pour la coder en dur au lieu de la récupérer depuis Cloudflare, puis je les contacterais.

@RyanK des suggestions à ce sujet ? notre template récupère les listes à chaque build, mais cela ne devrait pas poser de problème. Je m’attendrais à être limité par le taux 429 plutôt qu’à recevoir un 403 si c’était le cas.

3 « J'aime »

Désolé pour la question, je ne suis pas un pro :frowning: Comment puis-je ajouter les adresses IP de CloudFlare sans utiliser ce modèle cloudflare.template.yml ? J’utilise Discourse Docker sur Ubuntu 20.04.

J’ai le même problème sur deux instances distinctes, avec des adresses IP différentes. @GreenOWL, quel centre de données utilisez-vous ?

1 « J'aime »

Si Cloudflare bloque votre accès et que vous n’êtes pas assez familiarisé pour le corriger manuellement, je vous recommande vivement de supprimer le masquage Cloudflare.

4 « J'aime »

Ouvre les portes de l’enfer aux abuseurs.

1 « J'aime »

Le centre de données de votre fournisseur d’hébergement.

1 « J'aime »

À moins que vous n’exploitiez une communauté qui attire les abuseurs, cela ne devrait pas poser de problème. Et exécuter Discourse de manière à ce que votre IP ne soit pas divulguée est plutôt délicat.

Variante 2.

Si vous ne pouvez pas aider, arrêtez d’offenser les utilisateurs.

En fait, l’action du modèle peut être intégrée manuellement en récupérant les adresses IP du CF à partir d’une autre adresse IP. @Falco vous a donné un excellent conseil.

Oui, vultr aussi. Je suppose que vous devriez leur envoyer un ticket en mentionnant qu’il s’agit d’un problème sur toutes leurs adresses IP.

Vérifiez dans votre yaml l’emplacement du volume monté.

J’essaie de remplacer les URL cloudflare.com/ips-v4/, cloudflare.com/ips-v6/ dans cloudflare.template.yml par les adresses IP de mon serveur (lorsque la liste d’adresses IP est hébergée).

contents: |
        #!/bin/bash -e
        # Télécharger la liste des IP 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
        # Créer des commandes nginx et échapper pour inclusion dans la commande sed append
        CONTENTS=$(</tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from \u0026;/' | tr '\n' '\\' | sed 's/\\\\/\\\\n/g')

Voici le résultat

I, [2022-03-22T18:49:10.469231 #1]  INFO -- : Téléchargement de MaxMindDB...
Compression du Javascript et génération des Source Maps

I, [2022-03-22T18:49:10.514524 #1]  INFO -- : Fichier > /usr/local/bin/discourse  chmod : +x  chown :
I, [2022-03-22T18:49:10.521050 #1]  INFO -- : Fichier > /usr/local/bin/rails  chmod : +x  chown :
I, [2022-03-22T18:49:10.528727 #1]  INFO -- : Fichier > /usr/local/bin/rake  chmod : +x  chown :
I, [2022-03-22T18:49:10.534748 #1]  INFO -- : Fichier > /usr/local/bin/rbtrace  chmod : +x  chown :
I, [2022-03-22T18:49:10.541288 #1]  INFO -- : Fichier > /usr/local/bin/stackprof  chmod : +x  chown :
I, [2022-03-22T18:49:10.549718 #1]  INFO -- : Fichier > /etc/update-motd.d/10-web  chmod : +x  chown :
I, [2022-03-22T18:49:10.554428 #1]  INFO -- : Fichier > /etc/logrotate.d/rails  chmod :   chown :
I, [2022-03-22T18:49:10.558589 #1]  INFO -- : Fichier > /etc/logrotate.d/nginx  chmod :   chown :
I, [2022-03-22T18:49:10.565929 #1]  INFO -- : Fichier > /etc/runit/1.d/00-ensure-links  chmod : +x  chown :
I, [2022-03-22T18:49:10.571595 #1]  INFO -- : Fichier > /etc/runit/1.d/01-cleanup-web-pids  chmod : +x  chown :
I, [2022-03-22T18:49:10.578243 #1]  INFO -- : Fichier > /root/.bash_profile  chmod : 644  chown :
I, [2022-03-22T18:49:10.583602 #1]  INFO -- : Fichier > /usr/local/etc/ImageMagick-7/policy.xml  chmod :   chown :
I, [2022-03-22T18:49:10.589959 #1]  INFO -- : Remplacement de (?-mix:server.+{) par 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 {
 dans /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T18:49:10.592764 #1]  INFO -- : Remplacement de (?-mix:location @discourse {) par 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; dans /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T18:49:10.601940 #1]  INFO -- : Fichier > /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 -- : Arrêt des processus asynchrones
I, [2022-03-22T18:49:10.813970 #1]  INFO -- : Envoi de INT à 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 : demande d'arrêt rapide reçue
I, [2022-03-22T18:49:10.816541 #1]  INFO -- : Envoi de TERM à exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid : 103
103:signal-handler (1647974950) SIGTERM reçu, planification de l'arrêt...
2022-03-22 18:49:10.820 UTC [42] LOG : annulation de toutes les transactions actives
2022-03-22 18:49:10.834 UTC [42] LOG : le worker d'arrière-plan « logical replication launcher » (PID 51) s'est terminé avec le code de sortie 1
2022-03-22 18:49:10.837 UTC [46] LOG : arrêt en cours
2022-03-22 18:49:10.877 UTC [42] LOG : le système de base de données est arrêté
103:M 22 Mar 2022 18:49:10.896 # Arrêt demandé par l'utilisateur...
103:M 22 Mar 2022 18:49:10.897 * Sauvegarde du dernier instantané RDB avant de quitter.
103:M 22 Mar 2022 18:49:10.923 * DB sauvegardé sur disque
103:M 22 Mar 2022 18:49:10.924 # Redis est maintenant prêt à quitter, au revoir...


ÉCHEC
--------------------
Pups::ExecError : /tmp/add-cloudflare-ips a échoué avec le retour #<Process::Status: pid 1487 exit 8>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec a échoué avec les paramètres « /tmp/add-cloudflare-ips »
7b755fd1f149c4b1bfb984edccf952001a7d97621aba59a111d07784bf39dc78
** ÉCHEC DU DÉMARRAGE ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Essayez de copier le fichier cloudflare.template.yml existant vers cloudflare-static.template.yml et remplacez la partie supérieure pour qu’elle ressemble à ceci :

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 commandes nginx et échapper pour l'inclusion dans la commande d'ajout sed
        CONTENTS=$(< /tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from \u0026;/' | tr '\n' '\\\\' | sed 's/\\\\/\\\\n/g')

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

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

Ensuite, modifiez votre conteneur d’application pour utiliser le modèle -static au lieu du modèle d’origine.

Ne le laissez pas comme ça pour toujours.

4 « J'aime »

Je peux le corriger dans cloudflare.template.yml

J’utilise GitHub pour héberger la liste des IP de CloudFlare et j’ai cette erreur car j’utilise un lien avec le symbole /

        # Télécharger la liste des IP de CloudFlare
        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

J’ai besoin de l’URL sans le / comme ceci :

        # Télécharger la liste des IP de CloudFlare
        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

Ça fonctionne :slight_smile:

Je pense que du point de vue de la perspective, il faut créer un miroir du site web des IP de CloudFlare https://www.cloudflare.com/ips-v4 et https://www.cloudflare.com/ips-v6 pour obtenir une liste à jour et contourner le blocage.

1 « J'aime »

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