[Debian 10] Souci d'installation

Bonjour,
Tout d’abord, un grand merci pour ce soft, qui répond à un besoin (adaptation à la législation française notamment), et à l’orientation prise pour répondre aux attentes des “tiers lieux”.

J’essaie d’installer une instance sur une VM sous Debian Buster depuis le script install.py du dépôt playbooks, et je rencontre quelques soucis.

Lors de mes derniers essais hier, l'installation bloquait à l'étape :
TASK [bench : Install ERPNext to default site] ********************************************************************************************
task path: /tmp/.bench/playbooks/roles/bench/tasks/setup_erpnext.yml:23 

Pas de message d’erreur, juste l’installation semblait figée.

un pip list me donne:
Package Version Location
---------------- ------------- ------------------
ansible 2.8.5
bench 1.5.1 /home/dokos/.bench
certifi 2019.9.11
cffi 1.14.3
chardet 3.0.4
Click 7.0
cryptography 3.2.1
fail2ban 0.10.2
gitdb 4.0.5
gitdb2 4.0.2
GitPython 2.1.11
honcho 1.0.1
httplib2 0.11.3
idna 2.8
Jinja2 2.10.3
MarkupSafe 1.1.1
mysqlclient 1.3.10
pip 20.2.4
psutil 5.7.3
pycparser 2.20
pycurl 7.43.0.2
pyOpenSSL 16.2.0
PySimpleSOAP 1.16.2
python-apt 1.8.4.1
python-crontab 2.4.0
python-dateutil 2.8.1
python-debian 0.1.35
python-debianbts 2.8.2
python-gitlab 1.13.0
PyYAML 5.3.1
reportbug 7.5.3-deb10u1
requests 2.22.0
semantic-version 2.8.2
setuptools 40.8.0
six 1.12.0
smmap 3.0.4
smmap2 2.0.5
urllib3 1.25.7
virtualenv 16.6.0

À noter, à un moment l’installeur a ronchonné, notamment pour une histoire de version de setuptools
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

bench 1.5.1 requires setuptools==40.8.0, but you'll have setuptools 50.3.2 which is incompatible.

Effectivement une recherche pip me donne :

setuptools (50.3.2)                          - Easily download, build, install, upgrade, and uninstall Python packages
  INSTALLED: 40.8.0

D’autre part, j’ai vu que le script indiquait le chemin d’install “en dur” dans /home. Serait-il possible de récupérer la variable d’environnement $HOME plutôt ? J’ai eu l’outrecuidante de créer le home de l’utilisateur dokos dans /opt, mais bench se pose tout de même dans /home/dokos :frowning:

Si quelqu’un parmi vous a même fait l’installation complètement manuellement, ou juste en lançant les playbooks manuellement, je suis intéressé.
Merci par avance.
Bonne journée, et restez vigilants en cette période sanitaire compliquée.

Bonjour Stéphane,

Je teste une installation sur Debian 10 demain et je te fais un retour ici.

Bonne soirée!

Merci beaucoup Charles Henri.
Pour être honnête, j’ai cherché un moment seul pour ne pas venir vous embêter, mais comme je ne comprends pas encore comment Frappe / Bench est installé et fonctionne, je suis à la ramasse :frowning:

C’est particulièrement ça qui m’importe, car le reste je sais le gérer, voire même je n’ai pas besoin de certains paquets (exemple NTP que je remplace par timesyncd de systemd ou chrony).

Bonsoir Sylvain,

J’ai retesté sur Debian 10 et n’ai rencontré aucun problème lors de l’installation.
Je me demande si ça n’est pas un problème de mémoire vive. A l’étape “Install ERPNext to default site” la génération des actifs du site nécessite pas mal de mémoire vive, sinon ça prend beaucoup de temps et peut-être que le système a bloqué pour cette raison ?

Ceci étant, j’en ai profité pour préparer les scripts d’installation pour la version 2. Pour info, la publication officielle de la version 2 est en attente de mise en conformité et d’adaptation de l’interface du point de vente à cette nouvelle version. Ceux qui n’utilisent pas le point de vente sont encouragés à y passer dès maintenant.

Je vais faire une documentation d’ici la fin de la semaine pour l’utilisation de ces scripts, mais globalement, il suffit simplement de télécharger le script d’installation à l’adresse suivante au lieu de celle de la doc actuelle:
wget https://gitlab.com/dokos/docli/raw/develop/bench/install.py

Je l’ai testée sur Debian 10 et ça fonctionne bien; il reste des ajustements à faire pour Ubuntu 20.04 par contre.

Voici un résumé rapide des étapes que j’ai suivi:

  1. Lancer une VM sur AWS avec la distribution Linux Debian 10
  2. Lancer sudo apt-get update && sudo apt-get upgrade
  3. Lancer sudo apt-get install build-essential python3-setuptools
  4. Télécharger le script d’installation à l’adresse: wget https://gitlab.com/dokos/docli/raw/develop/bench/install.py
  5. Lancer export LC_ALL=C.UTF-8
  6. Lancer l’installation: sudo python3 install.py --production --user admin

Par ailleurs pour utiliser les scripts d’installation mais ne pas créer de dossier “Bench” dans le dossier /home/ de l’utilisateur, il faut passer la variable suivante lors de l’installation (étape 6): --without-bench-folder

