Libelektra: Améliorations d'AsciiNema

Créé le 2 juin 2019  ·  27Commentaires  ·  Source: ElektraInitiative/libelektra

  • [ ] devrait fonctionner tel quel également dans docker (sudo ?)
  • [ ] Éditeur kdb également pour les hôtes
  • [ ] s'affichent également à partir d'un autre langage, par exemple python
  • [ ] afficher YAML
  • [ ] afficher les spécifications de montage

Tous les 27 commentaires

Je peux tout réenregistrer tel qu'il est maintenant pour afficher le message d'erreur puisqu'il appartient mineurement à "mon domaine" mais je ne veux pas instruire complètement tout un exemple yaml, python, specmount car c'est beaucoup de travail pour montrer de manière sensée un utilisateur ce qu'elektra peut faire.

Nous avons convenu que seuls les problèmes liés aux messages d'erreur m'appartiennent...

Je suis d'accord que python n'est pas quelque chose avec lequel vous avez travaillé. YAML n'est qu'un exemple, pas vraiment important. Les autres choses sont parfaitement dans le champ d'application.

Ok, mais qu'en est-il de "devrait fonctionner tel quel également dans docker"
Je ne comprends pas ce point.

Ok, mais qu'en est-il de "devrait fonctionner tel quel également dans docker"
Je ne comprends pas ce point.

Que le tutoriel est fait à l'intérieur de docker. Vous démarrez donc le didacticiel en extrayant une image Docker (vous pouvez peut-être envoyer une image Alpine Docker à docker.com sur lequel Elektra 0.9.1 est installé afin que vous n'ayez pas besoin de l'installer pendant le didacticiel).

Pourquoi aurais-je besoin de le faire dans un conteneur docker ? J'ai asciinema local sur mon système et je l'enregistre là-bas. Tout ce qu'asciinema émet est un fichier .json

Pourquoi aurais-je besoin de le faire dans un conteneur docker ? J'ai asciinema local sur mon système et je l'enregistre là-bas.

En tant que première commande du didacticiel, vous tirez et entrez dans le conteneur Docker. Cela a l'avantage que ce qui est enregistré fonctionne également pour les personnes qui veulent s'essayer sans avoir besoin de passer par l'installation.

peut-être pouvez-vous pousser une image Docker alpine vers docker.com sur lequel Elektra 0.9.1 est installé afin que vous n'ayez pas besoin de l'installer pendant le didacticiel

N'avons-nous pas déjà un registre Docker où Jenkins tire tous les conteneurs ? Si je poussais une telle image docker vers dockerhub, j'aurais probablement besoin de votre compte pour cela afin que l'image docker reste en ligne pendant toute la durée de vie d'elektra.

Cela ne devrait pas poser de problème, mais pouvez-vous créer une image Docker ?

@mpranj aviez -vous prévu de faire une telle image pour les sorties ?

aviez-vous prévu de faire une telle image pour les sorties ?

Pas de plans immédiats, mais cela semble agréable à avoir. J'aime beaucoup l'idée que nous publions officiellement une telle image à chaque sortie. Elektra est assez pénible à compiler et à configurer pour les novices.

Ok, pouvez-vous créer une image docker alpine et la télécharger dans un dépôt (public nouvellement créé ?) ? Il serait plus logique que vous, en tant que maître de construction, le fassiez :)

pouvez-vous créer une image de docker alpin

Je peux le créer mais probablement pas aujourd'hui.

Pas de plans immédiats

probablement pas aujourd'hui.

Ok, donc je l'ai créé aujourd'hui.

docker run -it elektra/elektra et vous êtes déposé dans un shell avec kdb disponible.

Travail incroyable! N'oubliez pas de l'annoncer dans les prochaines notes de version. Nous devrions également ajouter cette information aux endroits importants pour les nouveaux arrivants (@d3nwp).

@mpranj Quels plugins avez-vous inclus dans l'image ? json par exemple n'existe pas. Si je dois inclure yaml, vous devriez probablement en installer un.

Btw est sudo non installé dans l'image mais requis pour le montage (en fait très bizarre).

De plus : cette image fait 700 mb, avez-vous pris une version alpine ?

Btw est sudo non installé dans l'image mais requis pour le montage (en fait très bizarre).

