Problème d'installation

Bonjour

Je souhaite installer fabmanager dans une VM Proxmox.
J’ai installé Ubuntu LTS 20.04.4 puis j’ai suivi la procédure d’installation fournie ici => [Procédure]
(fab-manager/doc/production_readme.md at master · sleede/fab-manager · GitHub)
Dans la procédure, j’ai éxecuté les commandes :

\curl -sSL prepare-vps.sleede.com | bash
\curl -sSL setup.fab.mn | bash

Pour préciser, j’ai réinstaller 4 ou 5 fois ubuntu dans Proxmox, j’ai testé avec une Debian dans Proxmox et j’ai testé également dans VmWare Worstation, pensant que je loupais une étape.

Mais je bloque toujours au même endroit car j’ai l’impression que Docker ne démarre pas comme il faut :
J’ai toujours les 2 premiers qui sont en restarting.

CONTAINER ID   IMAGE                COMMAND                  CREATED        STATUS                          PORTS                NAMES
c29729cfee71   nginx:latest         "/docker-entrypoint.…"   35 hours ago   Restarting (1) 1 second ago                          fabmanager-nginx-1
ff7c60b0f463   sleede/fab-manager   "/usr/bin/supervisor…"   35 hours ago   Restarting (2) 55 seconds ago                        fabmanager-fabmanager-1
79e6f1809738   elasticsearch:5.6    "/docker-entrypoint.…"   35 hours ago   Up 25 minutes                   9200/tcp, 9300/tcp   fabmanager-elasticsearch-1
a4ad8cefec21   postgres:9.6         "docker-entrypoint.s…"   35 hours ago   Up 25 minutes                   5432/tcp             fabmanager-postgres-1
45c93d7f5ae0   redis:6-alpine       "docker-entrypoint.s…"   35 hours ago   Up 25 minutes                   6379/tcp             fabmanager-redis-1

Dans le fichier /apps/fabmanager/log/error.log j’ai les messages suivant en boucle :

2024/04/21 08:14:38 [warn] 1#1: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/fabmanager.conf:6
2024/04/21 08:14:38 [warn] 1#1: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/fabmanager.conf:7
2024/04/21 08:14:38 [emerg] 1#1: cannot load certificate "/etc/letsencrypt/live/maison.fr/fullchain.pem": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/etc/letsencrypt/live/maison.fr/fullchain.pem, r) error:10000080:BIO routines::no such file)

Question :

  • Est ce qu’il est possible d’installer fabmanager dans une VM Promox ?

Précision :

  • Je n’ai pas de nom de domaine. Dans les logs « Maison.fr » c’est ce que j’ai saisi pendant la procédure d’installation.
  • J’ai laissé le maximum de paramètres par défaut.
  • Je découvre docker et letsencrypt.

Merci

Bonjour,

J’installe pour la première fois un fab-manager aujourd’hui et j’ai plus ou moins le même soucis.
Je suis également sur Ubuntu 20.04 en vps et j’ai suivis la même procédure.

De mon coté l’image docker « sleede/fab-manager » se lance sans soucis, mais j’ai les même erreurs en ce qui concerne « nginx:latest »

De ce que j’ai pu trouver de mon coté, si ça peut faire avancer les choses :
Concernant les warn :

2024/04/21 08:14:38 [warn] 1#1: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/fabmanager.conf:6
2024/04/21 08:14:38 [warn] 1#1: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/fabmanager.conf:7

→ du deprecated classique, j’ai fait cette modif dans /apps/fabmanager/config/nginx/fabmanager.conf

