Squest: portail de services pour SRE/DevOps en frontal d'Ansible Tower/AWX

Posté par  . Édité par Benoît Sibaud, bobble bubble et palm123. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
23
8
août
2021
Administration système

Squest est un logiciel libre (APLv2) permettant d'exposer de l'automatisation, basée sur Ansible Tower/AWX, en tant que service (mode SaaS).

Ansible Tower et sa version libre AWX sont une console centrale de gestion des tâches d'automatisation, pour Ansible qui sert à automatiser la gestion et la configuration d'ordinateurs. Ces outils sont notamment utilisés par des profils ingénierie de la fiabilité des sites (SRE Site Reliability Engineering) ou DevOps.

Il existe une vidéo d'introduction à Squest.

squest-service-catalog.png

Squest propose, pour le moment, deux principales fonctionnalités :

  • un catalogue de services
  • un gestionnaire de suivi de ressources

Le catalogue de services

Provisioning de ressources

Le cas d'usage de notre équipe est le suivant : nous proposons des services d'infrastructures comme des machines physiques et virtuelles, des clusters dédiés sur Kubernetes, Openstack ou encore Openshift.

Pour la création de ces services nous reposons sur des playbooks Ansible que nous lançons depuis Ansible Tower/AWX.
Nous ne souhaitons pas donner accès directement à Tower à nos utilisateurs finaux pour de multiples raisons mais principalement aussi parce que nous souhaitons approuver les demandes.

Grâce à Squest, nous créons des services dans un catalogue (par exemple "VM dans un vCenter") que l'utilisateur peut commander.
En qualité d'administrateur nous pouvons vérifier les demandes, les modifier et les valider afin qu'elles soient exécutées par Tower/AWX.

Les services sont donc des pointeurs vers les jobs templates que vous avez créés du coté de Tower/AWX. Cela rend Squest générique et permet d'ajouter autant de services que vous avez d'automatisations disponibles du coté de vos playbooks.

Cycle de vie des instances

Chaque requête approuvée et provisionnée donne naissance à une instance du service sélectionné.
Cette instance permet à l'utilisateur d'effectuer plus tard de nouvelles requêtes, afin de gérer le cycle de vie.

Prenons un exemple concret. Vous avez un service qui permet la creation de machines virtuelles.

La première opération fait appel à un script Ansible qui va provisionner la machine virtuelle (VM) dans l'hyperviseur.
On peut alors imaginer de nouvelles opérations permettant de:

  • Changer les caractéristiques de la VM (vCPU, memoire, disque,…)
  • Réinstancier le système
  • Supprimer la VM

Là où certains outils de ce type sont de type fire and forget et ne permettent que de provisionner des resources, Squest peut associer des opérations de mise à jour ou de suppression sur les instances qu'il a créées afin de pousser au maximum l'autonomie des utilisateurs.

Le suivi des resources

Le suivi de ressources permet à l'administrateur de connaître l'état de consommation de son infrastructure.

Une vidéo démo de cette fonctionnalité est disponible.

squest-resource-tracker-graph.png

De nos jours, les infrastructures IT sont composées de multiples niveaux : serveurs physiques, machines virtuelles, conteneurs,…
Chaque niveau est alors producteur ou consommateur des ressources d'un autre.
En qualité d'administrateur système, la supervision de la consommation de chaque niveau est nécessaire afin de valider les demandes de service.

La fonctionnalité de suivi de ressources permet de visualiser et de mettre en lumière les ensembles de ressources des infrastructures.

Chaque ressource peut être liée à une instance du catalogue de service qui peut elle-même être liée à un groupe de facturation.
Un tableau de bord permet enfin un visualiser la consommation de chaque groupe.

squest-main-page.png

