Zephir 1.0

Un article de EoleWiki.

(Redirigé depuis Zephir)

Sommaire

Résumé de l'état actuel de Zephir

Documentation technique (développement)

Le Lien suivant vous permet d'accéder à une documentation plus technique de zephir (Notions de python indispensable :-)

Pour les contributions concernant les fonctonnalités de zephir, se référer à l'aide aà la doc devellopeur fournie avec l'appli web zephir. Cette page est accessible sur la page suivante

   https://adresse_zephir:8070/aide/devel/index.html

Ecrire des agents pour Zephir (nouvelle API)

Version de développement

Voir la page DevZephir

Actions possibles depuis l'application Web

  • Ajout/modification d'établissements et serveurs dans la base.
  • gestion des modules Eole et de variantes de ces modules.
(valeurs par défaut, patchs, dictionnaires locaux, ...)
  • Echange de variantes entre 2 Zephir
  • import d'etablissement (fichier extrait de ramses).
  • travail sur des groupes de serveurs, et possibilité de les sauvegarder
  • possibilité de demander un envoi de mail ou de sms (pas fait) en cas d'alerte
  • Saisie et modification de la configuration d'un serveur (gen_config) dans un formulaire.
  • Spécification des valeurs par défaut au niveau module et variante.
  • Envoi de la configuration à un serveur (ou groupe)
    • zephir.eol
    • dico.eol
    • dictonnaires locaux (serveur et variante)
    • patchs (serveur et variante)
    • fichiers spécifiques au niveau serveur, variante ou module
    • clés ssh des utilisateurs autorisés (envoyées dans authorized_keys)
    • paquets supplémentaires (contributions ou paquets mandrake)
  • Sauvegarde de la configuration des serveurs (ou groupe).
  • lancement Maj-Auto sur un serveur (ou groupe).
  • sauvegarde d'un fichier zephir.eol sur un serveur (envoi d'un fichier local).
  • possiblité de lancer reconfigure après maj ou envoi de conf.
  • annulation de commandes en attente pour un serveur ou un groupe de serveur
  • mise à jour du paquet zephir-client avec la version importée sur zephir
  • interdiction de fonctions (actuellement reconfigure et Maj-Cd/Auto)
  • modification d'une variable creole commune, de la variante, ou du délai de connexion pour tout un groupe de serveur

Actions possibles depuis le serveur (Amon, Horus, ...)

  • Enregistrement sur Zephir :
    • Configure un réseau minimum pour permettre la connexion à Zephir.
    • Cree un serveur dans la base de données ou utilise un n° de serveur existant.
    • Récupère zephir.eol sur Zephir pour permettre une instance ou envoie la conf actuelle sur Zephir.
  • Maj_module permet de mettre à jour le dictionnaire d'un module.
  • Création et Maj de variante (crée la variante depuis la conf actuelle du serveur).

Actions automatiques (serveur)

  • Connexion à Zephir toutes les 10 minutes
    • envoi de l'archive des stats de surveillance.
    • Execution des commandes et transferts en attente (uucp et uux).
    • envoi de mails en cas de problème avec un des services, ou d'erreur lors d'une action
    • recherche régulière des serveurs n'ayant pas contacté zephir récemment (timeout défini pour

chaque serveur)

Modifications à l'étude

  • interface en gtk pour saisie de la conf (accès à tous les serveurs d'un etab) : version windows à compiler (non maintenu pour l'instant, à voir après refonte du frontend web ?).
  • diverses modifications pour améliorer les performances, dont entre autres:
    • passage à postgresql 8 (ok sur Eole2, pas sur Eole1)
    • passage à twisted 2 (fait sur Eole2, rélisable sur Eole1)
  • révision générale du code du backend avant refonte de l'appli web (prêt en grande partie, à valider par tests)
    • passage de la majorité des fonctions d'accès aux serveurs et groupes dans une librairie séparée (séparé du code du serveur xmlrpc).
    • cela permet la mise en place de validations sur l'accès aux serveurs. L'application de restrictions par utilisateur selon différents critères (rne, module, variante, groupe, id de serveur) devient possible (fait coté backend, ajouter une interface d'ajout suppression de restrictions).

Adaptation pour Eole2/Creole2

voir la page zephir-2.0 "Zephir 2.0"

Intégration Zephir/Sentinelle

voir la page sentinelle

Idées de nouvelles fonctionnalités

  • avoir une version zephir de l'instance pour chaque module (avec paramètres préconfigurés dans zephir ?)
  • remonter les stats fwlogwatch sur Amon.
  • Eole2 : intégrer la récupération de la conf via zephir dans l'installeur :)
    • Export depuis Zephir sur clé USB ... puis recupération sur le serveur depuis la clé USB;-)
  • revoir la gestion des groupes
    • Il faudrait plus de paramêtre de selections
    • Stocker la requète pour permettre la mise à jour (Nouveaux serveurs statifaisant les critères)
  • Avoir un journal d'exploitation par serveur (espace pour noter style blog ou wiki)
  • Nouvelles Actions
    • Redémarage des services
    • Script associé à un envoi de fichier (Récuperer le compte rendue!)
  • Log des arrets et boot du serveur
  • Lien vers connexion Ssh, EAD ou autre pour télémaintenance.
  • Suivis du Vpn sur le serveur Amon et pas seulement sur le Sphynx
  • Enregistrement Zephir, si le serveur est dèja enregistré proposé tout suite l'option sauvegarde
  • Afficher plus explicitement la variante d'un serveur (Titre ?)
  • L'affichage d'un compteur de la liste d'attente Zephir sur la page de surveillance d'un groupe de serveur, permettrait d'un seul coup d'oeil de savoir si les actions programmés se deroule correctement
  • Le bouton "initialiser" se balade de gauche a droite en fonction des pages, compte tenu de limpact de ce dernier, c'est parfois un piege auquel, ont se laisse encore facilement prendre...
  • Un bug plus genant concerne l'interdiction de fonctions sur un groupe de serveur... en effet si l'interdiction peut se faire facilement pour tout le groupe, il n'est par contre pas possible de la lever pour tout le groupe... pour cela il faut traiter un par un l'ensemble des serveurs ainsis verrouillés (Visible sur l'interdiction de MAJ) (corrigé dans les dernières versions de zephir)
  • La Creation dynamique et automatique d'un groupe comprenant l'ensemble des serveurs d'un meme module, serait un outil precieux ...

Gestion des configurations VPN

Cette fonctionnalité est intégrée au fonctionnement standard de configuration du VPN pour Amon/Sphynx. Le principe est le suivant:

- enregistrer un serveur sphynx dans zephir. - créer les serveurs amons dans zephir et renseigner leur configuration - dans le menu manage-sphynx, choisir l'ajout d'un amon via zephir (le n° de l'amon dans zephir doit être connu). - lors de l'instance d'amon, choisir d'activer le vpn via zephir (le n° de sphynx dans zephir doit être connu).

Actuellement, les fonctions nécessaires sont en place dans zephir. Il reste à faire les modifications côté amon et sphynx.

Changelog depuis la beta 2

changelog application

  • 2006-09-22
    • ajout d'une fonction pour vérifier si des actions sont à lancer (utilisé par le client).
    • ajout d'un résumé mensuel dans les agents.
  • 2006-09-20
    • maj des agents (rvp sur amon)
  • 2006-09-13
    • adaptations twisted 2.4
    • ajout des restrictions
    • correction de la page d'interdiction de fonctions
    • extension de groupes
  • 2006-07-03
    • suppression de fichiers à la suppression d'un serveur (statistiques, archives uucp)
  • 2006-06-26
    • maj des dictionnaires amon, scribe et sphynx
    • ajout d'une page d'affichage des serveurs en alerte
  • 2006-06-03
    • corrections pour la conservation des droits et utilisateurs lors du transfert de fichiers par uucp
  • 2006-06-08
    • gestion de timestamp au niveau du cache du backend pour indiquer les données modifiées (en vue de zephir web 2)
  • 2006-05-30
    • Possibilité d'appliquer les restrictions au niveau etablissement, module et variante
  • 2006-05-02
    • refactoring du backend:
      • utilisation d'un cache mémoire des serveurs et groupes pour avoir un seul point d'accès aux ressources.
      • implémentation de fonctions de restriction sur ces ressources (par serveurs et groupes).
  • 2006-03-23
    • correction maj de l'état d'un serveur si son état précédent était 'null' dans la base
    • adaptations twisted-2
    • correction bug sur modif de variante par groupe
    • modif get_conf_uucp pour corriger le bug lockfile avec d'anciens clients
  • 2006-03-02
    • description du serveur : inversion des champs de la date
    • upgrade sql : détection du répertoire de postgresql (pour sourcemage)
    • ajout du spell pour l'application zephir + scripts d'init zephir et zephir_web
    • ajout de serveur : choix de la variante et d'un groupe de serveurs à étendre avec le serveur ajouté
    • dictionnaire des module non écrasés si on clique sur OK sans spécifier de fichier
  • 2006-01-27
    • vérification de la version de zephir-client dans la maj (1.0/1.1)
    • ajout d'alertes sur les commandes bloquées en attente
    • correction de la gestion des sessions dans l'appli web (extension de la durée de vie de la session tant que l'utilisateur est actif).
    • correction de la détection des alertes en cas de perte/reprise de contact et d'erreur sur les agents
    • modification du calcul de l'état global des agents
    • maj agents (cf zephir-client 1.1-7)
  • 2006-01-12
    • ajout d'une table de log réduite pour les calculs d'état
    • filtre dans la page d'affichage des logs
    • correction dans la gestion des sessions utilisateur dans l'appli web
  • 2006-01-09
    • utilisation de psycopg2 au lieu de pyPgSQL
    • communication backend/appli_web en http sur localhost
  • 2005-12-24
    • modification des droits sur /var/lib/pgsql/data/pg_hba.conf après mise à jour
  • 2005-11-23
    • correction de l'affichage de la date du dernier log
  • 2005-07-01
    • Mise en place des nouveaux agents
  • 2005-05-04
    • correction de l'envoi des mails (reprise de contact)
  • 2005-04-21
    • ajout de fonctions de gestion des confs vpn sphynx
    • corrections mineures dans l'interface
  • 2005-04-18
    • Mise en majuscule des noms de villes (les données existantes sont mises à jour)
  • 2005-04-14
    • lors du lancement de l'appli, on met la date actuelle comme dernier contact des serveurs (évite les fausses alertes)
  • 2005-04-13
    • changement de principe de timeout : la valeur stockée est le délai entre 2 connexions
    • ajout de fonctions pour modifier un variable eole sur un groupe de serveurs
    • fonction pour récpuérer le timeout depuis les modules
    • suppression des logs de type 'COMMANDS' (on utilise /var/spool/uucp pour les commandes en attente)
  • 2005-03-31
    • correction de la taille de certains champs
    • ajout d'indexes dans la base postgresql
    • corrections dans la gestion des envois de modèles par era
  • 2005-03-03
    • modif ajout_serveur dans le cas ou une ancienne conf uucp existait déjà (passwd_zephir)
  • 2005-02-25
    • ajout d'un agent samba pour Scribe
  • 2005-02-21
    • ajout d'une liste des utilisateurs existants (ayant des droits) dans le menu d'administration
    • ajout d'un formulaire d'ajout/édition/suppression des fichiers d'un serveur (idem variante)
  • 2005-02-17
    • correction de la suppression de serveur (supprime le serveur des groupes)
  • 2005-02-11
    • mise en place fonctions verrou dans l'appli web
    • ajout des fonctions backend pour les locks
    • ajout d'une action 'mise à jour de zephir-client'
  • 2005-02-10
    • ajout de messages dans le sujet des mails zephir
    • correction d'un bug sur la récupération du nom/mail de l'utilisateur
    • ajout des fonctions pour bloquer des procédures (maj,reconfigure)
    • correction bug dans l'authentification
  • 2005-02-02
    • correction du lien de l'aide dans l'appli web (pb avec ie et konqueror)
    • valeur par défaut (12) pour le time out à l'ajout des serveurs
  • 2005-02-01
    • supression des retours à la ligne 'windows' lors de l'édition de fichiers de variantes
  • 2005-01-31
    • Modification de l'envoi de configuration dans le cas ou zephir.eol n'existe pas
  • 2005-01-28
    • Ajout d'un log lors du changement de variante d'un serveur
    • correction d'une boucle infinie lors de la connexion des serveurs (recherche des anciens verrous)
    • fermeture des connexions sql
  • 2005-01-21
    • ajout de l'édition des fichiers de variante depuis l'interface
    • suppression automatique du voyant de verrou dans l'appli si reprise de l'activité uucp
  • 2005-01-20
    • ajout du n° de version du rpm zephir dans la page d'administration
    • correction dans la procédure d'installation de variante depuis un serveur
    • ajout d'une fonction de blocage de la mise à jour
  • 2005-01-18
    • implémentation de la copie de variante en local
  • 2005-01-13
    • Correction dans uucp_utils (mise en place lock pendant la suppression d'une commande)
  • 2005-01-12
    • mise à jour des dictionnaires
  • 2005-01-11
    • ajout de tests de saisie dans l'appli web (javascripts)
  • 2005-01-06
    • correction dans le cas de l'envoi de plusieurs clés publiques à un serveur
    • correction des tests unitaires
    • mise à jour montages.py
  • 2004-12-23
    • correction de l'edition d'établissement (pas de retour en fin de fonction)
    • Mise à jour des tests unitaires
  • 2004-12-14
    • mise à jour spec et changelog
    • ouverture rapport et aide dans une deuxieme fenetre
  • 2004-12-10
    • ajout d'une image manquante dans le howto
  • 2004-12-09
    • correction bug si import variante avec mot de passe
    • correction affichage accueil si pas encore de droits affectés
    • maj spec
    • insertion encoding dans ldap_conf.py
  • 2004-12-08
    • redirection dans script d'update
    • modif ordre des données dans rapport général
  • 2004-12-07
    • maj api
    • maj doc
  • Mar 07 Dec
    • modifications dans l'interface web
    • maj des groupes surveillés lors de la suppression d'un groupe
  • Lun 06 Dec
    • maj howto
  • Jeu 02 Dec
    • ajout d'une doc en ligne dans l'apli web
    • correction config uucp des clients
  • Mar 30 Nov
    • modification des menus de l'interface
  • Jeu 26 Nov
    • mise en place et optimisation du rapport global
  • Mer 25 Nov
    • modif pour prise en compte adresse publique de zephir
    • mise à jour documentation utilisateur
    • Ajout d'un script pour avoir la liste des utilisateurs dans LDAP
  • Lun 22 Nov
    • mise à jour de la documentation pas à pas
  • Mer 17 Nov
    • Ajout d'une page de génération de fichier de configuration pour clé usb (enregistrement)
  • Lun 15 Nov
    • Ajout d'un voyant 'état des services' sur la page d'état des serveurs (état global des agents)
    • largeur de la fenêtre de l'appli web adaptée à la fenêtre du navigateur
  • Mar 04 Nov
    • ajout d'une page de génération de configuration pour clé usb
    • correction de la purge des logs (le test sur la date ne fonctionnait pas correctement)
  • Mer 03 Nov
    • modification de la configuration uucp (limitation des répertoires accessibles en écriture)
  • Mer 27 Oct
    • certains champs sont devenus facultatifs lors de la création d'établissements et de serveurs
  • Mar 26 Oct
    • gestion de l'import de fichiers era dans un groupe de serveurs et dans une variante
    • gestion de la purge des actions sur un groupe de serveurs
  • Lun 25 Oct
    • gestion de la mise à jour automatique des clients (zephir-client) à l'enregistrement
    • gestion de la mise à jour du paquet zephir-client sur zephir depuis appli web
  • Mar 19 Oct
    • utilisation de la bibliothèque de gestion d'uucp pour la gestion des actions sur les serveurs.
    • possibilité de supprimer une ou toute les actions programées via l'interface web
  • Ven 14 Oct
    • ajout d'une bibliothèque de gestion des files d'attente uucp
  • Ven 08 Oct
    • modification de l'import d'établissement : le fichier nomenclature n'est plus utilisé.
    • Les types d'établissement non existants sont créés automatiquement.
  • Jeu 16 Sep
    • correction bugs
    • gestion des dictionnaires des modules dans un rpm à part (lien dans le rép de chaque module)
  • Mer 15 Sep
    • Correction de divers bugs mineurs
    • fonction de timeout pour vérifier que les serveurs se connectent bien
    • correction valeurs par défaut des variantes
    • correction pour éviter de perdre le mdp postgres après maj
  • Lun 6 Sep
    • export/import du modèle d'un serveur depuis era
  • Mar 31 Aout
    • correction bugs
    • ajout d'une fonction pour éditer le fichier bastion d'un serveur sur zephir depuis era
    • changement de politique dans les droits : l'import de variante se retrouve dans 'écriture'
  • Mar 31 Aout
    • correction de la saisie des valeurs par défaut d'une variante

(les dictionnaires additionnels n'étaient pas pris en compte)

  • Lun 30 Aout
    • ajout de la possibilité d'import d'une variante depuis un autre zephir
    • correction de la gestion des noms de fichiers dans l'application web

( / ou \ selon que le client est sous windows ou non)

changelog system (Zephir)

  • 24/03/2006
    • modif lance-firewall
    • execution du script au boot (rc.local) et à l'instance
  • 16/01/2006
    • ajout de scripts de sauvegarde/restauration
  • 12/01/2006
    • augmentation du paramètre shared_buffer à 3072 dans postgresql.conf
    • ajout PostReconf-zephir.sh et cachesize.py : calcul de la taille du cache
  • 24/11/2005
    • correction des droits sur /var/lib/pgsql/data/pg_hba.conf
  • 26/10/2005
    • mise à jour noyau
  • 01/07/2005
    • mise en place des données statiques pour les agents au démarrage si nécessaire
  • 27/06/2005
    • compilation des templates cheetah au démarrage du service zephir
  • 14/04/2005
    • Ajout de scripts de maintenance pour postgresql dans la crontab
    • Purge des anciens logs applicatifs une fois par semaine (on garde les 10 derniers fichiers)
  • 31/03/2005
    • mise à jour zephir.sql (index)
    • modif MaxStartups dans sshd_config
  • 03/03/2005
    • Maj kernel
  • 03/03/2005
    • correction zephir.sh (suppression des confs uucp des serveurs si reset de la base)
  • 21/02/2005
    • modification de PYTHONPATH dans /etc/init.d/zephir et /etc/init.d/zephir_web
    • synchronisation de zephir.sql avec l'appli zephir
  • 5/01/2005
    • Maj noyau
  • 15/12/2004
    • ajout ulogd.conf
    • modification script firewall pour revoi des log vers ULOG
  • 14/12/2004
    • correction pythonpath dans les scripts des services
  • 9/12/2004
    • slapd.conf : suppression de l'include slapd.access.conf (ne fonctionne pas avec le nouvel openldap car le fichier n'est plus vide ...)
  • 6/12/2004
    • MAJ noyau
  • 2/11/2004
    • modification du template sys d'uucp (accès plus stricts)
  • 27/10/2004
    • suppression d'une règle inutile dans lance.firewall
    • suppression des variables correspondantes dans le dictionnaire
  • 15/09/2004
    • correction zephir.sh (nom de admin_zephir récupéré dans dico)
    • ajout d'une règle pour permettre aux clients de se connecter en ssh
  • 09/09/2004
    • ajout gen_certifEole.sh
    • Maj noyau
  • 31/08/2004
    • correction des scripts de gestion ldap
  • 28/06/2004
    • ajout de variables pour l'envoi de mails via smtp
  • 10/06/2004
    • ajout d'une variable dans le dictionnaire pour la base de recherche des utilisateurs dans LDAP
  • 27/05/2004
    • Instance-zephir : PatchEole appele avant MajDicoarrage des services zephir (pythonpath)

Changelog client

  • Thu Apr 19 2006
    • correction bug dans z_stats si periode de connexion <= 1 minute
    • correction d'un problème dans INIT si nom de procédure vide
    • correction de l'ordre d'installation des fichiers (rep avant fichiers)
  • Mon Apr 03 2006
    • correction script post dans le spec (redirection)
  • Mon Apr 03 2006
    • ajout d'un script de redémarrage rvp et dns
  • Wed Mar 29 2006
    • redémarrage de z_stats après enregistrement
    • envoi de configuration : on n'écrase plus le dictionnaire (la liste des fichiers templates peut varier)
    • correction pour forcer le répertoire lockdir uucp si zephir envoie une ancienne configuration
  • Fri Jan 27 2006
    • reprise des modifications de zephir-client-1.1 (sauf agents):
    • exim : indication de la période de mesure
    • prise en compte de commandes spécifiques pour reconfigure
    • correction des agents network et squid
    • gestion des logs
  • Fri Nov 04 2005
    • redirection du message (grep) si serveur non enregistré
  • Fri Sep 30 2005
    • modification du répertoire de locks pour uucp
  • Wed Sep 28 2005
    • correction détection de la version des agents
  • Wed Sep 26 2005
    • copie des clés gpg pour uucp dans le spec
  • Tue May 10 2005
    • correction de la gestion de /etc/sudoers à l'enregistrement
    • correction : envoi de répertoires pour les fichiers divers
  • Fri Apr 15 2005
    • recherche automatique du rne
  • Wed Apr 13 2005
    • modification de la méthode de connexion à zephir (délai enregistré sur zephir)
    • l'appel crontab sert uniquement à vérifier le fonctionnement du service
    • l'appel à zephir-client est maintenant effectué par le service z_stats en fonctino du délai demandé
  • Wed Apr 06 2005
    • supression du message dans INIT si pas de contact avec zephir
  • Wed Mar 30 2005
    • correction de la prise en compte des fichiers divers et des fichiers liés aux modules
  • Wed Mar 17 2005
    • ajout d'un délai aléatoire à la connexion si appel avec --delay
  • Wed Mar 03 2005
    • Vérification de config.eol pour savoir si une conf réseau est en place (-f pour forcer la saisie)
  • Mon Feb 28 2005
    • reprise de l'adresse zephir et l'id du serveur si ils existent déjà (valeurs par défaut)
  • Mon Feb 21 2005
    • modification de la classe SafeTransport (proxy xmlrpc) pour contourner un bug sur les timeouts
  • Fri Feb 11 2005
    • ajout de la récupération de la liste des fonctions interdites (synchronisation)
  • Tue Feb 02 2005
    • redémarrage de z_stats après maj de zephir-client
  • Mon Jan 31 2005
    • modification du comportement pour l'enregistrement de serveurs existants
  • Thu Jan 20 2005
    • Correction de la céation/maj de variante
    • ajout d'une fonction de blocage de la maj (non disponoble dans l'application)
  • Fri Jan 14 2005
    • modif dans l'enregistrement pour éviter une erreur si le rne est saisi en minuscules
  • Thu Jan 06 2005
    • Suppression du test réseau en début d'enregistrement (timeout trop long)
    • correction d'un problème de récupération de la configuration à 'enregistrement (suppression du sudoers temporaire avant la fin de l'exécution)
    • correction de la mise en place des clés ssh
    • agent montages : pas d'alerte sur les cdroms
  • Tue Jan 04 2005
    • supression de l'affichage de l'adresse ip dans l'agent réseau
    • correction de la saisie du n° de serveur dans l'enregistrement (si pas entier)
    • déplacement procédure de maj_client dans lib_zephir
  • Mon Dec 13 2004
    • correction reseau.py si alias sur une des cartes
  • Tue Dec 07 2004
    • correction détection du module installé si création du serveur dans la base
  • Thu Nov 25 2004
    • modif enregistrement pour prendre en compte l'adresse externe de zephir dans la conf uucp
  • Tue Nov 09 2004
    • modif de la procédure enregistrement (/etc/sudoers)
    • modif de la politique de log si pas de contact avec zephir
    • correction de reseau.py
    • recherche de paramètres sur clé usb
  • Fri Oct 15 2004
    • ajout d'une procédure de mise à jour de zephir-client à l'enregistrement sur zephir
    • correction de la détection du module installé
  • Tue Oct 04 2004
    • détection du module installé à l'enregistrement
    • correction typo dans spynx.cfg
    • modification de z_stats
  • Tue Aug 31 2004
    • ajout de l'heure de génération en haut des pages web
  • Fri Jul 16 2004
    • modification pour ajout d'un timeout sur les serveurs