server {
  listen 443 ssl;
  listen [::]:443 ssl;
  http2 on;

Concernant l’erreur :

2024/04/21 08:14:38 [emerg] 1#1: cannot load certificate "/etc/letsencrypt/live/maison.fr/fullchain.pem": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/etc/letsencrypt/live/maison.fr/fullchain.pem, r) error:10000080:BIO routines::no such file)

→ Après recherche, il semble que letsencrypt n’arrive pas à générer les fichiers nécessaires

J’ai testé plusieurs commande dont :

docker run --rm --name certbot -v "/apps/fabmanager/log:/var/log/letsencrypt" -v "/apps/fabmanager/letsencrypt/etc:/etc/letsencrypt" -v "/apps/fabmanager/letsencrypt/lib:/var/lib/letsencrypt" -v "/apps/fabmanager/letsencrypt/config:/etc/letsencrypt/config" certbot/certbot renew -c "/etc/letsencrypt/config/webroot.ini"

Mais soit il ne trouve pas ce fichier webroot.ini (alors qu’il est bien présent), soit il me log cette erreur :

2024-04-25 23:55:17,877:DEBUG:certbot._internal.main:certbot version: 2.10.0
2024-04-25 23:55:17,877:DEBUG:certbot._internal.main:Location of certbot entry point: /usr/local/bin/certbot
2024-04-25 23:55:17,877:DEBUG:certbot._internal.main:Arguments: ['-c', '/etc/letsencrypt/config/webroot.ini']
2024-04-25 23:55:17,877:DEBUG:certbot._internal.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#manual,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2024-04-25 23:55:17,887:DEBUG:certbot._internal.log:Root logging level set at 30
2024-04-25 23:55:17,888:DEBUG:certbot._internal.display.obj:Notifying user:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2024-04-25 23:55:17,888:DEBUG:certbot._internal.display.obj:Notifying user: No renewals were attempted.
2024-04-25 23:55:17,888:DEBUG:certbot._internal.display.obj:Notifying user: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2024-04-25 23:55:17,888:DEBUG:certbot._internal.renewal:no renewal failures

J’ai également testé un « systemctl status letsencrypt.service » et j’ai ceci en log :

× letsencrypt.service - letsencrypt cert update oneshot
     Loaded: loaded (/etc/systemd/system/letsencrypt.service; static)
     Active: failed (Result: exit-code) since Fri 2024-04-26 01:33:40 CEST; 25min ago
TriggeredBy: ● letsencrypt.timer
    Process: 36979 ExecStart=/usr/bin/docker run --rm --name certbot_fabmanager -v /apps/fabmanager/letsencrypt/etc:/etc/letsencrypt certbot/certbot:latest -c /etc/letsencrypt/config/webr>
   Main PID: 36979 (code=exited, status=1/FAILURE)
        CPU: 18ms

Apr 26 01:33:39 srv513622 docker[36979]: Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Apr 26 01:33:39 srv513622 docker[36979]:   Domain: XXXXXXX.com
Apr 26 01:33:39 srv513622 docker[36979]:   Type:   dns
Apr 26 01:33:39 srv513622 docker[36979]:   Detail: DNS problem: NXDOMAIN looking up A for XXXXXXX.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AA>
Apr 26 01:33:39 srv513622 docker[36979]: Hint: The Certificate Authority failed to download the temporary challenge files created by Certbot. Ensure that the listed domains serve their co>
Apr 26 01:33:39 srv513622 docker[36979]: Some challenges have failed.
Apr 26 01:33:39 srv513622 docker[36979]: Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot >
Apr 26 01:33:40 srv513622 systemd[1]: letsencrypt.service: Main process exited, code=exited, status=1/FAILURE
Apr 26 01:33:40 srv513622 systemd[1]: letsencrypt.service: Failed with result 'exit-code'.
Apr 26 01:33:40 srv513622 systemd[1]: Failed to start letsencrypt cert update oneshot.

(sachant que j’ai bien le nom de domaine, remplacé ici par XXXXXX.com)

Si vous avez des pistes, je suis preneur, je sèche ! Merci :slight_smile:

Bonjour
J’ai refais des essais en installant sur une machine physique => toujours les même erreurs.
Les container NGIX et fabmanager ne se lancent pas.

En parcourant différents post, j’ai cru comprendre que letsencrypt nécessite d’avoir un vrai nom de domaine pour valider les certificats. Je n’ai pas de nom de domaine.
J’ai cru également comprendre que NGIX et letencrypt sont liés.

Je n’ai pas trouvé s’il été possible d’installer fabamanager sans NGIX et letencrypt.

Je vais encore chercher un peu comment configurer NGIX et letencrypt mais je suis pas loin d’abandonner.

Bonjour,

De ce que je sais, voici quelques éléments de réponses :

  • Nginx permet de lancer le serveur Web et donc, d’afficher le site. Sans lui, il n’y a rien.
  • Letsencrypt permet de générer les certificats SSL/TLS, et donc, de pouvoir afficher le site web en https.

Dans ton cas, il est surement possible de faire tourner nginx en modifiant le fichier " /apps/fabmanager/config/nginx/fabmanager.conf" et en retirant tout ce qui concerne le https.

Effectivement c’est la configuration de NGINX dans le fichier fabmanager.conf (Merci pour la piste) :
letsencrypt n’est pas obligatoire.
J’ai crée mes propres certificats.
J’ai modifié ma config pour activer les certificats locaux
ATTENTION il faut stocker les certificats dans le répertoire /apps/fabmanager/config/nginx/ssl même si dans le fichier de config il est écrit /etc/nginx/conf.d/ssl/

upstream puma {
  server X.X.X.X:3000;
}

server {
  listen 0.0.0.0:443 ssl;
  http2 on;
  #listen [::]:443 ssl http2;
  server_name SERVER.fr;
  root /usr/src/app/public;
  ## with your ssl certificate
  ssl_certificate /etc/nginx/conf.d/ssl/certif.fr.crt;
  ssl_certificate_key /etc/nginx/conf.d/ssl/certif.fr.deprotected.key;
  
  ##
  ## with letsencrypt certificate (free)
  #ssl_certificate_key /etc/letsencrypt/live/SERVER.fr/privkey.pem;
  #ssl_certificate /etc/letsencrypt/live/fabmano.fr/fullchain.pem;
  #ssl_trusted_certificate /etc/letsencrypt/live/fabmano.fr/chain.pem;

Avec X.X.X.X : adresse ip du serveur
SERVER : nom du server

Mais maintenant j’ai l’erreur suivante quand j’accède à la page Web :sob:

2024-04-28 17 32 11

Avec les erreurs suivantes dans le fichier error.log

2024/04/28 15:26:54 [error] 22#22: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.20.43, server: fabmano.fr, request: "GET / HTTP/2.0", upstream: "http://192.168.20.18:3000/", host: "192.168.20.18"
2024/04/28 15:26:54 [error] 22#22: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.20.43, server: fabmano.fr, request: "GET /favicon.ico HTTP/2.0", upstream: "http://192.168.20.18:3000/favicon.ico", host: "192.168.20.18", referrer: "https://192.168.20.18/"
2024/04/28 15:26:54 [error] 22#22: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.20.43, server: fabmano.fr, request: "GET / HTTP/2.0", upstream: "http://192.168.20.18:3000/", host: "192.168.20.18"
2024/04/28 15:26:54 [error] 22#22: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.20.43, server: fabmano.fr, request: "GET /favicon.ico HTTP/2.0", upstream: "http://192.168.20.18:3000/favicon.ico", host: "192.168.20.18", referrer: "https://192.168.20.18/"

Une piste ?