Il est aussi possible d’installer la ligne de commande Dokos CLI (équivalent de bench) avec pip en lançant: sudo pip install dokos-cli.
Dans ce cas les pré-requis sont identiques à ceux de Frappe: https://frappeframework.com/docs/user/en/installation

Merci pour toutes ces explications. Effectivement, la piste du manque de RAM, et plus généralement de ressources hardware est plausible, j’avais fait mes tests sur une VM sur un petit HPE miniserver. Je suis passé sur un autre serveur plus costaud.

Maintenant, je ne dois pas être en chance. Quand je relance l’installation depuis le repo “master” j’ai des erreurs sur le téléchargement des paquets MariaDB :
Failed to fetch http://ams2.mirrors.digitalocean.com/mariadb/repo/10.4/debian/pool/main/m/mariadb-10.4/mariadb-client-core-10.4_10.4.16+maria~buster_amd64.deb 404 Not Found [IP: 104.24.117.209 80]\n
Il semble que j’ai des erreurs 404 sur tous les dépôts MariaDB de Digital Ocean :frowning: Ce sont à priori les mêmes versions que les dépôts Debian Buster, pourquoi aller les chercher là ?

Au préalable (hier soir), j’avais tenté l’installation depuis le dépôt dev pour avoir la v2.0 toute fraiche, si j’ai bien compris, et là c’est la commande bench setup sudoers qui me crée un fichier /etc/sudoers.d/dodock qui bogue, plante l’install, et plante l’utilisation de sudo. Je ne suis pas sûr, mais ce serait la première ou les deux premières lignes de paramètres sudo dans le fichier qui posent problème.

Bref, je commence à croire que j’ai la guigne :slight_smile:
Je vais prendre un peu de temps dans les jours et semaines qui viennent pour étudier tes scripts et playbooks, et comprendre comment fonctionne Frappe pour ne peut-être lancer que la partie bench à proprement parler.
Bonne fin de soirée.
Stéphane

Salut Stéphane,

Désolé, effectivement il y avait un souci avec la génération du fichier sudoers…il manquait un espace à la fin du fichier… j’espère que c’était une VM remplaçable ou que tu avais un accès root pour supprimer le fichier.

J’ai corrigé les scripts et je viens de les retester sur Debian 10 et Ubuntu 20.04 sans rencontrer de soucis (sauf une petite erreur non bloquante dans Ubuntu).

L’erreur 404 avec les script “master” semble être lié à une indisponibilité temporaire des dépôts sur Digital Ocean. Le lien fonctionne aujourd’hui.

En terme de spec, idéalement il faut 8Go de Ram pour être sûr que la génération des actifs ne se bloque pas.

Donc non tu n’as pas la guigne! :wink:

Si tu rencontres d’autres problèmes n’hésites pas à me les remonter.

PS: Je suis en train de bosser sur une installation sous Docker pour simplifier tout ça! Si tu connais Docker et veux participer, voici le répértoire: https://gitlab.com/dokos/dokidocker

Merci Charles-Henry pour ta disponibilité.
Pas de souci pour le sudo bloqué, j’avais bien l’accès au root pour reprendre la main.

Du coup, pour le moment, je ne pourrai retester ton script Python d’installation, car pour ne pas rester sur un échec hier soir, j’ai installé le dokos-cli depuis pip, et j’ai installé les briques avec le bench cli. L’instance est installée. Bon, je ne suis pas en v2 du coup, et je suis encore largué sur quelques points, mais j’ai une instance de dev fonctionnelle pour tester ton superbe soft à la maison :wink:

Ça me permet de comprendre l’architecture de Frappe du coup, ce qui n’est pas un mal, j’aime comprendre comment ça fonctionne, et ce que je fais :slight_smile:
Je te tiendrai informé au fur et à mesure de mes pérégrinations.
Bonne soirée.
Stéphane

Salut Stéphane,

Super si tu as pu l’installer directement avec pip! Le script Ansible ne fait qu’installer toutes les briques automatiquement, mais si tu les installes manuellement c’est encore mieux.

Si tu veux passer en v2, il te suffit de faire:

bench switch-to-branch develop frappe erpnext
bench update

Attention à bien utiliser Python3.7 ou Python3.8 pour la v2.
Si ça n’est pas le cas, installe une des deux versions et migre l’environnement virtuel de ton bench grâce à:

bench migrate-env python3.X

Bonne journée!

Bonjour Charles-Henry,
Merci pour ces infos, et désolé pour le temps de réponse parfois un peu long. Je teste l’ensemble des opérations pour m’assurer que je n’ai pas de régressions, et que je ne casse rien, avant de te répondre :slight_smile:

J’ai passé les commandes que tu as donné ci-dessus pour faire l’update, mais je ne suis pas sûr que ça ait fonctionné. Dans “à propos” j’ai ces infos:

Applications installées

dokos: v1.x.x-develop () (develop)
dodock: v1.x.x-develop () (develop)

Je lance encore l’instance en mode dev (bench start), car comme j’ai l’ai installée à la main, je dois refaire le tour des fichiers de conf. (notamment le vhost nginx pour m’assurer que le reverse proxy est bien installé). Je teste les fonctionnalités pour m’assurer que tout est fonctionnel (notamment le connecteur LDAP que je vais utiliser).

J’ai une base de départ, et démystifie les commandes bench, ça devrait être moins obscur pour moi dans les jours qui viennent :wink: