\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 Modifié dans le template de configure sshd\_config : "LoginGraceTime" de "30" à "60" \item créé le patch. \end{itemize} \end{frame} \begin{frame} \frametitle{Dictionnaire Creole} \begin{itemize} \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{CreoleLint} \begin{itemize} \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{CreoleCat} \begin{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{Dictionnaire Creole : les paquets} \begin{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{Dictionnaire Creole : les services} \begin{itemize} \item Services fonctionnent sur le maitre ou dans un conteneur ; \item différentes méthodes : service, upstart (version EOLE inférieur à 2.6) ou apache. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Installer le paquet ircd-irc2 ; \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 netbios, 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:::::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:. \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{Redéfinition} \begin{itemize} \item Permet de redéfinir des attributs et caractéristiques : \begin{itemize} \item service \item variable \end{itemize} \item remove\_check : supprimer les "check" déjà définit de la variable. \end{itemize} \end{frame} \begin{frame} \frametitle{Langague de template Creole} \begin{itemize} \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} \end{itemize} \end{frame} \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} \begin{frame} \frametitle{Pratique 1} \begin{itemize} \item Configuration de la "M line : M:::::000A" ; \item configurer les "K line : K: