Identifier l’ancien répertoire dans lequel les anciens contenus doivent être récupérés
This commit is contained in:
@ -0,0 +1,237 @@
|
||||
\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:<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:
|
||||
\begin{itemize}
|
||||
\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.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\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.
|
||||
\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:<ircd\_domaine>::<ircd\_libelle>:<ircd\_port>:000A" ;
|
||||
\item configurer les "K line : K:<ircd\_banned\_hostname:ircd\_banned\_comment:*:0:".
|
||||
\end{itemize}
|
||||
\end{frame}
|
@ -0,0 +1,58 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique 2}
|
||||
\begin{itemize}
|
||||
\item Templatisé le fichier /etc/ircd/ircd.motd ;
|
||||
\item test l'existance de la variable web\_url et fait un message personnalisé si existe ;
|
||||
\item créer une variable ircd\_motd\_message avec trois valeurs : "message 1", "message 2" et "personnalisé" ;
|
||||
\item faire deux messages différents pour "message 1" et "message 2" ;
|
||||
\item créer une variable ircd\_motd\_personnalise visible si ircd\_motd\_message est "personnalisé" ;
|
||||
\item valider que ircd\_libelle soit différent de ircd\_motd\_message.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Les fonctions personnalisées}
|
||||
\begin{itemize}
|
||||
\item Ajouter une fonction utiliser dans un dictionnaire : /usr/share/creole/funcs/<nom\_fichier>.py.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire une fonction personnalisée qui retourner un texte ;
|
||||
\item créer une variable qui utilise cette fonction ;
|
||||
\item utiliser cette variable dans le template ircd.motd ;
|
||||
\item utiliser la fonction directement dans le template ircd.motd ;
|
||||
\item tester.
|
||||
\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{Pratique}
|
||||
\begin{itemize}
|
||||
\item Redéfinir le texte de la variable web\_url ;
|
||||
\item passer la variable activer\_clam en mode expert.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Existance d'une variable}
|
||||
\begin{itemize}
|
||||
\item Créer la variable si elle n'existe pas encore avec une valeur par défaut ;
|
||||
\item exemple : 'activer\_clam' dans 23\_proxy.xml ;
|
||||
\item attention la variable ne peut pas être créé après.
|
||||
\end{itemize}
|
||||
\end{frame}
|
58
old_modules_EOLE_envole/tronc-commun-2/02-zephir.tex
Normal file
58
old_modules_EOLE_envole/tronc-commun-2/02-zephir.tex
Normal file
@ -0,0 +1,58 @@
|
||||
\begin{frame}
|
||||
\frametitle{Personnalisation d'un serveur}
|
||||
\begin{itemize}
|
||||
\item Liste des fichiers sauvegardés : dans la page d'état du serveur cliquer sur "voir les fichiers personnalisés" ;
|
||||
\item pour les dictionnaires locaux :
|
||||
\begin{itemize}
|
||||
\item dans la partie "module" du Zéphir, cliquer sur "Dictionnaires personnalisés",
|
||||
\item activer les modules dans la page "voir les fichiers personnalisés" de la page d'état.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Ajouter les fichiers personnalisés dans l'application Zéphir pour Scribe ;
|
||||
\item ajouter la dépendance pour les paquets ;
|
||||
\item envoyer la configuration.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Variante}
|
||||
\begin{itemize}
|
||||
\item Par défaut chaque module est dans la variante "standard" ;
|
||||
\item création des templates, patchs et dicos éventuels ;
|
||||
\item déplacement dans /usr/share/eole/creole/patch/variante et /usr/share/eole/creole/dicos/variante ;
|
||||
\item fichiers ou paquets pas référencés : /usr/share/zephir/zephir\_conf/fichiers\_variante ;
|
||||
\item dans /usr/share/zephir/scripts : ./creation\_variante ;
|
||||
\item mettre à jour une variante : ./maj\_variante.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Créer une variante depuis le serveur ;
|
||||
\item vérifier que le serveur est bien dans la variante ;
|
||||
\item ajouter les dictionnaires et le template dans la variante (ce n'est plus automatique) ;
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Variante : valeur par défaut}
|
||||
\begin{itemize}
|
||||
\item Configuration identique applicable à plusieurs serveurs ;
|
||||
\item attention uniquement valeur par défaut ;
|
||||
\item changer les valeurs des serveurs existants via les groupes ;
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Modifier les valeurs par défaut de la variante ;
|
||||
\item dans la page d'état du serveur "regénérer" la configuration est valider les options par défaut (ne pas enregistrer cette configuration).
|
||||
\end{itemize}
|
||||
\end{frame}
|
19
old_modules_EOLE_envole/tronc-commun-2/03-zephir_script.tex
Normal file
19
old_modules_EOLE_envole/tronc-commun-2/03-zephir_script.tex
Normal file
@ -0,0 +1,19 @@
|
||||
\begin{frame}
|
||||
\frametitle{Exécuter un script Zéphir}
|
||||
\begin{itemize}
|
||||
\item Exécution sur un serveur ou un groupe de serveurs ;
|
||||
\item les scripts doivent être dans /usr/share/zephir/scripts/ ;
|
||||
\item ils doivent avoir l'extension .zephir ;
|
||||
\item ne pas spécifier l'extension lors de l'exécuxion ;
|
||||
\item fonctionseole.init\_proc : permet de vérifier si l'action est bloqué ;
|
||||
\item fonctionseole.zephir(<etat>, <message>, <type>) : log envoyer au Zéphir ;
|
||||
\item les scripts sont lancés en tant que uucp, si besoin utiliser sudo\_script('monscript.zephir').
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Créer un script personnalisé permettant un supprimer un fichier dont le nom est en paramètre.
|
||||
\end{itemize}
|
||||
\end{frame}
|
38
old_modules_EOLE_envole/tronc-commun-2/04-diagnose.tex
Normal file
38
old_modules_EOLE_envole/tronc-commun-2/04-diagnose.tex
Normal file
@ -0,0 +1,38 @@
|
||||
\begin{frame}
|
||||
\frametitle{Création d'un script diagnose}
|
||||
\begin{itemize}
|
||||
\item Diagnose sert à tester le service d'un serveur ;
|
||||
\item si possible, doit tester le bon fonctionnement de l'application ;
|
||||
\item script bash dans /usr/share/eole/diagnose.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Fonction diagnose standard}
|
||||
\begin{itemize}
|
||||
\item Certains nombres de fonction dans /usr/lib/eole/diagnose.sh :
|
||||
\begin{itemize}
|
||||
\item TestIP2 : test une IP via paquet ICMP ECHO\_REQUEST ;
|
||||
\item TestARP : requète ARP (évite les problèmes de firewall) ;
|
||||
\item TestService : test une connexion TCP ;
|
||||
\item TestUDP : vérifie l'écoute d'un service UDP ;
|
||||
\item TestPid : test de la présence d'un processus via pidof ;
|
||||
\item TestHTTPPage : test une page web particulière ;
|
||||
\end{itemize}
|
||||
\item fonctions d'affichage :
|
||||
\begin{itemize}
|
||||
\item EchoGras : titre de section ;
|
||||
\item printf ". \%\${len\_pf}s => " "Test a afficher" ;
|
||||
\item EchoVert|EchoRouge : succès ou échec ;
|
||||
\item Inactif : si un service est inactif volontairement ;
|
||||
\item NoConfig : service non configuré.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un fichier diagnose pour IRCD.
|
||||
\end{itemize}
|
||||
\end{frame}
|
@ -0,0 +1,9 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un script posttemplate qui créé le répertoire /tmp/repertoire ;
|
||||
\item si le répertoire existe, proposer de le supprimer à l'instance ;
|
||||
\item redémarrer le service "cron".
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -0,0 +1,39 @@
|
||||
\begin{frame}
|
||||
\frametitle{Script instance ou reconfigure}
|
||||
\begin{itemize}
|
||||
\item Utilité :
|
||||
\begin{itemize}
|
||||
\item tout ce qui n'est pas possible via les dictionnaires,
|
||||
\item création de répertoire/changement de droit,
|
||||
\item copie de fichier, suppression de fichier, déplacement de fichier,
|
||||
\item création de base,
|
||||
\item ... ;
|
||||
\end{itemize}
|
||||
\item principe :
|
||||
\begin{itemize}
|
||||
\item même script exécuter à l'instance et reconfigure,
|
||||
\item ne doit pas poser de question au reconfigure !
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Script instance ou reconfigure}
|
||||
\begin{itemize}
|
||||
\item Emplacement des scripts :
|
||||
\begin{itemize}
|
||||
\item /usr/share/eole/preservice/ : avant l'arrêt des services,
|
||||
\item /usr/share/eole/pretemplate/ : avant la templatisation,
|
||||
\item /usr/share/eole/posttemplate/ : entre la templatisation et redémarrage des services,
|
||||
\item /usr/share/eole/postservice/ : après redémarrage des services ;
|
||||
\end{itemize}
|
||||
\item compatible run-part :
|
||||
\begin{itemize}
|
||||
\item pas d'extension,
|
||||
\item exécutable,
|
||||
\item script bash, python, ... il faut le préciser avec un shebang (\#!/bin/bash),
|
||||
\item premier argument : instance|reconfigure,
|
||||
\item doivent toujours retourner le code de sortie "0" sauf si problème.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
@ -0,0 +1,10 @@
|
||||
\begin{frame}
|
||||
\frametitle{Montage des conteneurs}
|
||||
\begin{itemize}
|
||||
\item Mode conteneur doit être plus proche du mode non conteneur ;
|
||||
\item répertoire où donnée utilisateur ;
|
||||
\item dans le répertoire /usr/share/eole/lxc/fstab/ ;
|
||||
\item fichier avec le nom du conteneur ou groupe de conteneur ;
|
||||
\item /home {{ROOTFS}}/home none bind 0 0
|
||||
\end{itemize}
|
||||
\end{frame}
|
30
old_modules_EOLE_envole/tronc-commun-2/08-schedule.tex
Normal file
30
old_modules_EOLE_envole/tronc-commun-2/08-schedule.tex
Normal file
@ -0,0 +1,30 @@
|
||||
\begin{frame}
|
||||
\frametitle{Schedule}
|
||||
\begin{itemize}
|
||||
\item Créé pour éviter les conflicts entre mise à jour/sauvegarde ;
|
||||
\item permet de distinger les tâches avant sauvegarde/après sauvegarde ;
|
||||
\item principe :
|
||||
\begin{itemize}
|
||||
\item extration avant sauvegarde,
|
||||
\item suppression de fichier/mise à jour/ ... après la sauvegarde.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Schedule}
|
||||
\begin{itemize}
|
||||
\item Script principalement bash ;
|
||||
\item enregistrer dans /usr/share/eole/schedule/scripts ;
|
||||
\item au format "run-part" ;
|
||||
\item dictionnaire d'activation dans /usr/share/eole/creole/extra/schedule/.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un Schedule qui stop IRCD avant la sauvegarde ;
|
||||
\item faire un script qui démarre IRCD après la sauvegarde.
|
||||
\end{itemize}
|
||||
\end{frame}
|
10
old_modules_EOLE_envole/tronc-commun-2/09-host.tex
Normal file
10
old_modules_EOLE_envole/tronc-commun-2/09-host.tex
Normal file
@ -0,0 +1,10 @@
|
||||
\begin{frame}
|
||||
\frametitle{Résolution de nom local}
|
||||
\begin{itemize}
|
||||
\item /usr/share/eole/lxc/hosts ;
|
||||
\item nom du fichier correspond au nom du conteneur ;
|
||||
\item fichier template ;
|
||||
\item adresse\_ip nom\_de\_domaine.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
39
old_modules_EOLE_envole/tronc-commun-2/11-mysql.tex
Normal file
39
old_modules_EOLE_envole/tronc-commun-2/11-mysql.tex
Normal file
@ -0,0 +1,39 @@
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des bases de données}
|
||||
\begin{itemize}
|
||||
\item Import initial de la base ;
|
||||
\item gère les mises à jour (changement d'une option) ;
|
||||
\item /usr/share/eole/applications/{gen|updates}/xxx.py :
|
||||
\begin{itemize}
|
||||
\item conf\_dict = dict(filenames=[...], {test|test\_active}=test)
|
||||
\item emplacement des fichiers SQL : /usr/share/eole/mysql/xxx/{gen|updates}/xxxx.sql
|
||||
\end{itemize}
|
||||
\item eolesql.db\_test
|
||||
\item importation et modification de la base :
|
||||
\begin{itemize}
|
||||
\item db\_exists(database)
|
||||
\item test\_var(variable, value='oui')
|
||||
\item table\_exists(database, table)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des bases de donnée}
|
||||
\begin{itemize}
|
||||
\item Change les mots de passe dans les fichiers de configuration ;
|
||||
\item /usr/share/eole/applications/passwords/xxx.ini :
|
||||
\begin{itemize}
|
||||
\item [xxx] : section
|
||||
\item username : nom d'utilisateur mysql à modifier
|
||||
\item template : clef à modifier (ex 'define("pass", "'
|
||||
\item end\_template : fin de la clef = '");'
|
||||
\item filename : chemin du fichier à modifier
|
||||
\item owner : utilisateur et groupe du fichier
|
||||
\item chmod : droit du fichier
|
||||
\item {pre|post}\_cmd : script exécuter avant|après la modification (NEWPASS est remplacé par le mot de passe).
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
7
old_modules_EOLE_envole/tronc-commun-2/12-interface.tex
Normal file
7
old_modules_EOLE_envole/tronc-commun-2/12-interface.tex
Normal file
@ -0,0 +1,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{Interface supplémentaire}
|
||||
\begin{itemize}
|
||||
\item Pour les services sur le même réseau ;
|
||||
\item balise : <interface interfacelist='...' linkto='...' ip='\%\%...' mask='\%\%...' bcast='\%\%...'/>.
|
||||
\end{itemize}
|
||||
\end{frame}
|
6
old_modules_EOLE_envole/tronc-commun-2/13-disknod.tex
Normal file
6
old_modules_EOLE_envole/tronc-commun-2/13-disknod.tex
Normal file
@ -0,0 +1,6 @@
|
||||
\begin{frame}
|
||||
\frametitle{Disknod}
|
||||
\begin{itemize}
|
||||
\item Accès direct au device (ACL, attribut étendu, ...).
|
||||
\end{itemize}
|
||||
\end{frame}
|
9
old_modules_EOLE_envole/tronc-commun-2/14-sso.tex
Normal file
9
old_modules_EOLE_envole/tronc-commun-2/14-sso.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\begin{frame}
|
||||
\frametitle{Attribut SSO}
|
||||
\begin{itemize}
|
||||
\item étendre les données disponibles en définissant des attributs calculés
|
||||
\item créer des filtres définissant quels attributs seront disponibles ;
|
||||
\item décrire des URL afin de différencier les applications et leur appliquer un filtre
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
19
old_modules_EOLE_envole/tronc-commun-2/15-script-ead.tex
Normal file
19
old_modules_EOLE_envole/tronc-commun-2/15-script-ead.tex
Normal file
@ -0,0 +1,19 @@
|
||||
\begin{frame}
|
||||
\frametitle{Console EAD}
|
||||
\begin{itemize}
|
||||
\item Permet de rendre des scripts accessible dans l'EAD ;
|
||||
\item pas d'option possible ;
|
||||
\item dans l'EAD : Système/Console ;
|
||||
\item /usr/share/ead2/backend/actions/cmd\_xxx.py : code de la commande ;
|
||||
\item /usr/share/ead2/backend/config/cmds/xxx.cmd : enregistrement de la commande ;
|
||||
\item /usr/share/ead2/backend/config/actions/actions\_xxx.cfg : enregistrement de l'action ;
|
||||
\item /usr/share/ead2/backend/config/perms/perm\_xxx.ini : association de rôle.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un script avec "ls /tmp".
|
||||
\end{itemize}
|
||||
\end{frame}
|
8
old_modules_EOLE_envole/tronc-commun-2/16-sauvegarde.tex
Normal file
8
old_modules_EOLE_envole/tronc-commun-2/16-sauvegarde.tex
Normal file
@ -0,0 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{Fichier/répertoire dans la sauvegarde}
|
||||
\begin{itemize}
|
||||
\item Prévoir les extractions ;
|
||||
\item fichier/répertoire spécifié dans /etc/bareos/bareosfichiers.d/.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -0,0 +1,9 @@
|
||||
\begin{frame}
|
||||
\frametitle{Groupe de conteneur}
|
||||
\begin{itemize}
|
||||
\item Différents conteneurs peuvent être rassemblés ;
|
||||
\item le même path ;
|
||||
\item le même IP ;
|
||||
\item le même nom.
|
||||
\end{itemize}
|
||||
\end{frame}
|
15
old_modules_EOLE_envole/tronc-commun-2/18-cert.tex
Normal file
15
old_modules_EOLE_envole/tronc-commun-2/18-cert.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\begin{frame}
|
||||
\frametitle{Génération certificat}
|
||||
\begin{itemize}
|
||||
\item Fichier dans /usr/share/eole/certs/ ;
|
||||
\item fichier avec extension gen\_cert ;
|
||||
\item fonction gen\_certif() :
|
||||
\begin{itemize}
|
||||
\item certfile : nom du fichier crt ;
|
||||
\item keyfile : nom de la clef ;
|
||||
\item {cert|key}\_user, {cert|key}\_grp, {cert|key}\_chmod ;
|
||||
\item regen=regen ;
|
||||
\item container : nom du conteneur.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
188
old_modules_EOLE_envole/tronc-commun-2/20-api.tex
Normal file
188
old_modules_EOLE_envole/tronc-commun-2/20-api.tex
Normal file
@ -0,0 +1,188 @@
|
||||
\begin{frame}
|
||||
\frametitle{Écrire en couleur}
|
||||
\begin{itemize}
|
||||
\item from pyeole.ansiprint import *
|
||||
\item print\_red
|
||||
\item print\_green
|
||||
\item print\_orange
|
||||
\item ...
|
||||
\item print\_title
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Question}
|
||||
\begin{itemize}
|
||||
\item from pyeole.ihm import question\_ouinon
|
||||
\item question\_ouinon
|
||||
\begin{itemize}
|
||||
\item question : contenu de la question de type oui/non
|
||||
\item default : valeur par défaut (défaut non)
|
||||
\item level : info|warn|err (défaut info)
|
||||
\item return oui ou non
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item print\_orange('couleur orange')
|
||||
\item print\_title('le titre')
|
||||
\item a=question\_ouinon('voulez vous vraiment faire cette action')
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des services}
|
||||
\begin{itemize}
|
||||
\item from pyeole.service import *
|
||||
\item manage\_service :
|
||||
\begin{itemize}
|
||||
\item action : start|stop|restart|status,
|
||||
\item service : nom du service,
|
||||
\item container : nom du conteneur (défaut root).
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item a=service\_out('ntp', 'stop')
|
||||
\item a=service\_code('smbd', 'stop', 'fichier')
|
||||
\item a=service\_code\_no\_container('apache2', 'restart')
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Execution de commande}
|
||||
\begin{itemize}
|
||||
\item from pyeole.process import *
|
||||
\item system\_code : exécution de commande, stdout et stderr dans la console
|
||||
\item system\_out : rien dans la console
|
||||
\begin{itemize}
|
||||
\item cmd : commande (list) ;
|
||||
\item stdin : valeur de STDIN ;
|
||||
\item container : nom du conteneur (root par défaut) ;
|
||||
\item env : variable d'environnement ;
|
||||
\item *context : ssh ou chroot (True par défaut) ;
|
||||
\item *pty : créé un pseudo terminal (False par défaut).
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
%\begin{frame}
|
||||
% \frametitle{Execution de commande}
|
||||
% \begin{itemize}
|
||||
% \item from pyeole.process import *
|
||||
% \item is\_installed
|
||||
% \begin{itemize}
|
||||
% \item package
|
||||
% \item container : (défaut root)
|
||||
% \item *context : (défaut True)
|
||||
% \end{itemize}
|
||||
% \item tcpcheck
|
||||
% \begin{itemize}
|
||||
% \item ip\_address : adresse IP
|
||||
% \item port : port a tester
|
||||
% \item timeout : temps d'attente maximum (défaut 1)
|
||||
% \end{itemize}
|
||||
% \item test\_conteneur : test si un conteneur est démarré
|
||||
% \begin{itemize}
|
||||
% \item container : nom du conteneur
|
||||
% \item *ip\_address : adresse IP du conteneur (défaut None)
|
||||
% \end{itemize}
|
||||
% \end{itemize}
|
||||
%\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item a=system\_code(['echo', 'mot'])
|
||||
\item a=system\_out(['echo', 'mot'])
|
||||
\item stdin : a=system\_code('cat', stdin="mot")
|
||||
\item env : a=system\_code('env', env={'mot': 'mot'})
|
||||
\item container : a=system\_code(['ls', '/etc/samba/'], container='fichier')
|
||||
% \item installé : is\_installed('samba-common')
|
||||
% \item non installé : is\_installed('samba')
|
||||
% \item conteneur : is\_installed('samba', container='fichier')
|
||||
\item test service : tcpcheck('192.0.2.52', '139')
|
||||
% \item test\_conteneur('fichier')
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
%FIXME
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des locks}
|
||||
\begin{itemize}
|
||||
\item from pyeole.lock import *
|
||||
\item acquire : ajout d'un lock
|
||||
\item release : supprimer un lock
|
||||
\item is\_locked : vérifier la présence d'un fichier lock
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item ajouter, vérifier et supprimer un lock.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Lire valeur du dictionnaire}
|
||||
\begin{itemize}
|
||||
\item Via creoled :
|
||||
\begin{itemize}
|
||||
\item from creole.client import CreoleClient
|
||||
\item client = CreoleClient()
|
||||
\item client.get\_creole(variable)
|
||||
\end{itemize}
|
||||
\item en chargeant les dictionnaires :
|
||||
\begin{itemize}
|
||||
\item from creole.loader import creole\_loader
|
||||
\item config = creole\_loader()
|
||||
\item config.creole.famille.variable
|
||||
\item config.creole.famille.master.slave
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Modifier valeur du dictionnaire}
|
||||
\begin{itemize}
|
||||
\item from creole.loader import creole\_loader, config\_save\_values
|
||||
\item config = creole\_loader(rw=True)
|
||||
\item config.creole.famille.variable = value
|
||||
\item config.creole.famille.master.master.append(value)
|
||||
\item config.creole.famille.master.slave[-1] = value
|
||||
\item config\_save\_values(config)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Afficher la valeur de la variable adresse\_ip\_eth0 ;
|
||||
\item afficher la valeur de la variable netmask\_ssh\_eth0.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
%\begin{frame}
|
||||
% \frametitle{Valeur du dictionnaire conteneur}
|
||||
% \begin{itemize}
|
||||
% \item from creole.eosfunc import *
|
||||
% \item load\_conteneur\_var() : chargement des configurations conteneurs
|
||||
% \end{itemize}
|
||||
%\end{frame}
|
||||
%
|
||||
%\begin{frame}
|
||||
% \frametitle{Pratique}
|
||||
% \begin{itemize}
|
||||
% \item container\_var = load\_container\_var()
|
||||
% \item print container\_var['container\_ip\_fichier']
|
||||
% \end{itemize}
|
||||
%\end{frame}
|
||||
|
||||
|
133
old_modules_EOLE_envole/tronc-commun-2/30-api_bash.tex
Normal file
133
old_modules_EOLE_envole/tronc-commun-2/30-api_bash.tex
Normal file
@ -0,0 +1,133 @@
|
||||
\begin{frame}
|
||||
\frametitle{Écrire en couleur}
|
||||
\begin{itemize}
|
||||
%FIXME
|
||||
\item . /usr/lib/eole/ihm.sh
|
||||
\item EchoRouge
|
||||
\item EchoVert
|
||||
\item EchoOrange
|
||||
\item ...
|
||||
\item EchoGras
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Question}
|
||||
\begin{itemize}
|
||||
\item Question\_ouinon
|
||||
\item \$1 : contenu de la question de type oui/non
|
||||
\item \$2 : interactif ou non
|
||||
\item \$3 : valeur par défaut (défaut non)
|
||||
\item \$4 : info|warn|err (défaut info)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item EchoOrange 'couleur orange'
|
||||
\item EchoGras 'le titre'
|
||||
\item Question\_ouinon "Voulez vous vraiment faire cette action ?"
|
||||
\item echo \$?
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des services}
|
||||
\begin{itemize}
|
||||
\item CreoleService
|
||||
\begin{itemize}
|
||||
\item \$1 : nom du service
|
||||
\item \$2 : start|stop|restart|status
|
||||
\item -c conteneur : pour un unique conteneur
|
||||
\end{itemize}
|
||||
\item redémarrer tous les services : StartAll
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item CreoleService ntp stop
|
||||
\item CreoleService smbd stop
|
||||
\item CreoleService apache2 restart
|
||||
\item CreoleService apache2 restart -c web
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Execution de commande}
|
||||
\begin{itemize}
|
||||
\item CreoleRun
|
||||
\item \$1 : commande
|
||||
\item \$2 : conteneur
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Execution de commande}
|
||||
\begin{itemize}
|
||||
\item tcpcheck
|
||||
\item \$1 : timeout
|
||||
\item \$2 : ip:port
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item CreoleRun "echo mot" fichier
|
||||
\item test service : tcpcheck 2 192.0.2.52:80
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Gestion des locks}
|
||||
\begin{itemize}
|
||||
%FIXME
|
||||
\item CreoleLock acquire "nom\_du\_lock"
|
||||
\item CreoleLock release "nom\_du\_lock"
|
||||
\item CreoleLock is\_locked "nom\_du\_lock"
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Créé un lock "test" ;
|
||||
\item Supprimé le lock "test".
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Valeur d'une variable}
|
||||
\begin{itemize}
|
||||
\item CreoleGet nom\_variable
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\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{Modifier la valeur}
|
||||
\begin{itemize}
|
||||
\item CreoleSet nom\_variable valeur ;
|
||||
\item Pour une liste : CreoleSet nom\_variable """valeur1
|
||||
\item valeur2""" ;
|
||||
\item attention, ne peut changer la longueur de esclave.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Modifier la valeur de la variable de vm\_swappiness à 10 ;
|
||||
\item modifier ubuntu\_update\_mirrors à "eole.ac-dijon.fr inconnu.lan"
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
14
old_modules_EOLE_envole/tronc-commun-2/programme/contenu.tex
Normal file
14
old_modules_EOLE_envole/tronc-commun-2/programme/contenu.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\begin{itemize}
|
||||
\item Personnalisation du serveur
|
||||
\begin{itemize}
|
||||
\item Patch
|
||||
\item Dictionnaires locaux
|
||||
\item Template Creole
|
||||
\end{itemize}
|
||||
\item Application Zéphir
|
||||
\begin{itemize}
|
||||
\item Personnalisation d'un serveur
|
||||
\item Variante
|
||||
\item Script Zéphir
|
||||
\end{itemize}
|
||||
\end{itemize}
|
@ -0,0 +1 @@
|
||||
1 jour.
|
@ -0,0 +1 @@
|
||||
L'appropriation des connaissances est contrôlée par des travaux pratiques durant la formation.
|
@ -0,0 +1,4 @@
|
||||
\begin{itemize}
|
||||
\item une salle de formation équipée d'ordinateurs avec infrasctructure de démonstration pour les travaux pratiques ;
|
||||
\item un formateur avec l'expérience de l'installation et de la maintenance des solutions présentées.
|
||||
\end{itemize}
|
@ -0,0 +1 @@
|
||||
Le participant à la formation est autonome pour l'installation, la personnalisation, l'administration des serveurs, l'utilisation de Zéphir et la recherche d'informations en vue de résoudre les incidents.
|
@ -0,0 +1 @@
|
||||
Familiarité avec le système d'exploitation GNU/Linux et le shell.
|
@ -0,0 +1,56 @@
|
||||
\documentclass[a4paper,11pt]{report}
|
||||
\input{styles/preambule}
|
||||
|
||||
\renewcommand{\maketitle}{
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.3]{"inc/logo"}
|
||||
\end{center}
|
||||
\vspace{0.5cm}
|
||||
|
||||
\begin{flushleft}
|
||||
\textbf{\Huge \cadolesfont\textcolor{CadolesBlue}{\@title}}
|
||||
\end{flushleft}
|
||||
\begin{center}
|
||||
\color{CadolesBlue}\TitleRule
|
||||
\end{center}
|
||||
\begin{flushright}
|
||||
\vspace{-1.5ex}
|
||||
\textbf{\huge \cadolesfont\textcolor{DarkGrey}{\formation}}
|
||||
\end{flushright}
|
||||
\vspace{1.5cm}
|
||||
}
|
||||
|
||||
% TITRE DU DOCUMENT !
|
||||
\title{Programme de Formation}
|
||||
|
||||
\newcommand{\departement}{Cadoles Formations}
|
||||
\newcommand{\numeroversion}{0.0.1}
|
||||
\newcommand{\adresse}{2 bis, Cours Fleury }
|
||||
\newcommand{\codepostal}{21000 }
|
||||
\newcommand{\ville}{Dijon }
|
||||
\newcommand{\telephone}{Tél : 03 73 27 02 86 }
|
||||
\newcommand{\fax}{Fax : 09 72 29 61 11}
|
||||
\newcommand{\siteweb}{Site : http://www.cadoles.com/}
|
||||
\newcommand{\formateur}{Emmanuel Garette}
|
||||
\newcommand{\formation}{Amon-Sphynx}
|
||||
\newcommand{\dossier}{modules_EOLE_envole/programme/amon-sphynx}
|
||||
\author{Philippe Caseiro}
|
||||
|
||||
%\date{}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\section{Public visé}
|
||||
\input{dossier/public.tex}
|
||||
\section{Pré-requis}
|
||||
\input{dossier/prerequis.tex}
|
||||
\section{Objectifs de la formation}
|
||||
\input{dossier/objectifs.tex}
|
||||
\section{Contenu de la formation}
|
||||
\input{dossier/contenu.tex}
|
||||
\section{Moyens pédagogiques, techniques et d'encadrement}
|
||||
\input{dossier/moyens.tex}
|
||||
\section{Évaluation des acquis}
|
||||
\input{dossier/evaluation.tex}
|
||||
\end{document}
|
||||
|
@ -0,0 +1 @@
|
||||
La formation vise toute personne ayant en charge des tâches d'administration sur des serveurs équipés des modules EOLE.
|
Reference in New Issue
Block a user