2020-08-07 11:10:25 +02:00
\begin { frame}
\frametitle { CreoleGet}
\framesubtitle { Récupérer la valeur d’ une variable}
\begin { itemize}
\item \commande { CreoleGet nom\_ variable}
\item \commande { CreoleGet --list}
2022-05-06 12:06:07 +02:00
\item on retrouve le nom des variables dans gen\_ config en mode debug
2020-08-07 11:10:25 +02:00
\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}
2021-08-02 16:20:34 +02:00
\commande { CreoleSet} ne permet pas de changer la longueur d’ une liste esclave. Une assignation de valeur pour une liste doit respecter la longueur initiale.
2020-08-07 11:10:25 +02:00
\end { alertblock}
\end { frame}
2022-05-06 12:06:07 +02:00
{ \setbeamercolor { background canvas} { bg=TravauxPratiques}
2020-08-06 17:16:10 +02:00
\begin { frame}
2022-05-06 12:06:07 +02:00
\frametitle { Pratique}
\begin { itemize}
\item Récupérer la valeur de la variable adresse\_ ip\_ eth0
\end { itemize}
2020-08-06 17:16:10 +02:00
\end { frame}
\begin { frame}
2022-05-06 12:06:07 +02:00
\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}
2020-08-06 17:16:10 +02:00
\begin { itemize}
2022-05-06 12:06:07 +02:00
\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/.
2020-08-06 17:16:10 +02:00
\end { itemize}
\end { frame}
2022-05-06 12:06:07 +02:00
{ \setbeamercolor { background canvas} { bg=TravauxPratiques}
2020-08-06 17:16:10 +02:00
\begin { frame}
2022-05-06 12:06:07 +02:00
\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 l’ entê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}
2020-08-06 17:16:10 +02:00
\begin { itemize}
2022-05-06 12:06:07 +02:00
\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}
2020-08-06 17:16:10 +02:00
\end { itemize}
\end { frame}
2022-05-06 12:06:07 +02:00
{ \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}
}
2020-08-06 17:16:10 +02:00
\begin { frame}
\frametitle { Dictionnaires Creole}
\frametitle { Les familles}
\begin { itemize}
2021-08-02 16:20:34 +02:00
\item Les variables sont classées dans des familles.
2020-08-06 17:16:10 +02:00
\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}
2022-05-06 12:06:07 +02:00
{ \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}
}
2020-08-06 17:16:10 +02:00
\begin { frame}
\frametitle { Dictionnaires Creole}
\frametitle { Les fichiers templates}
\begin { itemize}
\item Le nom des fichiers templates sont dans les dictionnaires (file) ;
2021-08-02 16:20:34 +02:00
\item le répertoire de destination doit exister par défaut ;
2020-08-06 17:16:10 +02:00
\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}
2022-05-06 12:06:07 +02:00
{ \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}
}
2020-08-06 17:16:10 +02:00
\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}
2022-05-06 12:06:07 +02:00
{ \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}
2020-08-06 17:16:10 +02:00
\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}
2022-05-06 12:06:07 +02:00
\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}
}