L'image est construite de manière à ce que vous n'ayez pas besoin de sudo. Alors tapez simplement comme première commande (après l'exécution du menu fixe):

alias sudo= # in this image we do not need to be root

Ensuite, "sudo" n'apparaîtra pas dans l'image, mais si les utilisateurs l'essayent sur leur machine, ils disposeront de toutes les commandes nécessitant sudo avec sudo.

@Piankero , vous pouvez inspecter l'image dans # 3300 et ajouter des suggestions.
Malheureusement:

677.1M  /usr
360.8M  /usr/local/lib/elektra
73.4M   /usr/libexec/gcc
63.1M   /usr/local/bin/kdb

Je pense qu'en fait l'image n'est pas construite de telle sorte que sudo n'est pas nécessaire, je dois l'améliorer. Ou avez-vous essayé?

L'image est construite de manière à ce que vous n'ayez pas besoin de sudo.

docker run -it elektra/elektra           
~ $ kdb mount hello.js /hello ini
 Sorry, 3 warnings were issued ;(
    Sorry, module resolver_fm_hpu_b issued the warning C01100:
    Resource: Could not create configuration file '/etc/kdb/elektra.ecf'. Reason: No such file or directory
    Mountpoint: system/elektra
    Configfile: /etc/kdb/elektra.ecf.8:1575114514.708002.tmp
    At: /opt/elektra/src/plugins/resolver/resolver.c:709
    Sorry, module dump issued the warning C01100:
    Resource: Could not open file /etc/kdb/elektra.ecf.8:1575114514.708002.tmp for writing. Reason: No such file or directory
    Mountpoint: system/elektra
    Configfile: /etc/kdb/elektra.ecf.8:1575114514.708002.tmp
    At: /opt/elektra/src/plugins/dump/dump.cpp:287
    Sorry, module resolver_fm_hpu_b issued the warning C01100:
    Resource: Could not unlink the file '/etc/kdb/elektra.ecf.8:1575114514.708002.tmp'. Reason: No such file or directory
    Mountpoint: system/elektra
    Configfile: /etc/kdb/elektra.ecf.8:1575114514.708002.tmp
    At: /opt/elektra/src/plugins/resolver/resolver.c:1154
Sorry, module resolver_fm_hpu_b issued the error C01100:
Resource: Could not create directory '/etc/kdb'. Reason: Permission denied. Identity: uid: 1000, euid: 1000, gid: 1000, egid: 1000
Mountpoint: system/elektra
Configfile: /etc/kdb/elektra.ecf.8:1575114514.708002.tmp
At: /opt/elektra/src/plugins/resolver/resolver.c:785


IMPORTANT: Sorry, I am unable to write your requested mountpoint to system/elektra/mountpoints.
           You can get the problematic file name by reading the elektra system file (kdb file system/elektra/mountpoints).
           Usually you need to be root for this operation (try `sudo !!`).

@Piankero oui, il est mal configuré. Désolé, je vais essayer de le réparer bientôt !

J'ai essayé de configurer simplement elektra pour qu'il n'écrive rien en dehors du répertoire utilisateur, mais le didacticiel inclut des éléments tels que la modification du fichier hosts en tant que root.

Peut-être est-il logique que l'image soit exécutée en tant que root afin que ces choses puissent être faites facilement?
Sinon, sudo doit être configuré correctement dans l'image, je ne sais pas si cela a du sens.

EDIT: ping ne fonctionne pas non plus dans alpine/busybox sans racine.

EDIT: une autre chose qui n'est pas disponible dans alpine à ma connaissance est xerces, donc il n'y a pas d'outil xml :(

EDIT : elektrify-getenv ne fonctionne pas car alpine n'utilise pas la glibc.

J'ai poussé elektra/elektra:0.9.1-3 qui configure kdb pour écrire uniquement dans le homedir de l'utilisateur.

Étant donné que tout le didacticiel AsciiNema ne fonctionnera pas sur alpine, je suis ouvert à d'autres suggestions.

J'ai essayé de configurer simplement elektra pour qu'il n'écrive rien en dehors du répertoire utilisateur, mais le didacticiel inclut des éléments tels que la modification du fichier hosts en tant que root.

Oui.

Peut-être est-il logique que l'image soit exécutée en tant que root afin que ces choses puissent être faites facilement?
Sinon, sudo doit être configuré correctement dans l'image, je ne sais pas si cela a du sens.

Peut-être que sudo est mieux, car tous nos tutoriels utilisent sudo.

par exemple scripts/docker/cirrus/arch/Dockerfile a sudo

EDIT: ping ne fonctionne pas non plus dans alpine/busybox sans racine.

Ce n'est pas grave de ne pas l'avoir (car nous n'avons pas non plus getenv)

EDIT: une autre chose qui n'est pas disponible dans alpine à ma connaissance est xerces, donc il n'y a pas d'outil xml :(

Pas grave : alors nous ne montrons pas le plugin xerces. xmltool est de toute façon obsolète.

EDIT : elektrify-getenv ne fonctionne pas car alpine n'utilise pas la glibc.

Cette partie, nous pouvons supprimer.

Merci! Je vais ajouter sudo alors!

J'ai poussé elektra/elektra:0.9.1-5 qui ajoute sudo et réduit la taille de l'image d'un facteur ~100.

@ markus2330 Avant d'enregistrer le nouveau tutoriel, je veux que vous approuviez l'ensemble du playbook.

Voici la nouvelle version :

docker run -it elektra/elektra                                      > NEW LINE

sudo kdb mount hello.js /hello json
kdb set user/hello/hello/world "Hello World"
kdb get user/hello/hello/world  
kdb file user/hello/hello/world
vi /home/elektra/.config/hello.js
# Edit file to say "Hello World from File!"
kdb get user/hello/hello/world
kdb editor user/hello ini
# Edit file to say "Hello World from INI!"
kdb get user/hello/hello/world
kdb export user/hello 
kdb export user/hello tcl
kdb export user/hello yaml                                      > NEW LINE
kdb rm user/hello/hello/world
cat /home/markus/.config/hello.ini     
sudo kdb umount /hello
echo "Now let us change something.. With validation"
vi specification.ini                                       > NEW START
# content:
# []
# mountpoint = specification.ini
# [hostip]
# check/ipaddr =
# [timeout]
# check/range = 0-100
sudo kdb mount /home/elektra/specification.ini spec/validation ni
sudo kdb spec-mount /validation
kdb set /validation/hostip 123.123.123.1233
kdb set /validation/timeout 500
kdb editor spec/validation ni
#edit range to 1000
kdb set /validation/timeout 500
sudo kdb umount spec/validation                                      
kdb rm -r /validation                                           > NEW END
echo "What to do next???"
kdb
kdb --help
kdb --find-tools

Wow, tu l'as même scénarisé :+1: . J'attends déjà le résultat avec impatience.

Pouvez-vous mettre le script dans un PR afin que nous puissions discuter ligne par ligne ?

Au premier coup d'oeil je remarque :

  • beaucoup plus echo seraient utiles (cela donne au lecteur plus de temps pour réaliser ce qui se passe)
  • le cahier des charges est préférable d'être construit étape par étape, pas tout à la fois
  • avez-vous vu la démo dans https://archive.fosdem.org/2018/schedule/event/elektra/
  • le plugin hosts est manquant (pour que la validation implicite sans spécification soit affichée)

D'ailleurs. Je viens de lire que https://github.com/dhobsd/castty supporte l'audio :wink:

Pouvez-vous mettre le script dans un PR afin que nous puissions discuter ligne par ligne ?

https://github.com/ElektraInitiative/libelektra/pull/3320

Je marque ce problème comme obsolète car il n'a eu aucune activité pendant un an. Je le fermerai dans deux semaines s'il n'y a plus d'activité. Si vous voulez qu'il soit à nouveau actif, envoyez un ping au problème en écrivant un message ici ou créez un nouveau problème avec le reste de ce problème.
Merci pour vos contributions :sparkling_heart:

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

sanssecours picture sanssecours  ·  3Commentaires

markus2330 picture markus2330  ·  3Commentaires

dominicjaeger picture dominicjaeger  ·  3Commentaires

mpranj picture mpranj  ·  3Commentaires

mpranj picture mpranj  ·  3Commentaires