2013-01-08 17:43:49 +01:00
\section { Personnalisation du serveur à l'aide de Creole}
\begin { frame} { Plan}
\small \tableofcontents [currentsection, hideothersubsections]
\end { frame}
\begin { frame}
\frametitle { Création de patch}
\begin { itemize}
\item Génération normal : /usr/share/eole/creole/distrib => /etc
\item Génération avec patch : /usr/share/eole/creole/distrib + /usr/share/eole/creole/patch => /var/lib/creole => /etc
\item Créer un patch :
\begin { itemize}
\item copie du fichier original /usr/share/eole/creole/distrib => /usr/share/eole/creole/modif ;
\item modification du fichier dans /usr/share/eole/creole/modif ;
\item exécution "gen\_ patch" ;
\item reconfiguration.
\end { itemize}
\item Désactiver un patch : supprimer le fichier dans /usr/share/eole/creole/patch.
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { Pratique}
\begin { itemize}
\item ClamAV à le paramètre suivant : LogFileMaxSize 2M ;
\item il faut la valeur 10M.
\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}
\begin { itemize}
\item Entête XML : <?xml version="1.0" encoding="utf-8"?> ;
\item Première balise <creole></creole>
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { Syntaxe XML Creole : conteneur}
\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>.
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { Syntaxe XML Creole : variable}
\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}
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { Syntaxe XML Creole : contrainte}
\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> ;
2013-03-09 21:16:31 +01:00
\item affecte <target type='family|filelist|servicelist|...'>nom</target> :
2013-01-08 17:43:49 +01:00
\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}
\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}
\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 tester gen\_ config.
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { Langague de template Creole}
\begin { itemize}
\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 if\end { semiverbatim}
\end { itemize}
\end { frame}
2013-03-09 21:16:31 +01:00
\begin { frame}
\frametitle { Langague de template Creole}
\begin { itemize}
\item Test existance : \begin { semiverbatim} \% if \% \% is\_ defined('variable') code if \% end if\end { semiverbatim}
\item valeur vide : \begin { semiverbatim} \% if \% \% is\_ empty(\% \% variable) code if \% end if\end { semiverbatim}
\item nom de variable dans une variable : \begin { semiverbatim} \% set \% \% var='adresse\_ ip\_ eth0' \% \% getVar(\% \% var)\end { semiverbatim}
\end { itemize}
\end { frame}
2013-01-08 17:43:49 +01:00
\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 supprimer la configuration du TLS dans phpldapadmin ;
\item tester sans reconfigurer : /usr/share/creole/creolecat.py -o config.php /usr/share/eole/creole/distrib/phpldapadmin.php
\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}