2013-01-08 17:43:49 +01:00
\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}
2016-04-20 10:44:44 +02:00
\item Modifié dans le fichier de configuration de proftpd.conf : UseReverseDNS de "off" à "on" ;
\item créé le patch.
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { frame}
\begin { frame}
2016-04-20 10:44:44 +02:00
\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.
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { frame}
\begin { frame}
2016-04-20 10:44:44 +02:00
\frametitle { Dictionnaire Creole : les services}
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\item Services fonctionnent sur le maitre ou dans un conteneur ;
\item différentes méthodes : service, upstart ou apache.
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { frame}
\begin { frame}
2016-04-20 10:44:44 +02:00
\frametitle { Pratique}
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\item Installer le paquet ircd-irc2 ;
\item ajouter un dictionnaire pour gérer :
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\item l'installation du paquet,
\item le service.
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { itemize}
\end { frame}
\begin { frame}
2016-04-20 10:44:44 +02:00
\frametitle { Dictionnaire Creole : le firewall}
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\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 :
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\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.
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { itemize}
\end { frame}
\begin { frame}
2016-04-20 10:44:44 +02:00
\frametitle { Pratique}
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\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 ;
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\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) :
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { itemize}
\end { frame}
\begin { frame}
2016-04-20 10:44:44 +02:00
\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:
2013-01-08 17:43:49 +01:00
\begin { itemize}
2016-04-20 10:44:44 +02:00
\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.
2013-01-08 17:43:49 +01:00
\end { itemize}
2016-04-20 10:44:44 +02:00
\end { itemize}
2013-01-08 17:43:49 +01:00
\end { frame}
\begin { frame}
\frametitle { Pratique}
\begin { itemize}
2016-04-20 10:44:44 +02:00
\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.
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { Langague de template Creole}
\begin { itemize}
2016-04-20 10:44:44 +02:00
\item Un template utilise le langage de template Creole.
\item variable Creole préfixé par \begin { semiverbatim} \% \% \end { semiverbatim}
2013-01-08 17:43:49 +01:00
\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}
2014-05-16 10:05:02 +02:00
\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}
2013-01-08 17:43:49 +01:00
\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}
2016-04-20 10:44:44 +02:00
\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:".
2013-01-08 17:43:49 +01:00
\end { itemize}
\end { frame}