mise à jour de la formation pour 2.6
This commit is contained in:
@ -17,109 +17,190 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item ClamAV à le paramètre suivant : LogFileMaxSize 2M ;
|
||||
\item il faut la valeur 10M.
|
||||
\item Modifié dans le fichier de configuration de proftpd.conf : UseReverseDNS de "off" à "on" ;
|
||||
\item créé le patch.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Ajout de dictionnaires locaux}
|
||||
\begin{itemize}
|
||||
\item Permet d'ajouter des spécificités ou de nouveau template ;
|
||||
\item les dictionnaires locaux sont dans /usr/share/eole/creole/dicos/local/ ;
|
||||
\item les templates locaux sont dans /usr/share/eole/creole/distrib/ ;
|
||||
\item un dictionnaire est un fichier XML Creole ;
|
||||
\item un template utilise le langage de template Creole.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Syntaxe XML Creole}
|
||||
\frametitle{Dictionnaire Creole}
|
||||
\begin{itemize}
|
||||
\item Entête XML : <?xml version="1.0" encoding="utf-8"?> ;
|
||||
\item Première balise <creole></creole>
|
||||
\item Un dictionnaire est un fichier XML Creole ;
|
||||
\item décrit les variables présente dans l'interface de configuration ;
|
||||
\item informations utiles pour les services ;
|
||||
\item les dictionnaires locaux sont dans /usr/share/eole/creole/dicos/local/.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Syntaxe XML Creole : conteneur}
|
||||
\frametitle{CreoleLint}
|
||||
\begin{itemize}
|
||||
\item master : <files>, slave <containers><container name='\ldots' id='\ldots' groupe='\ldots'> ;
|
||||
\item fichier template : <file name="\ldots" \ldots/> :
|
||||
\begin{itemize}
|
||||
\item name (obligatoire) : nom du fichier template ;
|
||||
\item source : si le nom de fichier source est différent de la destination ;
|
||||
\item mode, owner, group : droits sur fichier appliquer au fichier ;
|
||||
\item mkdir : création du répertoire de destination si nécessaire.
|
||||
\end{itemize}
|
||||
\item service : <service method='service|upstart|apache'>\ldots</service> ;
|
||||
\item package : <package>\ldots</package>.
|
||||
\item Vérifie la syntaxe du dictionnaire : \commande{CreoleLint -d} ;
|
||||
\item test la génération d'un template suivant contrainte : \commande{CreoleLint -t nom\_du\_template}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Syntaxe XML Creole : variable}
|
||||
\frametitle{CreoleCat}
|
||||
\begin{itemize}
|
||||
\item Ensemble de famille et séparateur : <variables></variables> ;
|
||||
\begin{itemize}
|
||||
\item Famille de variables : <family name='' [mode=''] [hidden='']></family> :
|
||||
\begin{itemize}
|
||||
\item Les variables <variable name='' type='' description='' [multi='True'] [hidden='True']/> :
|
||||
\item Les variables <variable name='' type='' description='' [multi='True'] [hidden='True']><value> ... </value></variable> :
|
||||
\end{itemize}
|
||||
\item Les séparateurs <separator></separator> :
|
||||
\begin{itemize}
|
||||
\item name : nom de variable en dessous du séparateur ;
|
||||
\item description affiché à l'intérieur de la balise.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\item Templatise un fichier sans faire de reconfigure (objectif de test) ;
|
||||
\item \commande{CreoleCat -t nom\_du\_template}
|
||||
\item \commande{CreoleCat -t nom\_du\_template -o /tmp/template.tmpl}
|
||||
\item \commande{CreoleCat -s /tmp/nom\_du\_template -o /tmp/template.tmpl}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Syntaxe XML Creole : contrainte}
|
||||
\frametitle{Dictionnaire Creole : les paquets}
|
||||
\begin{itemize}
|
||||
\item Le contraintes : <constraints></constraints> : pour tester/remplir/grouper/conditionner des variables ;
|
||||
\begin{itemize}
|
||||
\item calcul automatique avec fonction personnalisé : <fill><param></param>...</fill> ;
|
||||
\item calcul automatique non modifiable <auto></auto> ;
|
||||
\item choix de réponse <check name='valid\_enum' target='var'><param>...</param></check> ;
|
||||
\item cacher des variables suivant des contraintes <condition name='hidden\_if\_in|hidden\_if\_not\_in' source='var'>...</condition> :
|
||||
\begin{itemize}
|
||||
\item valeur de la variable testé : <param>...</param> ;
|
||||
\item affecte <target type='family|filelist|servicelist|...'>nom</target> :
|
||||
\end{itemize}
|
||||
\item Lien entre variable : <group master='var'>...</group> :
|
||||
\begin{itemize}
|
||||
\item si le maître à une valeur, les autres aussi ;
|
||||
\item si le maître est multi-évalué, les autres aussi ;
|
||||
\item les esclaves : <slave></slave>.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\item Les paquets fonctionnent sur le maitre ou dans un conteneur ;
|
||||
\item permet d'installer les paquets sans passer par les dépendances de paquet.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Syntaxe XML Creole : aide}
|
||||
\begin{itemize}
|
||||
\item Afficher de l'aide dans l'interface : <help></help>.
|
||||
\end{itemize}
|
||||
\frametitle{Dictionnaire Creole : les services}
|
||||
\begin{itemize}
|
||||
\item Services fonctionnent sur le maitre ou dans un conteneur ;
|
||||
\item différentes méthodes : service, upstart ou apache.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Installer le paquet ircd-irc2 ;
|
||||
\item ajouter un service ;
|
||||
\item dans la famille "services" ajouter la variable "activate\_ircd" ayant pour valeur possible "oui" et "non" ;
|
||||
\item ajouter un dictionnaire pour gérer :
|
||||
\begin{itemize}
|
||||
\item l'installation du paquet,
|
||||
\item le service.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Dictionnaire Creole : le firewall}
|
||||
\begin{itemize}
|
||||
\item On commence par ouvrir les accès (service\_access) ;
|
||||
\item on ajoute ensuite les restrictions (service\_restiction).
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Ajouter des règles de firewall et tcpwrapper pour autoriser les accès.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Dictionnaire Creole : les familles}
|
||||
\begin{itemize}
|
||||
\item Les variables sont classés dans des familles.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Dictionnaire Creole : les variables}
|
||||
\begin{itemize}
|
||||
\item Les variables sont typées :
|
||||
\begin{itemize}
|
||||
\item number, port,
|
||||
\item string, mail, filename, unix\_user, web\_address,
|
||||
\item ip, local\_ip, netmask, network, broadcast,
|
||||
\item nebios, domain, domain\_strict, hostname, hostname\_strict,
|
||||
\item oui/non, on/off, yes/no.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Dans la famille "services" ajouter la variable "activer\_ircd" ayant pour valeur possible "oui" et "non" ;
|
||||
\item tester gen\_config.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Dictionnaire Creole : les fichiers templates}
|
||||
\begin{itemize}
|
||||
\item Le nom des fichiers templates sont dans les dictionnaires (file) ;
|
||||
\item le répertoire de destination doit existé par défaut ;
|
||||
\item possibilité de définir les droits sur le fichier ;
|
||||
\item nom de la source peut être différents de la destination.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Ajouter le template /etc/ircd/ircd.conf.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Dictionnaire Creole : les contraintes}
|
||||
\begin{itemize}
|
||||
\item pour tester/remplir/grouper/conditionner des variables ;
|
||||
\begin{itemize}
|
||||
\item calcul automatique avec fonction personnalisé (fill),
|
||||
\item calcul automatique non modifiable (auto),
|
||||
\item choix de réponse (valid\_enum),
|
||||
\item cacher des variables suivant des contraintes (condition),
|
||||
\item groupe de variables (group) :
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Ajouter une famille "ircd" ;
|
||||
\item configuration de la M line : M:<ircd\_domaine>::<ircd\_libelle>:<ircd\_port>:000A :
|
||||
\begin{itemize}
|
||||
\item le nom de domaine est une copie de web\_url,
|
||||
\item le libellé est la concaténation de "Serveur IRC pour" et libelle\_etab et n'est pas modifiable par l'utilisateur,
|
||||
\item le port ircd est par défaut le port 6667 modifiable en mode expert,
|
||||
\item modifier la balise service\_access ;
|
||||
\end{itemize}
|
||||
\item pouvoir ajouter des K line : K:<ircd\_banned\_hostname:ircd\_banned\_comment:*:0:
|
||||
\begin{itemize}
|
||||
\item variable groupé avec possibilité de ne pas mettre de valeur,
|
||||
\item nom d'hôte ou domaine banni,
|
||||
\item proposer un commentaire par défaut.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire une condition pour désactiver la famille et le service ;
|
||||
\item tester gen\_config ;
|
||||
\item mettre la valeur de ircd\_domaine à localhost.localdomaine.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Dictionnaire Creole : l'aide}
|
||||
\begin{itemize}
|
||||
\item Afficher de l'aide dans l'interface : <help></help>.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Ajouter de l'aide sur la variable activer\_ircd.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Langague de template Creole}
|
||||
\begin{itemize}
|
||||
\item Variable Creole préfixé par \begin{semiverbatim}\%\%\end{semiverbatim}
|
||||
\item Un template utilise le langage de template Creole.
|
||||
\item variable Creole préfixé par \begin{semiverbatim}\%\%\end{semiverbatim}
|
||||
\item Test : \begin{semiverbatim}\%if EXPRESSION code if \%else code else \%end if\end{semiverbatim}
|
||||
\item Boucle : \begin{semiverbatim}\%for \%\%i in EXPRESSION hello \%\%i \%end for\end{semiverbatim}
|
||||
\item Boucle pour variable multi évolué avec esclave : \begin{semiverbatim}\%for \%\%var in \%\%variablemaitre\end{semiverbatim}\begin{semiverbatim}\%\%var, \%\%var.esclave1, \%\%var.esclave2\end{semiverbatim}\begin{semiverbatim}\%end for\end{semiverbatim}
|
||||
@ -138,22 +219,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique 1}
|
||||
\begin{itemize}
|
||||
\item Installer phpldapadmin ;
|
||||
\item créer un dicos pour demander l'activation ou non (variable "activate\_phpldapadmin") ;
|
||||
\item si oui, activer une nouvelle famille "phpldapadmin" ;
|
||||
\item demander l'adresse IP (phpldapadmin\_host) et le nom du serveur (phpldapadmin\_name) ;
|
||||
\item copier les templates /etc/phpldapadmin/config.php et /etc/phpldapadmin/apache.conf dans /usr/share/eole/creole/distrib/ ;
|
||||
\item le template config.php sera renommé en phpldapadmin.php ;
|
||||
\item si le nom n'est pas spécifié, le serveur : "Serveur LDAP" ;
|
||||
\item tester sans reconfigurer : CreoleCat -o config.php /usr/share/eole/creole/distrib/phpldapadmin.php
|
||||
\item Configuration de la "M line : M:<ircd\_domaine>::<ircd\_libelle>:<ircd\_port>:000A" ;
|
||||
\item configurer les "K line : K:<ircd\_banned\_hostname:ircd\_banned\_comment:*:0:".
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique 2}
|
||||
\begin{itemize}
|
||||
\item Ajouter la possibilité d'activer ou non le TLS ;
|
||||
\item possibilité d'ajouter plusieurs serveurs.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -1,3 +1,33 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique 2}
|
||||
\begin{itemize}
|
||||
\item Templatisé le fichier /etc/ircd/ircd.motd ;
|
||||
\item test l'existance de la variable web\_url et fait un message personnalisé si existe ;
|
||||
\item créer une variable ircd\_motd\_message avec trois valeurs : "message 1", "message 2" et "personnalisé" ;
|
||||
\item faire deux messages différents pour "message 1" et "message 2" ;
|
||||
\item créer une variable ircd\_motd\_personnalise visible si ircd\_motd\_message est "personnalisé" ;
|
||||
\item valider que ircd\_libelle soit différent de ircd\_motd\_message.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Les fonctions personnalisées}
|
||||
\begin{itemize}
|
||||
\item Ajouter une fonction utiliser dans un dictionnaire : /usr/share/creole/funcs/<nom\_fichier>.py.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire une fonction personnalisée qui retourner un texte ;
|
||||
\item créer une variable qui utilise cette fonction ;
|
||||
\item utiliser cette variable dans le template ircd.motd ;
|
||||
\item utiliser la fonction directement dans le template ircd.motd ;
|
||||
\item tester.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Redéfinition}
|
||||
\begin{itemize}
|
||||
@ -11,20 +41,18 @@
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Existance d'une variable}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Créé la variable si elle n'existe pas encore avec une valeur par défaut.
|
||||
\item Exemple : 'activer\_clam' dans 23\_proxy.xml
|
||||
\item Attention la variable ne peut pas être créer après.
|
||||
\item Redéfinir le texte de la variable web\_url ;
|
||||
\item passer la variable activer\_clam en mode expert.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Caché multi-condition}
|
||||
\frametitle{Existance d'une variable}
|
||||
\begin{itemize}
|
||||
\item Créé une variable "test\_xxxx" caché ;
|
||||
\item ajouter une "auto" avec calcul "calc\_multi\_condition" ;
|
||||
\item faire une condition "hidden\_if\_in" sur la variable.
|
||||
\item Exemple : 01\_network.xml
|
||||
\item Créer la variable si elle n'existe pas encore avec une valeur par défaut ;
|
||||
\item exemple : 'activer\_clam' dans 23\_proxy.xml ;
|
||||
\item attention la variable ne peut pas être créé après.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -1,15 +1,13 @@
|
||||
\begin{frame}
|
||||
\frametitle{Personnalisation d'un serveur}
|
||||
\begin{itemize}
|
||||
\item Liste des fichiers sauvegardés : dans la page d'état du serveur cliquer sur "voir les fichiers personnalisés" ;
|
||||
\item pour les dictionnaires locaux :
|
||||
\begin{itemize}
|
||||
\item Liste des fichiers sauvegardés :
|
||||
\begin{itemize}
|
||||
\item dictionnaires additionnels,
|
||||
\item fichier appartenant aux dictionnaires additionnels,
|
||||
\item fichier spécifique (exemple généré par EAD),
|
||||
\item les patches,
|
||||
\item les paquets additionnels.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\item dans la partie "module" du Zéphir, cliquer sur "Dictionnaires personnalisés",
|
||||
\item activer les modules dans la page "voir les fichiers personnalisés" de la page d'état.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
|
@ -3,16 +3,14 @@
|
||||
\begin{itemize}
|
||||
\item Diagnose sert à tester le service d'un serveur ;
|
||||
\item si possible, doit tester le bon fonctionnement de l'application ;
|
||||
\item script bash ;
|
||||
\item script commun : /usr/share/eole/diagnose/eole ;
|
||||
\item script par service : /usr/share/eole/diagnose/module.
|
||||
\item script bash dans /usr/share/eole/diagnose.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Fonction diagnose standard}
|
||||
\begin{itemize}
|
||||
\item Certains nombres de fonction dans /usr/share/eole/FonctionEoleNg :
|
||||
\item Certains nombres de fonction dans /usr/lib/eole/diagnose.sh :
|
||||
\begin{itemize}
|
||||
\item TestIP2 : test une IP via paquet ICMP ECHO\_REQUEST ;
|
||||
\item TestARP : requète ARP (évite les problèmes de firewall) ;
|
||||
@ -35,6 +33,6 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un fichier diagnose pour IRCD
|
||||
\item Faire un fichier diagnose pour IRCD.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -0,0 +1,9 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un script posttemplate qui créé le répertoire /tmp/repertoire ;
|
||||
\item si le répertoire existe, proposer de le supprimer à l'instance ;
|
||||
\item redémarrer le service "cron".
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -20,23 +20,20 @@
|
||||
\begin{frame}
|
||||
\frametitle{Script instance ou reconfigure}
|
||||
\begin{itemize}
|
||||
\item emplacement des scripts :
|
||||
\item Emplacement des scripts :
|
||||
\begin{itemize}
|
||||
\item /usr/share/eole/preservice/ : avant l'arrêt des services,
|
||||
\item /usr/share/eole/pretemplate/ : avant la templatisation,
|
||||
\item /usr/share/eole/posttemplate/ : entre la templétisation et redémarrage des services,
|
||||
\item /usr/share/eole/posttemplate/ : entre la templatisation et redémarrage des services,
|
||||
\item /usr/share/eole/postservice/ : après redémarrage des services ;
|
||||
\end{itemize}
|
||||
\item script bash ou python ;
|
||||
\item premier argument : instance|reconfigure
|
||||
\item doivent toujours retourner le code de sortie "0" sauf si problème.
|
||||
\item compatible run-part :
|
||||
\begin{itemize}
|
||||
\item pas d'extension,
|
||||
\item exécutable,
|
||||
\item script bash, python, ... il faut le préciser avec un shebang (\#!/bin/bash),
|
||||
\item premier argument : instance|reconfigure,
|
||||
\item doivent toujours retourner le code de sortie "0" sauf si problème.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un script qui créé le répertoire /tmp/repertoire ;
|
||||
\item si le répertoire existe, proposer de le supprimer à l'instance.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
\begin{frame}
|
||||
\frametitle{Règle eole-firewall}
|
||||
\begin{itemize}
|
||||
\item Nom du fichier : 00\_extremite1\_commentaire.fw
|
||||
\item allow\_src() : extermite1 est la destination
|
||||
\item allow\_dst() : extermite1 est la source
|
||||
\item paramètres :
|
||||
\begin{itemize}
|
||||
\item interface : interface du maître
|
||||
\item container\_interface : interface dans le conteneur
|
||||
\item ip|container : extermite2
|
||||
\item port :
|
||||
\begin{itemize}
|
||||
\item num
|
||||
\item num:num
|
||||
\end{itemize}
|
||||
\item tcpwrapper
|
||||
\item protocol : udp|icmp
|
||||
\item si icmp : typ='echo-request'
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire une règle de firewall pour autoriser l'accès à IRCD.
|
||||
\end{itemize}
|
||||
\end{frame}
|
@ -1,7 +1,13 @@
|
||||
\begin{frame}
|
||||
\frametitle{Schedule}
|
||||
\begin{itemize}
|
||||
\item Pourquoi le schedule ?
|
||||
\item Créé pour éviter les conflicts entre mise à jour/sauvegarde ;
|
||||
\item permet de distinger les tâches avant sauvegarde/après sauvegarde ;
|
||||
\item principe :
|
||||
\begin{itemize}
|
||||
\item extration avant sauvegarde,
|
||||
\item suppression de fichier/mise à jour/ ... après la sauvegarde.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
@ -9,11 +15,9 @@
|
||||
\frametitle{Schedule}
|
||||
\begin{itemize}
|
||||
\item Script principalement bash ;
|
||||
\item . /usr/share/eole/schedule/config.sh ;
|
||||
\item DESC="..." ;
|
||||
\item code retour 0 ;
|
||||
\item executable ;
|
||||
\item pas d'extension.
|
||||
\item enregistrer dans /usr/share/eole/schedule/scripts ;
|
||||
\item au format "run-part" ;
|
||||
\item dictionnaire d'activation dans /usr/share/eole/creole/extra/schedule/.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -7,8 +7,7 @@
|
||||
\item /usr/share/ead2/backend/actions/cmd\_xxx.py : code de la commande ;
|
||||
\item /usr/share/ead2/backend/config/cmds/xxx.cmd : enregistrement de la commande ;
|
||||
\item /usr/share/ead2/backend/config/actions/actions\_xxx.cfg : enregistrement de l'action ;
|
||||
\item /usr/share/ead2/backend/config/perms/perm\_xxx.ini : association de rôle ;
|
||||
\item plus d'information : http://eoleng.ac-dijon.fr/pub/Documentations/devel/ead/actions/commande.html
|
||||
\item /usr/share/ead2/backend/config/perms/perm\_xxx.ini : association de rôle.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
\frametitle{Fichier/répertoire dans la sauvegarde}
|
||||
\begin{itemize}
|
||||
\item Prévoir les extractions ;
|
||||
\item fichier/répertoire spécifié dans /etc/bacula/baculafichiers.d/.
|
||||
\item fichier/répertoire spécifié dans /etc/bareos/bareosfichiers.d/.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -37,16 +37,11 @@
|
||||
\frametitle{Gestion des services}
|
||||
\begin{itemize}
|
||||
\item from pyeole.service import *
|
||||
\item service\_out|service\_code
|
||||
\item manage\_service :
|
||||
\begin{itemize}
|
||||
\item service : nom du service
|
||||
\item action : start|stop|restart|status
|
||||
\item container : nom du conteneur (défaut root)
|
||||
\end{itemize}
|
||||
\item service\_code\_no\_container : démarrage d'un service dans tous les conteneurs avec le service
|
||||
\begin{itemize}
|
||||
\item service : nom du service
|
||||
\item action : start|stop|restart|status
|
||||
\item action : start|stop|restart|status,
|
||||
\item service : nom du service,
|
||||
\item container : nom du conteneur (défaut root).
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
@ -77,29 +72,29 @@
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Execution de commande}
|
||||
\begin{itemize}
|
||||
\item from pyeole.process import *
|
||||
\item is\_installed
|
||||
\begin{itemize}
|
||||
\item package
|
||||
\item container : (défaut root)
|
||||
\item *context : (défaut True)
|
||||
\end{itemize}
|
||||
\item tcpcheck
|
||||
\begin{itemize}
|
||||
\item ip\_address : adresse IP
|
||||
\item port : port a tester
|
||||
\item timeout : temps d'attente maximum (défaut 1)
|
||||
\end{itemize}
|
||||
\item test\_conteneur : test si un conteneur est démarré
|
||||
\begin{itemize}
|
||||
\item container : nom du conteneur
|
||||
\item *ip\_address : adresse IP du conteneur (défaut None)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
%\begin{frame}
|
||||
% \frametitle{Execution de commande}
|
||||
% \begin{itemize}
|
||||
% \item from pyeole.process import *
|
||||
% \item is\_installed
|
||||
% \begin{itemize}
|
||||
% \item package
|
||||
% \item container : (défaut root)
|
||||
% \item *context : (défaut True)
|
||||
% \end{itemize}
|
||||
% \item tcpcheck
|
||||
% \begin{itemize}
|
||||
% \item ip\_address : adresse IP
|
||||
% \item port : port a tester
|
||||
% \item timeout : temps d'attente maximum (défaut 1)
|
||||
% \end{itemize}
|
||||
% \item test\_conteneur : test si un conteneur est démarré
|
||||
% \begin{itemize}
|
||||
% \item container : nom du conteneur
|
||||
% \item *ip\_address : adresse IP du conteneur (défaut None)
|
||||
% \end{itemize}
|
||||
% \end{itemize}
|
||||
%\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
@ -109,66 +104,85 @@
|
||||
\item stdin : a=system\_code('cat', stdin="mot")
|
||||
\item env : a=system\_code('env', env={'mot': 'mot'})
|
||||
\item container : a=system\_code(['ls', '/etc/samba/'], container='fichier')
|
||||
\item installé : is\_installed('samba-common')
|
||||
\item non installé : is\_installed('samba')
|
||||
\item conteneur : is\_installed('samba', container='fichier')
|
||||
% \item installé : is\_installed('samba-common')
|
||||
% \item non installé : is\_installed('samba')
|
||||
% \item conteneur : is\_installed('samba', container='fichier')
|
||||
\item test service : tcpcheck('192.0.2.52', '139')
|
||||
\item test\_conteneur('fichier')
|
||||
% \item test\_conteneur('fichier')
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
%FIXME
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des locks}
|
||||
\begin{itemize}
|
||||
\item from creole.eolelock import *
|
||||
\item add\_lock : ajout d'un lock
|
||||
\item del\_lock : supprimer un lock
|
||||
\item check\_lock : vérifier la présence d'un fichier lock
|
||||
\item from pyeole.lock import *
|
||||
\item acquire : ajout d'un lock
|
||||
\item release : supprimer un lock
|
||||
\item is\_locked : vérifier la présence d'un fichier lock
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item ajouter, vérifier et supprimer un lock.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Lire valeur du dictionnaire}
|
||||
\begin{itemize}
|
||||
\item Via creoled :
|
||||
\begin{itemize}
|
||||
\item lock\_name : nom du fichier lock
|
||||
\item from creole.client import CreoleClient
|
||||
\item client = CreoleClient()
|
||||
\item client.get\_creole(variable)
|
||||
\end{itemize}
|
||||
\item check\_all\_locks : vérifier la présence des locks systèmes
|
||||
\item en chargeant les dictionnaires :
|
||||
\begin{itemize}
|
||||
\item from creole.loader import creole\_loader
|
||||
\item config = creole\_loader()
|
||||
\item config.creole.famille.variable
|
||||
\item config.creole.famille.master.slave
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Modifier valeur du dictionnaire}
|
||||
\begin{itemize}
|
||||
\item from creole.loader import creole\_loader, config\_save\_values
|
||||
\item config = creole\_loader(rw=True)
|
||||
\item config.creole.famille.variable = value
|
||||
\item config.creole.famille.master.master.append(value)
|
||||
\item config.creole.famille.master.slave[-1] = value
|
||||
\item config\_save\_values(config)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item add\_lock('test')
|
||||
\item check\_lock('test')
|
||||
\item del\_lock('test')
|
||||
\item Afficher la valeur de la variable adresse\_ip\_eth0 ;
|
||||
\item afficher la valeur de la variable netmask\_ssh\_eth0.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Valeur du dictionnaire}
|
||||
\begin{itemize}
|
||||
\item from creole.parsedico import parse\_dico
|
||||
\item parse\_dico() : chargement des dictionnaires
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
%\begin{frame}
|
||||
% \frametitle{Valeur du dictionnaire conteneur}
|
||||
% \begin{itemize}
|
||||
% \item from creole.eosfunc import *
|
||||
% \item load\_conteneur\_var() : chargement des configurations conteneurs
|
||||
% \end{itemize}
|
||||
%\end{frame}
|
||||
%
|
||||
%\begin{frame}
|
||||
% \frametitle{Pratique}
|
||||
% \begin{itemize}
|
||||
% \item container\_var = load\_container\_var()
|
||||
% \item print container\_var['container\_ip\_fichier']
|
||||
% \end{itemize}
|
||||
%\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item conf\_eole = parse\_dico()
|
||||
\item print conf\_eole['adresse\_ip\_eth0']
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Valeur du dictionnaire conteneur}
|
||||
\begin{itemize}
|
||||
\item from creole.eosfunc import *
|
||||
\item load\_conteneur\_var() : chargement des configurations conteneurs
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item container\_var = load\_container\_var()
|
||||
\item print container\_var['container\_ip\_fichier']
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{Écrire en couleur}
|
||||
\begin{itemize}
|
||||
\item . /usr/share/eole/FonctionsEoleNg
|
||||
%FIXME
|
||||
\item . /usr/lib/eole/ihm.sh
|
||||
\item EchoRouge
|
||||
\item EchoVert
|
||||
\item EchoOrange
|
||||
@ -15,8 +16,9 @@
|
||||
\begin{itemize}
|
||||
\item Question\_ouinon
|
||||
\item \$1 : contenu de la question de type oui/non
|
||||
\item \$2 : valeur par défaut (défaut non)
|
||||
\item \$3 : info|warn|err (défaut info)
|
||||
\item \$2 : interactif ou non
|
||||
\item \$3 : valeur par défaut (défaut non)
|
||||
\item \$4 : info|warn|err (défaut info)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
@ -25,7 +27,7 @@
|
||||
\begin{itemize}
|
||||
\item EchoOrange 'couleur orange'
|
||||
\item EchoGras 'le titre'
|
||||
\item Question\_ouinon 'voulez vous vraiment faire cette action'
|
||||
\item Question\_ouinon "Voulez vous vraiment faire cette action ?"
|
||||
\item echo \$?
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
@ -56,7 +58,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{Execution de commande}
|
||||
\begin{itemize}
|
||||
\item RunCmd
|
||||
\item CreoleRun
|
||||
\item \$1 : commande
|
||||
\item \$2 : conteneur
|
||||
\end{itemize}
|
||||
@ -74,7 +76,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item RunCmd "echo mot" fichier
|
||||
\item CreoleRun "echo mot" fichier
|
||||
\item test service : tcpcheck 2 192.0.2.52:80
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
@ -82,49 +84,50 @@
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des locks}
|
||||
\begin{itemize}
|
||||
\item AddLock : ajout d'un lock
|
||||
\item DelLock : suppression d'un lock
|
||||
\item CheckAllLocks : vérifie la présence de lock système
|
||||
\begin{itemize}
|
||||
\item \$1 : nom du lock
|
||||
\end{itemize}
|
||||
%FIXME
|
||||
\item CreoleLock acquire "nom\_du\_lock"
|
||||
\item CreoleLock release "nom\_du\_lock"
|
||||
\item CreoleLock is\_locked "nom\_du\_lock"
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item AddLock test
|
||||
\item DelLock test
|
||||
\item Créé un lock "test" ;
|
||||
\item Supprimé le lock "test".
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Valeur du dictionnaire}
|
||||
\frametitle{Valeur d'une variable}
|
||||
\begin{itemize}
|
||||
\item . ParseDico
|
||||
\item dans l'environnement de l'utilisateur
|
||||
\item CreoleGet nom\_variable
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item echo \$adresse\_ip\_eth0
|
||||
\item Récupérer la valeur de la variable adresse\_ip\_eth0
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Valeur du dictionnaire conteneur}
|
||||
\frametitle{Modifier la valeur}
|
||||
\begin{itemize}
|
||||
\item . /etc/eole/containers.conf
|
||||
\item CreoleSet nom\_variable valeur ;
|
||||
\item Pour une liste : CreoleSet nom\_variable """valeur1
|
||||
\item valeur2""" ;
|
||||
\item attention, ne peut changer la longueur de esclave.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item echo \$container\_ip\_fichier
|
||||
\item Modifier la valeur de la variable de vm\_swappiness à 10 ;
|
||||
\item modifier ubuntu\_update\_mirrors à "eole.ac-dijon.fr inconnu.lan"
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
Reference in New Issue
Block a user