Journal Quam Facere, un gestionnaire de procédure IT (Ré-écriture)

Posté par  (site web personnel) . Licence CC By‑SA.
20
8
juil.
2025

Avant-propos

Je tiens avant tout à m'excuser pour mon précédent journal dont la forme laissait grandement à désirer.

Présentation de Quam Facere («Comment faire» en latin)

Les procédures IT sont souvent complexes et, surtout dans le cas de la gestion de cluster, elles réclament une grande rigueur dans l'écriture (tant sur le fond que sur la forme) et l'exécution (opération).
Les rédacteurs s'appliquent souvent sur le fond (bien que l'on oubli souvent les vérifications à faire entre chaque étape) mais délaissent un peu la forme (les actions à exécutées sont parfois sous la forme de balise «code», d'autres fois sous formes de citation…), ce qui peut entraîner des oublis lors de l'exécution.
J'ai donc écrit Quam Facere pour essayer de limiter ces risques.
Quam Facere ne va pas exécuter automatiquement des procédures mais va proposer une mise en forme unifiée (dans le cas des exports) ou va proposer un déroulé séquentiel avec une validation de chaque étape dans le cadre de l'exécution d'une opération.
Étant ingénieur Linux et donc plus habitué de l'utilisation de Python, j'ai développé cette application Web en Python associé à Flask et SQLAlchemy.

Fonctionnalités Clés

  • Gestion de Procédures Détaillée : Supporte l'utilisation de variables et de logiques conditionnelles pour des procédures dynamiques (les tests de condition vont ensuite être intégrés à la commande à exécuter).
  • Gestion des opérations : Permet le suivi de l'exécution des opérations
  • Exportation de documents : divers formats, comme Mardown,PDf, Docx…
  • Contrôle d'Accès Basé sur les Rôles (RBAC) : Assure une authentification et une autorisation sécurisées avec une gestion des équipes.
  • Génération de Contenu Dynamique : Capacité de substituer des variables dans le contenu pour une flexibilité accrue.
  • Gestion des Tâches : Découpe les procédures en étapes traçables pour une meilleure organisation.
  • Internationalisation : Pour l'instant supporte l'anglais et le français.
  • Compatibilité Base de Données : S'adapte aux divers systèmes gestion de bases de données pris en charge par SQLAlchemy, tels que SQLite, MySQL et PostgreSQL.

Avantages et Cas d'Utilisation

Quam Facere vise à rationaliser les opérations IT complexes, à améliorer la collaboration d'équipe et à assurer la cohérence dans l'exécution des procédures. Ses cas d'utilisation incluent :

  • La standardisation des procédures pour les équipes opérationnelles.
  • La documentation et l'exécution de la maintenance des serveurs pour l'administration système.
  • La gestion du déploiement et de la configuration dans les workflows DevOps.
  • Le maintien de pistes d'audit pour la conformité.
  • La fourniture de procédures structurées pour la formation et l'intégration des équipe

Installation et utilisation

Venv

git clone git.code.sf.net/p/quam-facere/code
cd code

python3 -m venv venv
source venv/bin/activate

# For development run
flask run

# For Gunicorn wsgi run
gunicorn -w 4 -b '0.0.0.0:5000' qf:app

Docker

sudo docker load -i -q https://sourceforge.net/projects/quam-facere/files/Docker_Images/qf.tar.gz
sudo docker run -p 443:5000 -v CONFIG_PATH:/etc/quam_facere -v INSTANCE_PATH:instance qf

License

Quam Facere est disponible sous license Apache 2.0

Retour

C'est une première version Alpha de cette application et de nombreux bogues doivent encore être présents.
Vous pouvez donc faire vos retours en ouvrant un ticket sur le dépôt Sourceforge

En savoir plus et tester :

  • # Quel est le compte de démo ?

    Posté par  . Évalué à 3 (+1/-0).

    Bonjour
    Pour tester il faut un compte de démo, il n'y en pas d'indiqué.

  • # Bug sur la démo

    Posté par  (site web personnel) . Évalué à 1 (+0/-0).

    Je viens de m'apercevoir qu'il y a une erreur sur la démo lors de la création d'une procédure.

    Je n'ai pas cette erreur en local, il faut donc que je regarde ça plus précisément.

    Je mettrai un commentaire ici lorsque ça sera résolu.

  • # Comparaison ?

    Posté par  . Évalué à 4 (+2/-0).

    Hello, merci et bravo pour ce logiciel !

    Comment est-ce que ça se situerai par-rapport à Foreman, Ansible Tower, ou Rundeck ?

    • [^] # Re: Comparaison ?

      Posté par  (site web personnel) . Évalué à 4 (+3/-0).

      Foreman, Ansible Rundeck, Puppet… Sont des systèmes qui automatisent les actions alors que Quam Facere ne fait rien automatiquement, il va indiquer les commandes à passer sur les serveurs et en mode "opérations", il permet de valider chaque étapes.
      Il permet aussi d'exporter les procédures aux formats Markdown, PDF, DOCX…

  • # erreur sur le repos GIT

    Posté par  . Évalué à 5 (+3/-0).

    le code source est sur source-forge ; un git clone du dépot prend des plombes ; je trouvais cela assez étonnant.

    Avec un peu d'analyse du repos, on peut voir un commit de 430Mo qui correspond à l'image Docker.

    $ git-sizer
    Processing blobs: 177                        
    Processing trees: 103                        
    Processing commits: 37                        
    Matching commits to trees: 37                        
    Processing annotated tags: 0                        
    Processing references: 36                        
    | Name                         | Value     | Level of concern               |
    | ---------------------------- | --------- | ------------------------------ |
    | Biggest objects              |           |                                |
    | * Blobs                      |           |                                |
    |   * Maximum size         [1] |   430 MiB | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
    
    [1]  b699bafcd3346d8619e2853ca9090477ce82b496 (refs/replace/deea37a88c86714f1992b6559d78bc074837fe68:docker_images/qf-2025-0-1.tar.gz)
    
    $ git verify-pack -v .git/objects/pack/pack-*.idx \
      | sort -k3 -n -r \
      | head -n 10
    b699bafcd3346d8619e2853ca9090477ce82b496 blob   451288576 445611604 539073
    09b3ab35c7360729d2e54c164514ff6c1abc4917 blob   166434 161489 446212250
    f534d5ca22f24aa143d00fddba80261d2f657d67 blob   123233 123083 188119
    56d036704757fe6077f0cec8e668e96ef8c6a219 blob   104409 97184 44279
    5a95f2a41fc43a1e27bbb83084414fcf00502c81 blob   101580 93522 369740
    7fcfd544f431cb3b921ece7572f132b5038f6acc blob   77141 69931 463401
    3aa49e04b0afd9b32e66557c30056047b129530a blob   49166 15611 446189297
    6e805b81985975d1ce5d9ef9549adfbe1df50e0b blob   33294 6737 37542
    a6783d5a82a8a980ad346b41c0f4b41b494c4f93 blob   26364 6137 26826
    430e7a5d235ee05f08a5ffdf07a87d92e1a3ea3e blob   25203 10334 446175016

    J'ai essayé de supprimer le blog b699baf* ; je n'ai pas réussi ; pourtant il existe des techniques qui permettraient de faire disparaitre définitivement ce vilain blob.

    J'ai essayé ca :
    ```bash
    sudo apt install git-filter-repo

    git filter-repo --invert-paths --blob-callback '
    def callback(blob):
    if blob.id.hex == "dd94e5af9309bc288cb95d8cacc8aece49b39068":
    return True # remove it
    return False
    ' --force

    git reflog expire --expire=now --all
    git gc --prune=now --aggressive

    git filter-repo --path docker_mages/qf-2025-0-1.tar.gz --invert-paths --force
    ```

    concernant l'image docker, si elle existait sur le docker-hub, ca serait bien pratique. Je n'ai pas réussi a lancer l'application avec les 2 commandes proposées ci-dessus.

    Il serait bien plus pratique de collaborer sur un site de gestion de code source plus habituel ; source-forge, ca me défrise quelque peu.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.