formations/slides/modules_EOLE_envole/tronc-commun-2/personnalisation-creole-templates.tex

379 lines
12 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\begin{frame}
\frametitle{CreoleGet}
\framesubtitle{Récupérer la valeur dune variable}
\begin{itemize}
\item \commande{CreoleGet nom\_variable}
\item \commande{CreoleGet --list}
\item on retrouve le nom des variables dans gen\_config en mode debug
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{CreoleSet}
\framesubtitle{Assigner une valeur à une variable}
\begin{itemize}
\item \commande{CreoleSet <nom\_variable> <valeur>} ;
\item Pour une liste : \commande{CreoleSet nom\_variable """valeur1}
\item \commande{> valeur2"""} ;
\end{itemize}
\begin{alertblock}{Manipulation des listes esclaves}
\commande{CreoleSet} ne permet pas de changer la longueur dune liste esclave. Une assignation de valeur pour une liste doit respecter la longueur initiale.
\end{alertblock}
\end{frame}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Récupérer la valeur de la variable adresse\_ip\_eth0
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Modifier la valeur de la variable de vm\_swappiness à 12 ;
\item modifier ubuntu\_update\_mirrors à "eole.ac-dijon.fr inconnu.lan"
\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ésentes 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}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Gérer le service vnstat}
\begin{enumerate}
\item Créer le dictionnaire /usr/share/eole/creole/dicos/local/00\_vnstat.xml ;
\item ajouter lentête \mintinline{xml}{<?xml version="1.0" encoding="utf-8"?>} ;
\item ajouter une balise \emph{creole} ;
% \item ajouter une balise \emph{files} dans la balise \emph{creole} ;
% \item ajouter une balise \emph{service} dans la balise \emph{files} ;
\end{enumerate}
\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}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Tester le dictionnaire}
\begin{enumerate}
\item Valider avec \commande{CreoleLint -d /usr/share/eole/creole/dicos/local/00\_vnstat.xml}.
\end{enumerate}
\end{frame}
}
\begin{frame}
\frametitle{Dictionnaires Creole}
\frametitle{Les familles}
\begin{itemize}
\item Les variables sont classées dans des familles.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Dictionnaires Creole}
\frametitle{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}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Ajouter une variable pour activer vnstat}
\begin{enumerate}
\item Ajouter une balise \emph{variables} dans la balise \emph{creole},
\item ajouter une balise \emph{family} dans la balise \emph{variables},
\item ajouter une balise \emph{variable} dans la balise \emph{family},
\item ajouter de l'aide,
\item valider avec \commande{CreoleLint},
\item constater les changements dans \commande{gen\_config}.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Correction}
\framesubtitle{Ajouter une variable pour activer vnstat}
\begin{verbatim}
<?xml version="1.0" encoding="utf-8"?>
<creole>
<variables>
<family name="services">
<variable name="activer_vnstat" type="oui/non"
description="Activer la gestion statistique">
<value>non</value>
</variable>
</family>
</variables>
<help>
<variable name="activer_vnstat">Activer vnstat</variable>
</help>
</creole>
\end{verbatim}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Ajouter les variables vnstat}
\begin{enumerate}
\item ajouter une variable vnstat\_month\_rotate avec le nombre de rotation par mois ;
\item ajouter une variable vnstat\_interface pour définir sur quelle interface écouter ;
\item valider avec \commande{CreoleLint} ;
\item constater les changements dans \commande{gen\_config}.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Correction}
\framesubtitle{Ajouter les variables vnstat}
\begin{verbatim}
<family name="statistique">
<variable name="vnstat_month_rotate" type="number"
description="Rotation par mois" mode="expert">
<value>1</value>
</variable>
<variable name="vnstat_interface" type="string"
description="Interface sur laquelle écoute vnstat"
multi="True" mandatory="True"/>
</family>
\end{verbatim}
\end{frame}
}
\begin{frame}
\frametitle{Dictionnaires Creole}
\frametitle{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}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Installer le paquet}
\begin{enumerate}
\item ajouter l'installation du paquet ;
\item valider avec \commande{CreoleLint}.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Correction}
\framesubtitle{Installer le paquet}
\begin{verbatim}
<files>
<package>vnstat</package>
</files>
\end{verbatim}
\end{frame}
}
\begin{frame}
\frametitle{Dictionnaires Creole}
\frametitle{Les services}
\begin{itemize}
\item Services fonctionnent sur le maitre ou dans un conteneur ;
\item différentes méthodes : service ou apache.
\end{itemize}
\end{frame}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Gérer le service}
\begin{enumerate}
\item gérer le service ;
\item valider avec \commande{CreoleLint}.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Correction}
\framesubtitle{Gérer le service}
\begin{verbatim}
<files>
<service servicelist="vnstat">vnstat</service>
</files>
\end{verbatim}
\end{frame}
}
\begin{frame}
\frametitle{Dictionnaires Creole}
\frametitle{Les fichiers templates}
\begin{itemize}
\item Le nom des fichiers templates sont dans les dictionnaires (file) ;
\item le répertoire de destination doit exister 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}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Ajouter des contraintes}
\begin{enumerate}
\item ajouter le template ;
\item valider avec \commande{CreoleLint}.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Correction}
\framesubtitle{Ajouter des contraintes}
\begin{verbatim}
<files>
<file filelist="vnstat" name="/etc/vnstat.conf"/>
</files>
\end{verbatim}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Copier le fichier de configuration}
\begin{enumerate}
\item Copier le fichier /etc/vnstat.conf dans /usr/share/eole/creole/distrib.
\end{enumerate}
\end{frame}
}
\begin{frame}
\frametitle{Dictionnaires Creole}
\frametitle{Les contraintes}
\begin{itemize}
\item pour tester/remplir/grouper/conditionner des variables ;
\begin{itemize}
\item calcul automatique (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}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Ajouter des contraintes}
\begin{enumerate}
\item la variable vnstat\_month\_rotate ne peut avoir qu'une valeur entre 0 et 4 ;
\item désactiver la famille, le service et la génération du template si désactivé ;
\item valider avec \commande{CreoleLint},
\item constater les changements dans \commande{gen\_config}.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Correction}
\framesubtitle{Ajouter une variable pour activer vnstat}
\begin{verbatim}
<constraints>
<check name="valid_enum" target="vnstat_interface">
<param>['0', '1', '2', '3', '4']</param>
</check>
<condition name="disabled_if_in" source="activer_vnstat">
<param>non</param>
<target type="family">statistique</target>
<target type="servicelist">vnstat</target>
<target type="filelist">vnstat</target>
</condition>
</constraints>
\end{verbatim}
\end{frame}
}
\begin{frame}
\frametitle{Dictionnaires Creole}
\frametitle{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{Dictionnaires Creole}
\framesubtitle{Redéfinition de variables}
\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 existence : \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{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}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{Pratique}
\framesubtitle{Modifier le template}
\begin{enumerate}
\item utiliser la variable vnstat\_month\_rotate pour configurer MonthRotate ;
\item utiliser la variable vnstat\_interface pour configurer Interface ;
\item valider avec \commande{CreoleLint} ;
\item constater les changements dans \commande{CreoleCat}.
\end{enumerate}
\end{frame}
}