complement dans l'exemple d'exercice

This commit is contained in:
Emmanuel Garette 2016-04-27 11:54:37 +02:00
parent 73a5e3d14f
commit f642003eaf
1 changed files with 194 additions and 107 deletions

View File

@ -24,6 +24,7 @@
\usepackage{titlesec} \usepackage{titlesec}
\usepackage{fancyhdr} \usepackage{fancyhdr}
\usepackage{lastpage} \usepackage{lastpage}
\usepackage{minted}
\setlength{\hoffset}{-18pt} \setlength{\hoffset}{-18pt}
\setlength{\oddsidemargin}{0pt} % Marge gauche sur pages impaires \setlength{\oddsidemargin}{0pt} % Marge gauche sur pages impaires
@ -37,31 +38,10 @@
\setlength{\headsep}{10pt} % Entre le haut de page et le texte \setlength{\headsep}{10pt} % Entre le haut de page et le texte
\setlength{\footskip}{27pt} % Bas de page + séparation \setlength{\footskip}{27pt} % Bas de page + séparation
\setlength{\textheight}{708pt} % Hauteur de la zone de texte (25cm) \setlength{\textheight}{708pt} % Hauteur de la zone de texte (25cm)
\definecolor{bg}{rgb}{0.9,0.9,0.9}
\definecolor{gray}{rgb}{0.4,0.4,0.4}
\definecolor{darkblue}{rgb}{0.0,0.0,0.6}
\definecolor{cyan}{rgb}{0.0,0.6,0.6}
\lstset{
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
commentstyle=\color{gray}\upshape
}
\lstdefinelanguage{XML}
{
morestring=[b]",
morestring=[s]{>}{<},
morecomment=[s]{<?}{?>},
stringstyle=\color{black},
identifierstyle=\color{darkblue},
keywordstyle=\color{cyan},
morekeywords={xmlns,version,type}% list your attributes here
}
% TITRE DU DOCUMENT ! % TITRE DU DOCUMENT !
\title{Corrigé des exercices : création d'un dictionnaire EOLE} \title{Corrigé des exercices : intégration de ircd-irc2 dans EOLE}
%\date{} %\date{}
@ -92,7 +72,7 @@ Créé un fichier en suivant les conventions suivantes :
Créer le fichier 00\_ircd.xml avec la structure de base suivante : Créer le fichier 00\_ircd.xml avec la structure de base suivante :
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
@ -109,23 +89,23 @@ Créer le fichier 00\_ircd.xml avec la structure de base suivante :
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Installation du paquet et gestion du service} \chapter{Installation du paquet et gestion du service}
Le logiciel doit s'installer à l'instanciation du serveur et le service doit être géré par EOLE : Le logiciel doit s'installer à l'instanciation du serveur et le service doit être géré par EOLE :
\begin{lstlisting} \begin{minted}{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
<files> <files>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<package>ircd-irc2</package> <package>ircd-irc2</package>
<service>ircd-irc2</service> <service>ircd-irc2</service>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</files> </files>
<variables> <variables>
@ -138,23 +118,23 @@ Le logiciel doit s'installer à l'instanciation du serveur et le service doit ê
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Ouverture du firewall et tcpwrapper} \chapter{Ouverture du firewall et tcpwrapper}
\begin{lstlisting} \begin{minted}{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
<files> <files>
<package>ircd-irc2</package> <package>ircd-irc2</package>
<service>ircd-irc2</service> <service>ircd-irc2</service>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<service_access service='ircd-irc2'> <service_access service='ircd-irc2'>
<port port_type="SymLinkOption">ircd_port</port> <port port_type="SymLinkOption">ircd_port</port>
</service_access> </service_access>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</files> </files>
<variables> <variables>
@ -167,13 +147,13 @@ Le logiciel doit s'installer à l'instanciation du serveur et le service doit ê
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Activation/désactivation du service} \chapter{Activation/désactivation du service}
Ajouter une variable pour activer/désactiver le service : Ajouter une variable pour activer/désactiver le service :
\begin{lstlisting} \begin{minted}{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
@ -186,15 +166,16 @@ Ajouter une variable pour activer/désactiver le service :
</files> </files>
<variables> <variables>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<family name='services'> <family name='services'>
<variable name='activer_ircd' type='oui/non' description="Activer le serveur IRC" > <variable name='activer_ircd' type='oui/non'
description="Activer le serveur IRC" >
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</variables> </variables>
<constraints> <constraints>
@ -204,13 +185,13 @@ Ajouter une variable pour activer/désactiver le service :
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Ajout du template} \chapter{Ajout du template}
Le fichier de configuration du service doit être "templatiser" par EOLE : Le fichier de configuration du service doit être "templatiser" par EOLE :
\begin{lstlisting} \begin{minted}{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
@ -220,16 +201,17 @@ Le fichier de configuration du service doit être "templatiser" par EOLE :
<service_access service='ircd-irc2'> <service_access service='ircd-irc2'>
<port port_type="SymLinkOption">ircd_port</port> <port port_type="SymLinkOption">ircd_port</port>
</service_access> </service_access>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<file name='/etc/ircd/ircd.conf'/> <file name='/etc/ircd/ircd.conf'/>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</files> </files>
<variables> <variables>
<family name='services'> <family name='services'>
<variable name='activer_ircd' type='oui/non' description="Activer le serveur IRC" > <variable name='activer_ircd' type='oui/non'
description="Activer le serveur IRC" >
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
@ -242,13 +224,13 @@ Le fichier de configuration du service doit être "templatiser" par EOLE :
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Ajout des variables} \chapter{Ajout des variables}
Dans le template nous allons utiliser des variables définis dans le dictionnaire. Nous allons ajouter les variable pour configurer les M line et les K line : Dans le template nous allons utiliser des variables définis dans le dictionnaire. Nous allons ajouter les variable pour configurer les M line et les K line :
\begin{lstlisting} \begin{minted}{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
@ -263,34 +245,32 @@ Dans le template nous allons utiliser des variables définis dans le dictionnair
<variables> <variables>
<family name='services'> <family name='services'>
<variable name='activer_ircd' type='oui/non' description="Activer le serveur IRC" > <variable name='activer_ircd' type='oui/non'
<value>oui</value> description="Activer le serveur IRC" >
</variable>
</family>
\end{lstlisting}
\begin{lstlisting}[language=XML]
<family name='services'>
<variable name='activer_ircd' type='oui/non' description="Activer le serveur IRC" >
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
\end{minted}
\begin{minted}[bgcolor=bg]{xml}
<family name='ircd'> <family name='ircd'>
<variable name='ircd_domaine' type='domain' <variable name='ircd_domaine' type='domain'
description="Nom de domaine utilisé pour accéder au serveur IRC"/> description="Nom de domaine utilisé pour accéder au serveur IRC"/>
<variable name='ircd_libelle' type='string' description="Libellé du serveur IRC"/> <variable name='ircd_libelle' type='string'
description="Libellé du serveur IRC"/>
<variable name='ircd_port' type='port' description="Port du serveur IRC" <variable name='ircd_port' type='port' description="Port du serveur IRC"
mode='expert'> mode='expert'>
<value>6667</value> <value>6667</value>
</variable> </variable>
<variable name='ircd_banned_hostname' type='domain' <variable name='ircd_banned_hostname' type='domain'
description="Hote banni sur le serveur IRC" multi="True" mandatory="True"/> description="Hote banni sur le serveur IRC" multi="True"
mandatory="True"/>
<variable name='ircd_banned_comment' type='string' <variable name='ircd_banned_comment' type='string'
description="Motif du bannissement du serveur IRC"> description="Motif du bannissement du serveur IRC">
<value>Vous êtes banni, contacter votre administrateur</value> <value>Vous êtes banni, contacter votre administrateur</value>
</variable> </variable>
</family> </family>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</variables> </variables>
<constraints> <constraints>
@ -300,53 +280,51 @@ Dans le template nous allons utiliser des variables définis dans le dictionnair
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Désactivation des éléments} \chapter{Désactivation des éléments}
Si "activer\_ircd" est à "non" le service ne devrait plus être démarré, la famille ne doit plus être accessible et le fichier de configuration ne doit plus être généré : Si "activer\_ircd" est à "non" le service ne devrait plus être démarré, la famille ne doit plus être accessible et le fichier de configuration ne doit plus être généré :
\begin{lstlisting} \begin{minted}{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
<files> <files>
<package>ircd-irc2</package> <package>ircd-irc2</package>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<service servicelist="ircd">ircd-irc2</service> <service servicelist="ircd">ircd-irc2</service>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
<service_access service='ircd-irc2'> <service_access service='ircd-irc2'>
<port port_type="SymLinkOption">ircd_port</port> <port port_type="SymLinkOption">ircd_port</port>
</service_access> </service_access>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<file filelist="ircd" name='/etc/ircd/ircd.conf'/> <file filelist="ircd" name='/etc/ircd/ircd.conf'/>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</files> </files>
<variables> <variables>
<family name='services'> <family name='services'>
<variable name='activer_ircd' type='oui/non' description="Activer le serveur IRC" > <variable name='activer_ircd' type='oui/non'
<value>oui</value> description="Activer le serveur IRC" >
</variable>
</family>
<family name='services'>
<variable name='activer_ircd' type='oui/non' description="Activer le serveur IRC" >
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
<family name='ircd'> <family name='ircd'>
<variable name='ircd_domaine' type='domain' <variable name='ircd_domaine' type='domain'
description="Nom de domaine utilisé pour accéder au serveur IRC"/> description="Nom de domaine utilisé pour accéder au serveur IRC"/>
<variable name='ircd_libelle' type='string' description="Libellé du serveur IRC"/> <variable name='ircd_libelle' type='string'
description="Libellé du serveur IRC"/>
<variable name='ircd_port' type='port' description="Port du serveur IRC" <variable name='ircd_port' type='port' description="Port du serveur IRC"
mode='expert'> mode='expert'>
<value>6667</value> <value>6667</value>
</variable> </variable>
<variable name='ircd_banned_hostname' type='domain' <variable name='ircd_banned_hostname' type='domain'
description="Hote banni sur le serveur IRC" multi="True" mandatory="True"/> description="Hote banni sur le serveur IRC" multi="True"
mandatory="True"/>
<variable name='ircd_banned_comment' type='string' <variable name='ircd_banned_comment' type='string'
description="Motif du bannissement du serveur IRC"> description="Motif du bannissement du serveur IRC">
<value>Vous êtes banni, contacter votre administrateur</value> <value>Vous êtes banni, contacter votre administrateur</value>
@ -355,35 +333,35 @@ Si "activer\_ircd" est à "non" le service ne devrait plus être démarré, la f
</variables> </variables>
<constraints> <constraints>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<condition name='disabled_if_in' source='activer_ircd'> <condition name='disabled_if_in' source='activer_ircd'>
<param>non</param> <param>non</param>
<target type='filelist'>ircd</target> <target type='filelist'>ircd</target>
<target type='servicelist'>ircd</target> <target type='servicelist'>ircd</target>
<target type='family'>ircd</target> <target type='family'>ircd</target>
</condition> </condition>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</constraints> </constraints>
<help> <help>
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Test} \chapter{Test du dictionnaire}
Lancer gen\_config.Dans l'onglet service tester si l'onglet "Ircd" disparait bien si "Activer le serveur IRC" est à "non" et réapparait si la valeur est à "oui". Lancer gen\_config.Dans l'onglet service tester si l'onglet "Ircd" disparait bien si "Activer le serveur IRC" est à "non" et réapparait si la valeur est à "oui".
Renseigner la valeur de la variable "Nom de domaine utilisé pour accéder au serveur IRC" à "localhost.localdomaine". Renseigner la valeur de la variable "Nom de domaine utilisé pour accéder au serveur IRC" à "localhost.localdomaine".
\chapter{Aide} \chapter{Ajout d'aide à la variable d'activation}
Ajouter de l'aide sur la variable activer\_ircd : Ajouter de l'aide sur la variable activer\_ircd :
\begin{lstlisting} \begin{minted}{xml}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<creole> <creole>
@ -398,20 +376,23 @@ Ajouter de l'aide sur la variable activer\_ircd :
<variables> <variables>
<family name='services'> <family name='services'>
<variable name='activer_ircd' type='oui/non' description="Activer le serveur IRC" > <variable name='activer_ircd' type='oui/non'
description="Activer le serveur IRC" >
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
<family name='ircd'> <family name='ircd'>
<variable name='ircd_domaine' type='domain' <variable name='ircd_domaine' type='domain'
description="Nom de domaine utilisé pour accéder au serveur IRC"/> description="Nom de domaine utilisé pour accéder au serveur IRC"/>
<variable name='ircd_libelle' type='string' description="Libellé du serveur IRC"/> <variable name='ircd_libelle' type='string'
description="Libellé du serveur IRC"/>
<variable name='ircd_port' type='port' description="Port du serveur IRC" <variable name='ircd_port' type='port' description="Port du serveur IRC"
mode='expert'> mode='expert'>
<value>6667</value> <value>6667</value>
</variable> </variable>
<variable name='ircd_banned_hostname' type='domain' <variable name='ircd_banned_hostname' type='domain'
description="Hote banni sur le serveur IRC" multi="True" mandatory="True"/> description="Hote banni sur le serveur IRC" multi="True"
mandatory="True"/>
<variable name='ircd_banned_comment' type='string' <variable name='ircd_banned_comment' type='string'
description="Motif du bannissement du serveur IRC"> description="Motif du bannissement du serveur IRC">
<value>Vous êtes banni, contacter votre administrateur</value> <value>Vous êtes banni, contacter votre administrateur</value>
@ -430,14 +411,120 @@ Ajouter de l'aide sur la variable activer\_ircd :
</constraints> </constraints>
<help> <help>
\end{lstlisting} \end{minted}
\begin{lstlisting}[language=XML] \begin{minted}[bgcolor=bg]{xml}
<variable name="activer_ircd">Cette variable permet d'activer un serveur IRC</variable> <variable name="activer_ircd">Cette variable permet d'activer un serveur IRC</variable>
\end{lstlisting} \end{minted}
\begin{lstlisting} \begin{minted}{xml}
</help> </help>
</creole> </creole>
\end{lstlisting} \end{minted}
\chapter{Création du template}
Si le variable pour activer le serveur est maintenant bien présente, le service n'est toujours pas fonctionnel.
En effet, il faut configurer l'application avec les informations fournis par l'utilisateur.
Pour cela, nous allons créé le template /usr/share/eole/creole/distrib/ircd.conf :
\begin{otherlanguage}{english}
\begin{minted}{cpp}
# This is ircd's config-file. Look at
# /usr/share/doc/ircd-irc2/ircd.conf.example.gz and
# and /usr/share/doc/ircd-irc2/INSTALL.* for more detailled information
# and instructions
# A-Line
A:Default:Default file:Welcome::ExampleNet
# Y-Lines
Y:1:90::100:512000:5.5:100.100
Y:2:90::300:512000:5.5:250.250
# I-Line
I:*:::0:1
I:127.0.0.1/32:::0:1
# P-Line
P::::6667:
\end{minted}
\end{otherlanguage}
\chapter{Configuration général du service}
L'utilisateur a renseigner un domaine, un label et un port pour IRCD. Il faut maintenant en tenir compte :
\begin{otherlanguage}{english}
\begin{minted}{cpp}
# This is ircd's config-file. Look at
# /usr/share/doc/ircd-irc2/ircd.conf.example.gz and
# and /usr/share/doc/ircd-irc2/INSTALL.* for more detailled information
# and instructions
\end{minted}
\begin{minted}[bgcolor=bg]{cpp}
# M-Line
M:%%ircd_domaine::%%ircd_libelle:%%ircd_port:000A
\end{minted}
\begin{minted}{cpp}
# A-Line
A:Default:Default file:Welcome::ExampleNet
# Y-Lines
Y:1:90::100:512000:5.5:100.100
Y:2:90::300:512000:5.5:250.250
# I-Line
I:*:::0:1
I:127.0.0.1/32:::0:1
# P-Line
P::::6667:
\end{minted}
\end{otherlanguage}
\chapter{Ajout des bannissements}
L'administrateur a la possibilité d'ajouté plusieurs lignes de bannissement. Il est donc nécessaire de récupérer les informations avec une boucle :
\begin{otherlanguage}{english}
\begin{minted}{cpp}
# This is ircd's config-file. Look at
# /usr/share/doc/ircd-irc2/ircd.conf.example.gz and
# and /usr/share/doc/ircd-irc2/INSTALL.* for more detailled information
# and instructions
# M-Line
M:%%ircd_domaine::%%ircd_libelle:%%ircd_port:000A
%for %%hostname in %%ircd_banned_hostname
\end{minted}
\begin{minted}[bgcolor=bg]{cpp}
# K-Line
K:%%hostname:%%hostname.ircd_banned_comment:*:0:
%end for
\end{minted}
\begin{minted}{cpp}
# A-Line
A:Default:Default file:Welcome::ExampleNet
# Y-Lines
Y:1:90::100:512000:5.5:100.100
Y:2:90::300:512000:5.5:250.250
# I-Line
I:*:::0:1
I:127.0.0.1/32:::0:1
# P-Line
P::::6667:
\end{minted}
\end{otherlanguage}
\chapter{Configuration et démarrage le service}
Il est maintenant possible de vérifier le fonctionnement du service.
Le service doit être démarré après le reconfigure si on active IRCD.
Le service doit être arrêté après le reconfigure si on désactive IRCD.
\end{document} \end{document}