Aller plus loin

  • # Super intéressant

    Posté par  . Évalué à 1.

    Hello,

    En tant que consultant c'est vrai que beaucoup d'entreprises cherchent ce type d'outil. Certaines passent par VRA de VMware, d'autres font du dev custom.

    Si je comprends bien on peut créer n'importe quel service du moment qu'il y a un playbook derrière ? Je pense à des pointeurs DNS, des BDD ou autres services ?

    Est-ce que le deploy des services est automatisable au travers d'une CI ou via terraform ?

    En tout cas super découverte, merci !

    • [^] # Re: Super intéressant

      Posté par  . Évalué à 1.

      Effectivement l'idée c'est de transformer n'importe quel playbook disponible dans AWX/Tower en service.
      Donc base de données ou autre.
      Terraform ou CI/CD. Vous pouvez tout appeler du moment que le entry point est un job template.

      • [^] # Re: Super intéressant

        Posté par  . Évalué à 1.

        Je n'ai pas testé l'outil mais pour bien comprendre, je peux trouver un provider terraform pour faire des call API à squest afin d'automatiser plusieurs déploiements ?

        • [^] # Re: Super intéressant

          Posté par  . Évalué à 2.

          Squest a une API. Qui pour le moment ne couvre pas 100% des appels. Mais cela va venir.
          Par la suite nous pensons ajouter un module Ansible mais pas de terraform en vue pour le moment.
          Je vous invite à parcourir la doc pour voir les possibilités déjà disponible.

  • # Gestion des ressources

    Posté par  (Mastodon) . Évalué à 3.

    L'outil est intéressant mais je trouve un peu décevant la partie gestion de resources. Par exemple la vidéo montre le cas d'une infra vcenter et il parait que la gestion des resources est manuelle, on doit rentrer les serveurs et leur resources manuellement et il ne semble prendre en compte que les VMs provisionnées via squest là où j'aurais espéré quelque chose de plus intelligent allant chercher ces infos directement ou via des facts remontés par ansible sur vcenter étant donné que lui même gère des resources pool et que son api informe des resources disponibles ou non.

    • [^] # Re: Gestion des ressources

      Posté par  . Évalué à 2.

      Le but ici est de faire en sorte que squest soit le source of truth de l'infrastructure.
      Cette fonctionnalité remplace en quelque sorte le fichier excel que tout le monde fait pour suivre ce qui a été demandé. Avec l'avantage de proposer une vue et façon de faire unique et ainsi éviter de se retrouver avec pleins de fichiers Exel formatés différemment.
      Ce n'est pas du monitoring mais du tracking de réservation.
      Le monitoring est une chose que l'on gère après avec un Prometheus par exemple afin de comparer la resource réservée et la resource réellement consommée.

      • [^] # Re: Gestion des ressources

        Posté par  (Mastodon) . Évalué à 3.

        1. L'outil semble beaucoup trop basique pour faire ce travail.
        2. Ça fait bien longtemps que plus personne n'utilise des fichiers excel pour cela
        3. L'humain est humain, avec les oublis possibles qui vont avec en situation de stress. Si je veux automatiser des créations de VM, la création de namespaces ou cluster kubernetes avec des quotas précis, je veux que cet outil puisse savoir si les capacités actuelles en terme d'infra le permette, avec des garde-fous en terme de capacité. Si j'ai 2 hyperviseurs en maintenance et que que la capacité de mon cluster est autour de 50%, je veux pouvoir décider que ne veux pas qu'on puisse provisionner quoique ce soit tant que ces hyperviseurs ne sont pas sortis de maintenance. Un outil qui ne permet pas de voir ça dynamiquement ne m'aide pas, autant taper dans l'api de AWX/Tower ou vsphere/kubernetes directement depuis un outil de ticketing.
        • [^] # Re: Gestion des ressources

          Posté par  . Évalué à 2.

          Et bien je veux bien connaître les noms des outils que vous utilisez pour justement remplacer les feuilles Excel.
          Nous avons testé pas mal de choses et n'avons pas trouvé notre bonheur jusque là mais on est peut être passé a côté.
          Nous avons Netbox qui nous permet de gérer le network et les devices physiques.
          Après notre outil n'est qu'une copie de "Red Hat Service Catalog". Je vous invite à aller voir leur page pour + d'info.
          Il est basique, certe, mais répond à notre besoin.
          Et comme nous avons opté pour une approche générique nous avons décidé de l'offrir à la communauté open-source.

  • # Bon outil

    Posté par  . Évalué à -9.

    Ce type d'outil est très bien pour … les personnes compétentes.

    Malheureusement, par expérience, il finit la plupart du temps sur le bureau de personnes à 2 mains gauches et 10 pouces. Et quand ce ne sont pas les exploitants qui font défaut, ce sont les donneurs d'ordre qui n'ont pas compris la valeur ajoutée et qui lui prête des fonctionnalités qu'il n'a pas.

    Bref, pour une efficacité maximale, dans le contexte des grands SI actuels, il vaut mieux qu'il reste "confidentiel" au sein d'une communauté de sachants en capacité de l'exploiter au mieux de ses capacités. Une médiatisation importante auprès des malfaisants de service conduirait cet outil tout droit au pourrissage en règle.

    Vous pouvez trouver ce commentaire un peu acerbe, mais il est malheureusement représentatif de la médiocrité et l'inadaptation des responsables SI face aux évolutions rapides des ces dernières années.

    TNZ, archi solution AWS dans une des plus grosses ESN françaises qui rame de folie à expliquer à la tour d'ivoire que la productivité des projets doit passer par des postes de travail sous GNU/Linux.

    • [^] # Re: Bon outil

      Posté par  . Évalué à -10.

      Pour les 2 "fragiles" qui ont noté -1 :
      Attendez d'avoir un peu d'expérience pour faire la pucelle outrée.
      Et pour celui ou celle qui a de l'expérience, les promesses des éditeurs logiciel ne sont pas à prendre au pied de la lettre dans la mesure où ils n'ont pas les contraintes de vos projets lors de la conception de l'outil.

      • [^] # Commentaire supprimé

        Posté par  . Évalué à 4.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: Bon outil

          Posté par  . Évalué à -10.

          Je te laisse à ton jugement et aux SI compétents.
          Je n'ai pas de compétences particulières en dehors d'avoir un peu d'expérience (plusieurs dizaines d'années à vrai dire) … et beaucoup de pragmatisme.

          Si tu n'as pas compris mon message initial, je ne peux que redire autrement que l'outil présenté ne doit surtout pas tomber sur des incompétents notoires qui fleurissent tant dans les ESN.

          Il est quand même choquant d'observer une levée de bouclier dès qu'un commentaire ne rentre pas dans le moule bisounours de "la pensée unique". Un peu de concret les enfants ! C'est un outil destiné au monde pro, il convient de le transposer dans la réalité avec les mentalités présentes sur le terrain. Combien y'a t'il de baltringues pour un mec qui tient la route ?

          • [^] # Commentaire supprimé

            Posté par  . Évalué à 5.

            Ce commentaire a été supprimé par l’équipe de modération.

            • [^] # Re: Bon outil

              Posté par  . Évalué à -10.

              Je te confirme que tu n'as rien compris du message puisque tu te focalises sur la forme. Et dans ce cas, il est clair que tu ne sais pas de quoi je parle.

              • [^] # Commentaire supprimé

                Posté par  . Évalué à 6.

                Ce commentaire a été supprimé par l’équipe de modération.

                • [^] # Re: Bon outil

                  Posté par  . Évalué à -10.

                  CQFD, tu fais le contraire de ce que tu dis … tout comme beaucoup de managers. D'ailleurs, Michel Audiard avait une expression pour ça : « les cons, ça ose tout; c'est même à ça qu'on les r'connaît ! »

                  Je ne mets p'tet pas les formes, mais l'hypocrisie institutionnalisée me fait gerber.

                  • [^] # Commentaire supprimé

                    Posté par  . Évalué à 5.

                    Ce commentaire a été supprimé par l’équipe de modération.

                    • [^] # Re: Bon outil

                      Posté par  . Évalué à -7.

                      C'est bien ce que je dis, l'hypocrisie de salon sert surtout à cacher quelque chose.
                      Et désolé, mais avec le temps, j'ai développé une certaine forme d'allergie chronique envers la connerie. La connerie en IT est peu constructive et elle fait perdre énormément de temps à tout le monde.

    • [^] # Re: Bon outil

      Posté par  . Évalué à 6.

      Bref, pour une efficacité maximale, dans le contexte des grands SI actuels, il vaut mieux qu'il reste "confidentiel" au sein d'une communauté de sachants en capacité de l'exploiter au mieux de ses capacités. Une médiatisation importante auprès des malfaisants de service conduirait cet outil tout droit au pourrissage en règle.

      Tu veux dire qu'il fait prévoir une formation et un suivi pour ceux qui utilisent cet outil ? Tu as sans doute raison.

      https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

      • [^] # Re: Bon outil

        Posté par  . Évalué à -4. Dernière modification le 12 août 2021 à 15:49.

        Voila une bonne question ! :)

        Tout à fait, il est important de savoir ce que l'outil va faire dans les différents périmètres. Toute la valeur ajoutée est d'industrialiser la gestion que l'opérateur est censé effectuer manuellement. En l'absence de l'outil, le gars doit savoir comment et quoi faire. Du coup, il est important d'avoir des personnes formées et à jour sur les périmètres gérés.

        Et c'est là que se trouve le principal risque : si l'outil est utilisé pour « masquer » les actions auprès d'un opérateur non formé (et donc incompétent sans que cela soit de sa faute), on se retrouve avec un fonctionnement « magique » où plus personne ne sait pourquoi et comment ça marche. Et le jour où il faut faire évoluer ou tout simplement définir un nouvel environnement, c'est panique à bord.

        Note pour Fransesco : incompétent veut dire non formé. Un incompétent peut devenir compétent de plein de façons différentes (autodidacte, formations, apprentissage, …). Maintenant, si incompétent est interprété par « crétin à QI de moule », ben, je ne peux pas y faire grand chose.

        • [^] # Commentaire supprimé

          Posté par  . Évalué à 3.

          Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: Bon outil

          Posté par  . Évalué à 4.

          Mon commentaire était ironique. Là où tu parle de cacher l'outil et de le garder entre "sachants", moi je parle d'en partager l'usage et la connaissance.

          C'est pas un point de détail ou une question de sens des mots, mais de vision du travail et de la collaboration. Je pense qu'étiqueter les gens comme sachants ou incompétents est une grosse erreur, une simplification à outrance et une manière de s'imposer ou se dédouaner problématique.

          https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

          • [^] # Re: Bon outil

            Posté par  . Évalué à 0.

            Comment formuler ça gentiment ?
            Le risque avec les outils d'intégration / exploitation est que la complexité d'une solution est plus ou moins masquée. Les problèmes qu'on peut rencontrer restent (soucis télécom, soucis de plateformes, etc …). La simplification qu'apporte l'outil dans ce contexte amène les CP/DP à mettre dans les équipes des personnes "moins chères" … et pour le coup pas forcément formées ni expérimentées. Et le jour où un incident intervient, personne n'est en mesure de déterminer la cause de l'incident et encore moins de le corriger.

    • [^] # Re: Bon outil

      Posté par  . Évalué à -1.

      Histoire de clore le débat, je peux résumer ma pensée de la façon suivante :
      "l'AutoPilot de Tesla ne dispense pas du permis de conduire"

      La vision très universitaire dans la mouvance "Le meilleur des mondes" peut aligner tous les arguments du monde, mais face à l'expérience du terrain dans la vraie vie professionnelle avec des vrais gens, cette vision restera utopique.

      • [^] # Re: Bon outil

        Posté par  . Évalué à 3. Dernière modification le 22 septembre 2021 à 06:59.

        Je comprends, mais le permis de conduire ne te demande pas d'être mécano. On t'explique que quand tu appui sur cette pédale, ça accélère. Si un jour ça ne le fait plus, tu vois ça avec un professionnel.

        https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

        • [^] # Re: Bon outil

          Posté par  . Évalué à -2.

          Reprends les cours d'auto-école, tu as des questions mécaniques lors de l'examen du permis de conduire. Certains examinateurs vont jusqu'à demander un changement de roue.

  • # Ajout de proxmox

    Posté par  . Évalué à 3. Dernière modification le 12 août 2021 à 12:06.

    Bjr,
    Serait il possible d ajouter proxmox comme hyperviseur en plus de vcenter?.

    • [^] # Re: Ajout de proxmox

      Posté par  . Évalué à 2.

      Vous pouvez mettre se que vous voulez.
      Les resources pools sont juste des objets génériques auquel vous associez des attributs comme vcpu ou mémoire.
      Les attributs aussi sont génériques.

  • # A tester

    Posté par  . Évalué à 1.

    Hello,

    Je testerais dés que j'aurais plus de temps et accès à un vrai linux.

    Je n'ai pas réussi à le faire fonctionner sous wsl.

    Je me tâte à ouvrir une issue ?

    Ca plante Step 17/20 : RUN cd /app && npm install

     ---> Running in dc67fd9cfcff
    npm WARN npm npm does not support Node.js v10.24.0
    npm WARN npm You should probably upgrade to a newer version of node as we
    npm WARN npm can't make any promises that npm will work with this version.
    npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
    npm WARN npm You can find the latest version at https://nodejs.org/
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm WARN tar write after end
    npm ERR! cb() never called!
    
    npm ERR! This is an error with npm itself. Please report this error at:
    npm ERR!     <https://github.com/npm/npm/issues>
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2021-08-12T11_06_03_676Z-debug.log
    ERROR: Service 'celery-worker' failed to build : The command '/bin/sh -c cd /app && npm install' returned a non-zero code: 1
    

    En tout cas bonne idée de self-service.

    Je peux faire un retour quand je l'aurais testé sur un vrai linux.

    A+

Suivre le flux des commentaires

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