URL: https://linuxfr.org/news/squest-portail-de-services-pour-sre-devops-en-frontal-d-ansible-tower-awx Title: Squest: portail de services pour SRE/DevOps en frontal d'Ansible Tower/AWX Authors: sispheor Benoît Sibaud, bobble bubble et palm123 Date: 2021-08-04T10:23:25+02:00 License: CC By-SA Tags: ansible, python3 et devops Score: 3 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](https://fr.m.wikipedia.org/wiki/Ansible_(logiciel)) 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_)](https://fr.m.wikipedia.org/wiki/Site_Reliability_Engineering) ou [DevOps](https://fr.m.wikipedia.org/wiki/Devops). Il existe une [vidéo d'introduction à Squest](https://www.youtube.com/watch?v=ZfTjS1t7X74&t=3s). [![squest-service-catalog.png](https://i.postimg.cc/G24F67r8/squest-service-catalog.png)](https://postimg.cc/34H0vZkY) ---- [Code source](https://github.com/HewlettPackard/squest) [Documentation](https://hewlettpackard.github.io/squest/) [Démo video 1: catalogue de service](https://www.youtube.com/watch?v=ZfTjS1t7X74) [Démo video 2: suivi des resources](https://www.youtube.com/watch?v=KxJbYxnR5Ug) [Discuter avec les devs ou la communauté](https://gitter.im/HewlettPackard/squest) ---- 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é](https://www.youtube.com/watch?v=KxJbYxnR5Ug) est disponible. [![squest-resource-tracker-graph.png](https://i.postimg.cc/G9wH7zhC/squest-resource-tracker-graph.png)](https://postimg.cc/n92FM4DR) 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](https://i.postimg.cc/NFyHP561/squest-main-page.png)](https://postimg.cc/ZvSnWYDR)