mise à jour de la formation pour 2.6

This commit is contained in:
2016-04-20 10:44:44 +02:00
parent 0ec050b306
commit 7987c5bb21
41 changed files with 985 additions and 449 deletions

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}