Outils et services DevOps

Watchghost version 0.3.0

La version 0.3.0 de watchghost est disponible depuis quelques minutes sur PyPI.

Il y a eu deux gros changements dans cette version : le remplacement de Tornado par AioHttp et le remplacement du format JSON par le format TOML pour les fichiers de configuration.

Le remplacement de Tornado par AioHttp se justifie par les différences dans la boucle événementielle asynchrone entre celle de Tornado et celle d'AioHttp. Ce changement nous permet de n'avoir plus qu'une boucle événementielle, sans perdre de fonctionnalités.

Nous avons souhaité remplacé JSON par TOML car JSON n'est pas très lisible (pour un·e humain·e), et ne permet pas de commenter son fichier de configuration, ce qui peut s'avérer intéressant. Nous avons profité de ce changement pour ne plus rendre obligatoire la présence des 4 fichiers de configuration : si l'un n'est pas présent, la configuration est considérée comme si le fichier était vide. Nous avons créé un outil permettant de réaliser ce changement de format automatiquement (voir les notes de sortie).

Dans les autres changements :

  • l'ajout d'un code de conduite pour les participant·e·s au projet
  • la possibilité de recharger l'application (avec le signal HUP)
  • l'ajout d'un logger InfluxDB qui permet d'historiser les événements (et qui est utilisé par BroGhost, notre application qui publie l'historique d'accès à un service)
  • l'ajout d'une option get_info au service Http. Cette option get_info permet de lire le contenu JSON d'une réponse HTTP et d'afficher ce résultat dans l'interface web
  • l'ajout d'un service Whois, qui permet de vérifier la date de renouvellement des noms de domaines
  • l'utilisation de fichiers Javascript et CSS minifiés
  • l'ajout d'une favicon dans le tableau de bord
  • la possibilité de ne pas afficher les services à l'état INFO dans le tableau de bord, ce qui permet d'accéder rapidement aux services problématiques
  • la possibilité de grouper les services par tags et non par hôtes dans le tableau de bord, ce qui permet de visualiser des informations sur un service réparti sur plusieurs hôtes
  • l'amélioration de l'affichage des résultats dans la page détail d'un service
  • l'utilisation de timezone dans la représentation des dates et heures

Merci aux 6 contributeurs et contributrices pour le travail réalisé.

➡️ plus d'information dans la documentation, et merci de nous faire part de vos bugs ou envies sur notre forge logicielle

Watchghost version 0.2.1

La version 0.2.1 est disponible sur PyPI.

Parmi les nouveautés, la console web s'offre un relooking (aperçu lors de la PyConFR 2018). La console web a été réécrite avec le framework javascript Vue.js et la bibliothèque CSS Bootstrap 4.

Afin de réaliser cette nouvelle console web, nous avons réalisé plusieurs URLs permettant de lister les différentes ressources définies dans WatchGhost.

La documentation a été corrigée : les exemples de configuration étaient du Python alors qu'ils auraient dû être au format JSON.

Une correction a été apportée aux éléments nécessitant une configuration TLS afin d'être compatible avec les changements réalisés en Python 3.7.

Enfin, l'empaquetage Python a été mis à jour afin de tirer profit de la configuration via le fichier setup.cfg. En outre toutes les configurations des outils Python ont été centralisées dans ce fichier. Une erreur dans cette configuration nous a amené à sortir une version 0.2.1 très rapidement après la sortie de la version 0.2.0 : le champ license est destiné à recevoir le nom de la licence mais pas son contenu complet. Il semble qu'un champ license_file soit en préparation pour les prochaines versions de setuptools (cf la pull request 1536 de setuptools).

La commande pour lancer WatchGhost a également évolué :

pip install watchghost
watchghost

En développement, on peut lancer l'application grâce à la commande python -m watchghost.

➡️ plus d'information dans la documentation.

Version 0.1.0

Grande nouvelle !

pip install watchghost

Après des mois et des mois de dur labeur, la première version de WatchGhost est enfin disponible sur PyPI. Nous avons également mis en ligne de la documentation pour que vous puissiez installer et configurer le gentil fantôme chez vous.

N'hésitez pas à participer sur GitLab !

Réunion de l'équipe

Les membres de l'équipe Localghost vont se réunir le lundi 5 décembre à partir de 20h chez GRAP (3 grande rue des feuillants, Lyon 1er).

Nous discuterons des sondes SSH pour Watchghost et de la capacité à mutualiser plusieurs instances de Watchghost sur un serveur.

Si jamais le projet vous intéresse, n'hésitez pas à nous rendre visite pendant cette réunion ou à nous faire signe sur contact@localg.host !

À propos de Localghost

Localghost est un regroupement de développeu·rs·ses s'occupant également de l'administration système des applications qu'ils·elles développent.

Localghost est né de l'envie de mieux faire dans l'exploitation d'applications informatiques. Cette envie se traduit par le développement d'outils, la mise en place de techniques et le partage de ces éléments au sein du groupe mais aussi au plus grand nombre.

Notre proposition

Notre premier champ d'action est la surveillance du fonctionnement de nos applications. Il s'agit là de mettre en place des sondes permettant de détecter automatiquement les dysfonctionnements et leurs résolutions, et d'alerter un humain en cas de problème.

Nous nous intéressons également à la reproductibilité des déploiements. C'est-à-dire faire en sorte que le déploiement d'une application soit facilement réalisable d'un serveur à un autre. Il s'agit de formaliser la description de ces déploiements pour pouvoir les relancer aisément.

Enfin, nous souhaitons assurer la mise en place de Plans de Reprise d'Activité (PRA). Un PRA définit les étapes pour remonter un service si le déploiement initial n'est plus disponible. Pour ce faire, la reproductibilité des déploiements dont nous avons parlé au paragraphe précédent est nécessaire tout comme l'instauration de bonnes pratiques au niveau des sauvegardes et de leur restauration.

Nos valeurs

Nous sommes issus de la communauté du Logiciel Libre. Il est important que nos productions soient diffusées le plus largement possible et puissent être utiles au plus grand nombre de personnes.

Le partage est un élément fondateur de notre regroupement. Nous sommes issus de 3 entreprises différentes et nous nous sommes regroupés de manière informelle pour discuter et échanger sur nos pratiques respectives.

Nos membres

Nos membres fondateurs sont principalement issus de la communauté Python de Lyon, mais nous ne nous limitons ni au langage de programmation ni à la position géographique de chaque personne.

Vous pouvez retrouver nos membres sur notre groupe Gitlab.

Notre nom

Il est rigolo (notre hostname aussi).

Participer ?

Si vous souhaitez participer, rejoignez nous sur Gitlab ou écrivez nous à l'adresse contact@localg.host.