mise à jour de la formation pour 2.6

This commit is contained in:
Emmanuel Garette 2016-04-20 10:44:44 +02:00 committed by Benjamin Bohard
parent d23f750963
commit 180780bfb3
41 changed files with 985 additions and 449 deletions

View File

@ -101,6 +101,7 @@
%\include{modules_EOLE_envole/amon/00-nouveautes}
%\include{modules_EOLE_envole/sphynx/00-nouveautes}
\include{modules_EOLE_envole/commun/01-nouveaute24}
\include{modules_EOLE_envole/commun/01-nouveaute25}
\section{Les quatre phases}
\begin{frame}{Plan}
@ -117,7 +118,8 @@
\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs}
\include{modules_EOLE_envole/amon/00-virtualbox}
\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs-pratique}
%\include{modules_EOLE_envole/commun/02-quatre_phases-pratique}
\include{modules_EOLE_envole/commun/02-gen_config}
\include{modules_EOLE_envole/commun/02-quatre_phases-pratique}
\section{Fonctions de base d'Amon}
\begin{frame}{Plan}

View File

@ -1,11 +1,10 @@
\begin{frame}
\frametitle{AmonEcole}
\begin{itemize}
\item AmonEcole, solution de conteneurs cumulant les fonctionnalités de différents modules :
\item AmonEcole, solution de conteneurs cumulant les fonctionnalités de :
\begin{itemize}
\item AmonEcole : mélange des fonctionnalités Amon et Scribe ;
\item AmonEcole+ : idem avec les fonctionnalités Eclair en plus.
\item AmonHorus : mélange des fonctionnalités Amon et Horus.
\item Amon,
\item Scribe.
\end{itemize}
\end{itemize}
\end{frame}

View File

@ -1,8 +1,9 @@
\begin{frame}
\frametitle{Nouveautés 2.4}
\begin{itemize}
\item Réorganisation reconfigure/instance ;
\item fichier de configuration toujours /etc/eole/config.eol ;
\item Basé sur la distribution Precise Pangolin (12.04) ;
\item support jusqu'en 2017 ;
\item réorganisation reconfigure/instance ;
\item nouveau cœur : tiramisu ;
\item plus d'informations dans les dictionnaires ;
\item firewall :
@ -26,19 +27,11 @@
\end{frame}
\begin{frame}
\frametitle{Modalités de distribution des versions 2.4.x}
Les versions 2.4.x sont distribuées selon les règles standards :
\begin{itemize}
\item les mises à jour fonctionnelles impliquent une montée de version ;
\item les versions stables n'ont que des mises à jour de sécurité et des correctifs de dysfonctionnements bloquants ;
\item les paquets sont disponibles à l'adresse http://eole.ac-dijon.fr
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Arborescence spécifique aux 2.4.x}
\begin{itemize}
\item /etc/eole/config.eol ;
\item /usr/share/eole/sbin.
\end{itemize}
\frametitle{Nouveautés 2.4}
\begin{itemize}
\item Plus de mise à jour minimum/complète mais différentes releases sont proposées ;
\item les paquets sont disponibles à l'adresse http://eole.ac-dijon.fr ;
\item nouveau format du fichier /etc/eole/config.eol ;
\item nouvelle sous arborescence : /usr/share/eole/sbin.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,16 @@
\begin{frame}
\frametitle{Nouveautés 2.5}
\begin{itemize}
\item Basé sur la distribution Trusty Tahr (14.04) ;
\item support jusqu'en 2019 ;
\item peu de changement dans le coeur ;
\item possibilité de partitionnement manuel ;
\item à partir de 2.5.2 : mot de passe généré à la 1er instance ;
\item quelques changement de logiciel :
\begin{itemize}
\item Bacula => Bareos,
\item Dansguardian => e2guardian.
\end{itemize}
\end{itemize}
\end{frame}

View File

@ -0,0 +1,47 @@
\begin{frame}
\frametitle{Configuration autonome}
\begin{itemize}
\item Présentation de l'interface :
\begin{itemize}
\item accessible après instanciation sur le port 7000 (si autorisé),
\item nécessite une authentification,
\item barre de menu,
\item les familles,
\item la partie centrale,
\end{itemize}
\item les modes :
\begin{itemize}
\item basique,
\item normal,
\item expert,
\item assitant,
\item debug.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Configuration autonome}
\begin{itemize}
\item Ouverture/enregistrement :
\begin{itemize}
\item ne peut plus choisir le nom du fichier "config.eol",
\item possibilité d'importer/exporter un fichier (astuce permet de déverouiller toutes les variables),
\item page des variables obligatoires non renseignées,
\item visualisation des différences avant l'enregistrement,
\item enregistrement dans le fichier "config.eol" ;
\end{itemize}
\item les variables :
\begin{itemize}
\item Les variables typées (caractère, chiffre, ...),
\item les variables par défaut/modifié,
\item les utilisateurs,
\item les variables obligatoires,
\item les variables calculées,
\item les variables verrouillées automatiquement,
\item les variables sauvegardées automatiquement,
\item les variables multi,
\item les variables groupées,
\item les variables avec choix (imposés ou ouverts)
\end{itemize}
\end{itemize}
\end{frame}

View File

@ -1,32 +1,15 @@
\begin{frame}
\frametitle{Pratique : configuration autonome}
\frametitle{Pratique}
\begin{itemize}
\item Informations utiles :
\item Configurer le serveur via la commande gen\_config ;
\item informations utiles :
\begin{itemize}
\item Adresse ip de la carte eth0,
\item Passerelle,
\item DNS : DNS de la machine hôte ;
\end{itemize}
\item lancer \commande{gen\_config} ;
\item présentation de l'interface :
\begin{itemize}
\item barre de menu,
\item les onglets,
\item la partie centrale,
\item validation ;
\end{itemize}
\item configurer le serveur.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Instancier :
\begin{itemize}
\item \commande{instance <fichier>.eol} sur 2.3 ;
\item \commande{instance} sur 2.4.
\end{itemize}
\item désactiver l'anti-virus ;
\item instancier le serveur via la commande instance.
\end{itemize}
\end{frame}

View File

@ -5,10 +5,10 @@
\begin{enumerate}
\item démarrer sur l'iso téléchargée sur le site d'EOLE (gravée sur CD-ROM ou copiée sur clé USB),
\item sélectionner le module à installer parmi ceux proposés et valider,
\item configurer le partitionnement pour Eolebase ou en présence de 2 disques,
\item installer manuellement des modules noyaux DKMS si nécessaire,
\item possibilité de partitionner le serveur (obligatoire sur eolebase et avec serveur ayant plus d'un disque),
% \item installer manuellement des modules noyaux DKMS si nécessaire,
\item valider le bouton \emph{continuer} à la fin de l'installation,
\item ouvrir une session avec l'utilisateur \emph{root} et le mot de passe par défaut \emph{\$eole\&123456\$},
\item ouvrir une session avec l'utilisateur \emph{root} et le mot de passe par défaut présenté à l'écran,
\item en mode conteneurs, générer les conteneurs avec la commande \emph{gen\_conteneurs}.
\end{enumerate}
\end{itemize}
@ -22,7 +22,7 @@
\begin{itemize}
\item lancer la commande \commande{gen\_config},
\item configurer le serveur,
\item sauvegarder le fichier zephir.eol ;
\item sauvegarder le fichier ;
\end{itemize}
\item en mode Zéphir :
\begin{itemize}
@ -36,10 +36,8 @@
\begin{frame}
\frametitle{La phase d'instanciation}
\begin{itemize}
\item Lancer la commande \commande{instance <fichier>.eol} en 2.3 ;
\item ou lancer la commande \commande{instance} en 2.4 ;
\item Lancer la commande \commande{instance} ;
\item renseigner les mots de passe ;
\item enregistrement dans la base \og{}matériel\fg{} ;
\item mise à jour ;
\item éventuellement redémarrage.
\end{itemize}

View File

@ -1,13 +1,27 @@
\begin{frame}
\frametitle{Version/release et dépôt}
\begin{itemize}
\item La version : correspond à la version du socle de base (version d'Ubuntu) ;
\item la release :
\begin{itemize}
\item reçoit les mises à jour de sécurités,
\item reçoit les corrections des dysfonctionnements critiques,
\item mais chaque release à un niveau fonctionnel différent ;
\end{itemize}
\item les erratas : https://dev-eole.ac-dijon.fr/projects/modules-eole/wiki/Errata ;
\item les dépôts :
\begin{itemize}
\item les releases stables,
\item les releases candidates,
\item la version de développement (future release).
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Les mises à jour}
\begin{itemize}
\item Les différents dépôts :
\begin{itemize}
\item la version stable (déclinée en minimum et complète pour la version 2.3 uniquement),
\item la version candidate,
\item la version dev ;
\end{itemize}
\item procédure :
\item Procédure :
\begin{itemize}
\item par l'EAD,
\item par l'interface semi-graphique,
@ -16,19 +30,22 @@
\begin{itemize}
\item \commande{Query-Auto} : liste les mises à jour,
\item \commande{Maj-Auto} : lance la mise à jour sans question,
\item \commande{Maj-CD} : mise à jour grâce à un CD,
\item \commande{Query-Cd} : liste les mises à jour sur un CD,
\item \commande{Maj-Cd} : mise à jour grâce à un CD,
\item \commande{Maj-Release} : mise à jour vers une release supérieure,
\item \commande{Upgrade-Auto} : mise à jour vers une version supérieure,
\end{itemize}
\item mise à jour automatique : de 01h à 6h un jour par semaine.
\item automatiquement via une tâche hebdomadaire "post" sauvegarde de eole-schedule.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Mise à jour via un CD/clef USB}
Le but est de pouvoir mettre à jour un serveur sans utiliser la bande passante de l'établissement.
\begin{itemize}
\item Création du cache dans l'académie : \commande{Maj-Auto --download} ;
\item copie de /var/cache/apt/archives/*.deb sur le support ;
\item Création du cache dans l'académie : \commande{Maj-Auto --download} ;
\item copie de /var/cache/apt/archives/*.deb sur un support amovible ;
\item sur le serveur en établissement, copier le contenu du support dans /var/cache/apt/archives/ ;
\item lancer \commande{Maj-Auto}.
\end{itemize}

View File

@ -1,8 +1,8 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un reconfigure ;
\item lancer un diagnostic ;
\item lancer un diagnostic étendu.
\item Faire un \commande{reconfigure} ;
\item lancer un \commande{diagnostic} ;
\item lancer un \commande{diagnostic} étendu.
\end{itemize}
\end{frame}

View File

@ -9,18 +9,14 @@ if fonctionseole.init_proc('PERSO') == False:
fonctionseole.zephir("MSG" , "procédure supprimer_fichier bloquée par zephir", "PERSO")
sys.exit(1)
fonctionseole.zephir("INIT" , "script test_perso en cours d'execution", "PERSO")
if is_locked(['reconfigure']):
fonctionseole.zephir("ERR" , "supprimer_fichier stoppé : reconfigure en cours", "PERSO")
sys.exit(1)
fonctionseole.zephir("INIT" , "script supprimer_fichier en cours d'execution", "PERSO")
try:
filename = sys.argv[1]
fonctionseole.zephir("MSG" , "supprimer_fichier lancé avec l'argument %s" % filename, "PERSO")
fonctionseole.zephir("MSG" , "supprimer_fichier lancé avec l'argument {}".format(filename), "PERSO")
sudo_script('supprimer_fichier_sudo.zephir %s' % filename)
except:
fonctionseole.zephir("ERR" , "supprimer_fichier lancé sans argument", "PERSO")
except Exception, err:
fonctionseole.zephir("ERR" , "supprimer_fichier a généré une erreur {}".format(err), "PERSO")
sys.exit(1)
fonctionseole.zephir("FIN" , "supprimer_fichier : OK", "PERSO")
fonctionseole.zephir("FIN" , "supprimer_fichier {}: OK".format(filename), "PERSO")

View File

@ -1,4 +1,4 @@
#!/bin/bash
[ -f $1 ] && rm -f $1
[ -f "$1" ] && rm -f "$1"

Binary file not shown.

View File

@ -4,6 +4,9 @@ Installer :
Installer Scribe1
Ne pas supprimer le persistance-net
Télécharger Xming/PUTTY/WinSCP
Télécharger le paquet ircd-irc2
Durée de la formation 3 jours :
1 jour : TC1 en démarrant les commandes systèmes
2 jour : finir TC1

View File

@ -0,0 +1,316 @@
\documentclass{beamer}
%\usertheme{Madrid}
\setbeamercovered{transparent}
\setcounter{tocdepth}{2}
\usepackage[french]{babel}
%\usepackage[utf8,utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xunicode} %Unicode extras!
\usepackage{xltxtra} %Fixes
\setmainfont{CaviarDreams}
\usepackage{multicol}
%\usepackage{colortbtl}
\usepackage{graphicx}
\usepackage{verbatim} % Pour l'insertion de fichier en mode verbatim
\usepackage{ucs}
\usepackage{tabto}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{hyperxmp}
\hypersetup{%
colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone,
pdftitle={Tronc commun 1},
pdfkeywords={distribution, GNU, linux, eole, éducation, nationale, ubuntu},
pdfauthor={Emmanuel Garette},
pdflang={fr-FR},
pdfcopyright={Copyright © 2011-2014 Cadoles}, % Nécessite XeTeX
pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/},
}
%\usecolortheme{crane}
\definecolor{UniBlue}{RGB}{83,121,180}
\definecolor{CleanWhite}{RGB}{255,255,255}
\definecolor{DirtyWhite}{RGB}{105,105,105}
\setbeamercolor{title}{fg=UniBlue}
\setbeamercolor{frametitle}{fg=CleanWhite}
\setbeamercolor{structure}{fg=UniBlue}
\newcommand{\eolesmall}{
\begin{minipage}[c]{0.10\textwidth}
\includegraphics[width=1cm]{beamer-skel/img/logo-eole.png}
\end{minipage}
}
\newcommand{\eolebig}{\includegraphics[width=2cm]{beamer-skel/img/logo-eole.png}}
\newcommand{\eolefull}{\includegraphics{beamer-skel/img/logo-eole.png}}
%\setmonofont[Scale=0.86]{Andale Mono}
%\usepackage{colortab}
\newcommand{\commande}[1]{\texttt{#1}}
\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}}
\title[]{Formation Zéphir - Personnalisation d'un module}
\subtitle{Académie de Rennes}
\author[Equipe Auteur]{Emmanuel Garette}
\institute[Cadoles]{\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\logo{
% \includegraphics[width=1cm]{beamer-skel/img/logo-ecologie.png}~
\hspace{120pt}
\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}~
\hspace{113pt}
\includegraphics[width=1cm]{beamer-skel/img/logo_en.jpg}~
}
\begin{document}
% Page de titre
\begin{frame}
\titlepage
\end{frame}
\section{Introduction}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/00-intro}
%\include{modules_EOLE_envole/commun/01-nouveaute23}
\include{modules_EOLE_envole/commun/01-nouveaute24}
\include{modules_EOLE_envole/commun/01-nouveaute25}
\section{Panorama des modules}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/amon/00-description}
\include{modules_EOLE_envole/sphynx/00-description}
\include{modules_EOLE_envole/scribe/00-description}
\include{modules_EOLE_envole/horus/00-description}
\include{modules_EOLE_envole/amonecole/00-description}
\include{modules_EOLE_envole/tronc-commun-1/00-panorama-module}
\section{Les quatre phases}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/02-quatre_phases}
\include{modules_EOLE_envole/scribe/00-virtualbox}
\include{modules_EOLE_envole/commun/02-gen_config}
\include{modules_EOLE_envole/commun/02-quatre_phases-pratique}
%\include{modules_EOLE_envole/tronc-commun-1/01-config-texte}
\section{Administration commune}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/02-instance-reconfigure}
\include{modules_EOLE_envole/commun/03-mise-a-jour}
\include{modules_EOLE_envole/commun/04-diagnose}
\include{modules_EOLE_envole/commun/04-diagnose-pratique}
%\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs}
%\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs-pratique}
\include{modules_EOLE_envole/tronc-commun-1/06-firewall}
\include{modules_EOLE_envole/tronc-commun-1/06-schedule}
\include{modules_EOLE_envole/tronc-commun-1/06-zpratique}
\include{modules_EOLE_envole/tronc-commun-1/07-onduleur}
\include{modules_EOLE_envole/tronc-commun-1/07-onduleur-pratique}
\include{modules_EOLE_envole/tronc-commun-1/22-commande-distance}
\include{modules_EOLE_envole/tronc-commun-1/08-trouver}
%\section{Interfaces d'administration EOLE}
%\begin{frame}{Plan}
% \begin{columns}[t]
% \begin{column}{5cm}
% \tableofcontents[sections={1-6},currentsection, hideothersubsections]
% \end{column}
% \begin{column}{5cm}
% \tableofcontents[sections={7-12},currentsection,hideothersubsections]
% \end{column}
% \end{columns}
%\end{frame}
%\include{modules_EOLE_envole/tronc-commun-1/30-ead}
%\include{modules_EOLE_envole/tronc-commun-1/31-interface-semi-graphique}
\section{Application Zéphir}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-1/10-application-zephir}
%\section{GNU/Linux}
%\begin{frame}{Plan}
% \begin{columns}[t]
% \begin{column}{5cm}
% \tableofcontents[sections={1-6},currentsection, hideothersubsections]
% \end{column}
% \begin{column}{5cm}
% \tableofcontents[sections={7-12},currentsection,hideothersubsections]
% \end{column}
% \end{columns}
%\end{frame}
%\include{modules_EOLE_envole/tronc-commun-1/20-gnu_linux}
%\include{modules_EOLE_envole/tronc-commun-1/20-tcpdump-tshark}
\include{modules_EOLE_envole/tronc-commun-1/11-application-zephir2}
\section{Personnalisation du serveur}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-1/21-lire-ecrire}
\include{modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole}
\include{modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole2}
\include{modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure}
\include{modules_EOLE_envole/tronc-commun-2/30-api_bash}
\include{modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure-pratique}
\include{modules_EOLE_envole/tronc-commun-2/04-diagnose}
\begin{frame}
\frametitle{API Python}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-2/20-api}
%\include{modules_EOLE_envole/tronc-commun-2/06-montage-conteneur}
%\include{modules_EOLE_envole/tronc-commun-2/07-eole-firewall}
\include{modules_EOLE_envole/tronc-commun-2/08-schedule}
%\include{modules_EOLE_envole/tronc-commun-2/09-host}
%\include{modules_EOLE_envole/tronc-commun-2/11-mysql}
%\include{modules_EOLE_envole/tronc-commun-2/12-interface}
%\include{modules_EOLE_envole/tronc-commun-2/13-disknod}
%\include{modules_EOLE_envole/tronc-commun-2/14-sso}
\include{modules_EOLE_envole/tronc-commun-2/15-script-ead}
\include{modules_EOLE_envole/tronc-commun-2/16-sauvegarde}
%\include{modules_EOLE_envole/tronc-commun-2/17-conteneur_groupe_conteneur}
%\include{modules_EOLE_envole/tronc-commun-2/18-cert}
\section{Personnalisation et Zéphir}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-2/02-zephir}
\section{gen\_config et Zéphir}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Synchronisation}
\begin{itemize}
\item Il est possible de se connecter sur gen\_config avec un compte Zéphir ;
\item différence entre fichier local et distant.
\end{itemize}
\end{frame}
\section{Les scripts Zéphir}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-2/03-zephir_script}
\section{La migration Zéphir}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
%FIXME a revoir !
\include{modules_EOLE_envole/tronc-commun-1/99-migration-zephir}
\subject{Talks}
\begin{frame}
\frametitle{Licence}
Cette œuvre est mise à disposition sous licence \href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{\textsc{cc-by-nc-sa-2.0}}
\begin{itemize}
\item Attribution
\item Pas dUtilisation Commerciale
\item Partage dans les Mêmes Conditions 2.0
\item France
\end{itemize}
Pour voir une copie de cette licence, visitez
\href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}
ou écrivez à Creative Commons, 444 Castro Street, Suite 900,
Mountain View, California, 94041, USA.
\end{frame}
\end{document}
% A ajouter :
%lancement gen_config sur le serveur avec récupération config.eol du Zéphir

View File

@ -93,8 +93,9 @@
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/00-intro}
\include{modules_EOLE_envole/commun/01-nouveaute23}
%\include{modules_EOLE_envole/commun/01-nouveaute23}
\include{modules_EOLE_envole/commun/01-nouveaute24}
\include{modules_EOLE_envole/commun/01-nouveaute25}
\include{modules_EOLE_envole/scribe/00-description}
\include{modules_EOLE_envole/horus/00-description}
@ -111,6 +112,7 @@
\end{frame}
\include{modules_EOLE_envole/commun/02-quatre_phases}
\include{modules_EOLE_envole/scribe/00-virtualbox}
\include{modules_EOLE_envole/commun/02-gen_config}
\include{modules_EOLE_envole/commun/02-quatre_phases-pratique}
\include{modules_EOLE_envole/commun/02-instance-reconfigure}
\include{modules_EOLE_envole/commun/03-mise-a-jour}

View File

@ -1,7 +1,8 @@
\begin{frame}
\frametitle{Utilisation de VirtualBox}
\begin{itemize}
\item Choisir "Réseau privé hôte" dans le "Mode d'accès réseau" dans Préférence/Réseau/Carte 1 ;
\item Ajouter l'image Scribe ;
\item choisir "Réseau privé hôte" dans le "Mode d'accès réseau" dans Préférence/Réseau/Carte 1 ;
\item faire un instantané.
\end{itemize}
\end{frame}

View File

@ -47,9 +47,9 @@
\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}}
\title[]{Formation tronc commun 1}
\subtitle{Vice-rectorat de la Nouvelle-Calédonie}
\subtitle{XXX CLIENT XXX}
\author[Equipe Auteur]{Philippe Caseiro}
\author[Equipe Auteur]{XXX AUTEUR XXX}
\institute[Cadoles]{\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}}
@ -91,8 +91,9 @@
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/00-intro}
\include{modules_EOLE_envole/commun/01-nouveaute23}
%\include{modules_EOLE_envole/commun/01-nouveaute23}
\include{modules_EOLE_envole/commun/01-nouveaute24}
\include{modules_EOLE_envole/commun/01-nouveaute25}
\section{Panorama des modules}
\begin{frame}{Plan}
\begin{columns}[t]
@ -124,6 +125,7 @@
\end{frame}
\include{modules_EOLE_envole/commun/02-quatre_phases}
\include{modules_EOLE_envole/scribe/00-virtualbox}
\include{modules_EOLE_envole/commun/02-gen_config}
\include{modules_EOLE_envole/commun/02-quatre_phases-pratique}
%\include{modules_EOLE_envole/tronc-commun-1/01-config-texte}

View File

@ -1,36 +1,37 @@
\begin{frame}
\frametitle{Eclair}
\begin{itemize}
\item Eclair, serveur 2.3 de clients légers sous GNU/Linux :
\begin{itemize}
\item serveur de clients légers ;
\item compatible partage de fichiers Scribe et Horus ;
\item support de Gaspacho.
\end{itemize}
\end{itemize}
\end{frame}
%\begin{frame}
% \frametitle{Eclair}
% \begin{itemize}
% \item Eclair, serveur 2.3 de clients légers sous GNU/Linux :
% \begin{itemize}
% \item serveur de clients légers ;
% \item compatible partage de fichiers Scribe et Horus ;
% \item support de Gaspacho.
% \end{itemize}
% \end{itemize}
%\end{frame}
\begin{frame}
\frametitle{Zéphir/Sentinelle}
%\frametitle{Zéphir/Sentinelle}
\frametitle{Zéphir}
\begin{itemize}
\item Zéphir, gestion du parc des serveurs EOLE :
\begin{itemize}
\item déploiement et gestion d'un parc de serveurs,
\item gestion de la configuration des serveurs,
\item surveillance et lancement d'actions à distance ;
\end{itemize}
\item Sentinelle, outils graphiques de supervision des serveurs (couplé à Zéphir) :
\begin{itemize}
\item récupération des statistiques ;
\item affichage sélectif (avec filtre, ...) ;
\item lancement d'actions ;
\end{itemize}
\item ZéphirLog, concentrateur de fichiers journaux :
\begin{itemize}
\item remontée des logs ;
\item stockage des logs ;
\item archivage des logs.
\item surveillance et lancement d'actions à distance.
\end{itemize}
% \item Sentinelle, outils graphiques de supervision des serveurs (couplé à Zéphir) :
% \begin{itemize}
% \item récupération des statistiques ;
% \item affichage sélectif (avec filtre, ...) ;
% \item lancement d'actions ;
% \end{itemize}
% \item ZéphirLog, concentrateur de fichiers journaux :
% \begin{itemize}
% \item remontée des logs ;
% \item stockage des logs ;
% \item archivage des logs.
% \end{itemize}
\end{itemize}
\end{frame}

View File

@ -1,10 +1,11 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item vérifier les règles ;
\item Vérifier les règles ;
\item ouvrir le firewall et revérifier les règles ;
\item refermer le firewall ;
\item lister les tâches du schedule, désactiver une tâche et la réactiver.
\item lister les tâches du schedule, désactiver une tâche et la réactiver ;
\item activer la sauvegarde pour cette nuit.
\end{itemize}
\end{frame}

View File

@ -1,6 +1,24 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Regarder la configuration de l'onduleur dans gen\_config.
\item Configurer de l'onduleur dans gen\_config :
\begin{itemize}
\item onglet "services", activer NUT,
\item onglet "onduleur ajouter un nouvel onduleur maitre :
\begin{itemize}
\item Nom de l'onduleur : dummy
\item Port de l'onduleur : dummy.dev
\item Pilote : dummy-ups
\end{itemize}
\end{itemize}
\item enregistrer la configuration
\item créer le fichier : /etc/nut/dummy.dev avec :
\begin{itemize}
\item battery.charge: 50
\item ups.status: OL
\item TIMER 10
\item ups.status: OB
\end{itemize}
\item reconfigurer, toutes les 10 secondes le status change d'état.
\end{itemize}
\end{frame}

View File

@ -1,8 +1,8 @@
\begin{frame}
\frametitle{Onduleur}
\begin{itemize}
\item Gestion des onduleurs (NUT) ;
\item maître - esclave ;
\item visible dans les agents.
\item Gestion des onduleurs ;
\item utilisation du logiciel libre NUT ;
\item maître - esclave.
\end{itemize}
\end{frame}

View File

@ -4,11 +4,11 @@
\item Utilisation d'un serveur LDAP local ou distant ;
\item LDAP local : scripts (/usr/share/zephir/utils) :
\begin{itemize}
\item add\_user.py ;
\item del\_user.py ;
\item list\_users.py.
\item add\_user.py,
\item del\_user.py,
\item list\_users.py ;
\end{itemize}
\item Un utilisateur = des affectations.
\item un utilisateur = des affectations.
\end{itemize}
\end{frame}
@ -16,8 +16,8 @@
\frametitle{Modules, établissements et serveurs}
\begin{itemize}
\item Module : distribution spécifique + variantes ;
\item Établissement scolaire : lieu physique ;
\item Serveur : un module dans un établissement.
\item établissement scolaire : lieu physique ;
\item serveur : un module dans un établissement.
\end{itemize}
\end{frame}
@ -56,7 +56,7 @@
% \item "Sauver sur Zéphir" ;
% \end{itemize}
% \item enregistrement Zéphir ;
\item instanciation du serveur en remontant la configuration.
\item enregistrement du serveur sur le Zéphir en remontant la configuration.
\end{itemize}
\end{frame}
@ -72,6 +72,7 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Lancer une sauvegarde du Zéphir.
\item Lancer une sauvegarde du Zéphir ;
\item restaurer le serveur avec la sauvegarde réalisée.
\end{itemize}
\end{frame}

View File

@ -10,58 +10,16 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Configurer l'utilisateur "eole" ;
\item Créer et configurer l'utilisateur "formation" ;
\item créer une clef SSH :
\begin{enumerate}
\item \emph{ssh-keygen -t rsa},
\item \emph{ssh-keygen -t rsa},
\item récupérer le fichier ~/.ssh/id\_rsa.pub.
\end{enumerate}
\item ajouter la clef à l'utilisateur.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Surveillance des serveurs}
\begin{itemize}
\item Sur la page d'accueil ;
\item sur chaque serveur : page Etat ;
\item surveillance des serveurs ;
\item état d'un groupe de serveurs.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Alertes}
\begin{itemize}
\item Envoi d'un mail en cas de détection d'un problème :
\begin{itemize}
\item remontée par le serveur d'une erreur ;
\item un serveur n'a pas contacté Zéphir ;
\item une opération s'est mal déroulée.
\end{itemize}
\item À la sélection d'un groupe enregistré : cocher "surveiller ce groupe"
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Actions}
\begin{itemize}
\item Zéphir agit à distance par des actions ;
\item elles sont mises en file d'attente ;
\item c'est le serveur qui se connecte au Zéphir ;
\item exemple d'action : envoi de la configuration, mise à jour, sauvegarde de l'état actuel du serveur.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Lancer l'action de remontée de la configuration ;
\item forcer la synchronisation : synchro\_zephir ;
\item restaurer le serveur dans VirtualBox et redescendre la configuration.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Groupe de serveurs}
\begin{itemize}
@ -81,3 +39,51 @@
\item autoriser l'utilisateur à se connecter par clef SSH.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Surveillance des serveurs}
\begin{itemize}
\item Sur la page d'accueil ;
\item sur chaque serveur : page Etat ;
\item surveillance des serveurs ;
\item état d'un groupe de serveurs.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Alertes}
\begin{itemize}
\item Envoi d'un mail en cas de détection d'un problème :
\begin{itemize}
\item remontée par le serveur d'une erreur,
\item un serveur n'a pas contacté Zéphir,
\item une opération s'est mal déroulée ;
\end{itemize}
\item l'utilisateur doit avoir configuré son adresse mail ;
\item à la sélection d'un groupe enregistré : cocher "surveiller ce groupe".
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
Surveiller un groupe.
\end{frame}
\begin{frame}
\frametitle{Actions}
\begin{itemize}
\item Zéphir agit à distance par des actions ;
\item elles sont mises en file d'attente ;
\item c'est le serveur qui se connecte au Zéphir ;
\item exemple d'action : envoi de la configuration, mise à jour, sauvegarde de l'état actuel du serveur.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Lancer l'action de remontée de la configuration ;
\item forcer la synchronisation : synchro\_zephir ;
\item restaurer le serveur dans VirtualBox et redescendre la configuration.
\end{itemize}
\end{frame}

View File

@ -1,7 +1,8 @@
\begin{frame}
\frametitle{Activer la connexion ssh}
\frametitle{Commande distante via SSH}
\begin{itemize}
\item Possibilité d'interdire la connexion ssh à root ;
\item Protocole de communication sécurisée ;
\item possibilité d'interdire la connexion ssh à root ;
\item possibilité d'interdire la connexion sans clef rsa ;
\item choix des adresses autorisées.
\end{itemize}
@ -10,10 +11,9 @@
\begin{frame}
\frametitle{Utiliser ssh depuis GNU/Linux}
\begin{itemize}
\item Protocole de communication sécurisée ;
\item ouvrir une connexion : ssh utilisateur@ip\_serveur ;
\item ouvrir une connexion pour commande graphique : ssh -X utilisateur@ip\_serveur ;
\item transfert de fichier : scp fichier.txt utilisateur@ip\_serveur:.
\item Ouvrir une connexion : \commande{ssh utilisateur@ip\_serveur} ;
\item ouvrir une connexion pour commande graphique : \commande{ssh -X utilisateur@ip\_serveur} ;
\item transfert de fichier : \commande{scp fichier.txt utilisateur@ip\_serveur:}.
\end{itemize}
\end{frame}
@ -37,10 +37,10 @@
\begin{itemize}
\item Si la connexion se coupe, impossible de récupérer la session ;
\item screen permet de détacher un shell et de le récupérer ;
\item pour le lancer : \emph{screen} ;
\item pour le lancer : \commande{screen} ;
\item pour détacher : \emph{ctrl a d} ;
\item attention déconnexion automatique : \emph{unset TMOUT} ;
\item pour reprendre un screen : \emph{screen -rd}.
\item attention déconnexion automatique : \commande{unset TMOUT} ;
\item pour reprendre un screen : \commande{screen -rd}.
\end{itemize}
\end{frame}
@ -50,8 +50,8 @@
\item Activer la connexion juste pour votre IP ;
\item se connecter sur le serveur en ssh ;
\item copier un fichier ;
\item lancer gen\_config à travers ssh ;
\item utiliser screen.
\item lancer \commande{gen\_config} à travers ssh ;
\item utiliser \commande{screen}.
\end{itemize}
\end{frame}

View File

@ -1,19 +1,31 @@
\section{Migration}
%\begin{frame}{Plan}
% \begin{columns}[t]
% \begin{column}{5cm}
% \tableofcontents[sections={1-6},currentsection, hideothersubsections]
% \end{column}
% \begin{column}{5cm}
% \tableofcontents[sections={7-12},currentsection,hideothersubsections]
% \end{column}
% \end{columns}
%\end{frame}
\begin{frame}
\frametitle{Préparation de la variante}
\begin{itemize}
\item Il faut créer une variante "équivalente" sur la nouvelle version ;
\item pour les modules compatibles entre version, un bouton "Import des données x.x.x" est disponible :
\begin{itemize}
\item dictionnaires locaux copiés,
\item variante copiée et déclarée équivalente,
\item valeurs par défaut copiées,
\item possibilité de relance ultérieur (copie les nouveaux dictionnaires) ;
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire une variante dans une version inférieure ;
\item migrer la variante dans la nouvelle version.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Migration de la configuration depuis Zéphir}
\begin{itemize}
\item Préparer à l'avance la configuration des serveurs à migrer ;
\item met à jour les informations en concervant l'identifiant ;
\item dictionnaire/template/patch personnalisée sont à migrer à la main ;
\item sur la page d'état d'un serveur : 'générer les données de migration' ;
\item choisir la variante à utiliser ;
\item formulaire de saisie ;
@ -22,18 +34,47 @@
\end{frame}
\begin{frame}
\frametitle{Migration Horus/Scribe 2.2 vers 2.3 et 2.4}
\frametitle{Page de suivi de la migration}
\begin{itemize}
\item Pas de migration automatique (problème mise à jour Ubuntu) ;
\item outils externes : ftp://eoleng.ac-dijon.fr/pub/Outils/migration/ : migration23.sh ;
\item Sur la page d'accueil "suivi de la migration" ;
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Migration avec réinstallation}
\begin{itemize}
\item Seule méthode possible pour Horus/Scribe 2.2 vers version supérieure ;
\item pas de migration automatique (problème mise à jour Ubuntu) ;
\item outils externes : ftp://eoleng.ac-dijon.fr/pub/Outils/migration/ : migration2X.sh ;
\item nécessite un disque distant/usb/local en ext3 ;
\item installer le module 2.3 ;
\item installer le module 2.X ;
\item conversion du fichier config.eol ;
\item instance du serveur ;
\item relancer le script.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Migration sans réinstallation}
\begin{itemize}
\item Utilisation du script Upgrade-Auto ;
\item migration du serveur dans le Zéphir en fin de procédure.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Migration Horus/Scribe 2.X.Y vers une release supérieure}
\begin{itemize}
\item Utilisation du script Maj-Release
\item
\item
\item
\item
\end{itemize}
\end{frame}
%%\begin{frame}
%% \frametitle{Pratique : utilisation de VirtualBox}
%% \begin{itemize}

View File

@ -145,6 +145,7 @@
%\end{frame}
%\include{modules_EOLE_envole/tronc-commun-2/04-diagnose}
%\include{modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure}
%\include{modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure-pratique}
%\include{modules_EOLE_envole/tronc-commun-2/06-montage-conteneur}
%\include{modules_EOLE_envole/tronc-commun-2/07-eole-firewall}
%\include{modules_EOLE_envole/tronc-commun-2/08-schedule}

View File

@ -17,109 +17,190 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item ClamAV à le paramètre suivant : LogFileMaxSize 2M ;
\item il faut la valeur 10M.
\item Modifié dans le fichier de configuration de proftpd.conf : UseReverseDNS de "off" à "on" ;
\item créé le patch.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Ajout de dictionnaires locaux}
\begin{itemize}
\item Permet d'ajouter des spécificités ou de nouveau template ;
\item les dictionnaires locaux sont dans /usr/share/eole/creole/dicos/local/ ;
\item les templates locaux sont dans /usr/share/eole/creole/distrib/ ;
\item un dictionnaire est un fichier XML Creole ;
\item un template utilise le langage de template Creole.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Syntaxe XML Creole}
\frametitle{Dictionnaire Creole}
\begin{itemize}
\item Entête XML : <?xml version="1.0" encoding="utf-8"?> ;
\item Première balise <creole></creole>
\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{Syntaxe XML Creole : conteneur}
\frametitle{CreoleLint}
\begin{itemize}
\item master : <files>, slave <containers><container name='\ldots' id='\ldots' groupe='\ldots'> ;
\item fichier template : <file name="\ldots" \ldots/> :
\begin{itemize}
\item name (obligatoire) : nom du fichier template ;
\item source : si le nom de fichier source est différent de la destination ;
\item mode, owner, group : droits sur fichier appliquer au fichier ;
\item mkdir : création du répertoire de destination si nécessaire.
\end{itemize}
\item service : <service method='service|upstart|apache'>\ldots</service> ;
\item package : <package>\ldots</package>.
\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{Syntaxe XML Creole : variable}
\frametitle{CreoleCat}
\begin{itemize}
\item Ensemble de famille et séparateur : <variables></variables> ;
\begin{itemize}
\item Famille de variables : <family name='' [mode=''] [hidden='']></family> :
\begin{itemize}
\item Les variables <variable name='' type='' description='' [multi='True'] [hidden='True']/> :
\item Les variables <variable name='' type='' description='' [multi='True'] [hidden='True']><value> ... </value></variable> :
\end{itemize}
\item Les séparateurs <separator></separator> :
\begin{itemize}
\item name : nom de variable en dessous du séparateur ;
\item description affiché à l'intérieur de la balise.
\end{itemize}
\end{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{Syntaxe XML Creole : contrainte}
\frametitle{Dictionnaire Creole : les paquets}
\begin{itemize}
\item Le contraintes : <constraints></constraints> : pour tester/remplir/grouper/conditionner des variables ;
\begin{itemize}
\item calcul automatique avec fonction personnalisé : <fill><param></param>...</fill> ;
\item calcul automatique non modifiable <auto></auto> ;
\item choix de réponse <check name='valid\_enum' target='var'><param>...</param></check> ;
\item cacher des variables suivant des contraintes <condition name='hidden\_if\_in|hidden\_if\_not\_in' source='var'>...</condition> :
\begin{itemize}
\item valeur de la variable testé : <param>...</param> ;
\item affecte <target type='family|filelist|servicelist|...'>nom</target> :
\end{itemize}
\item Lien entre variable : <group master='var'>...</group> :
\begin{itemize}
\item si le maître à une valeur, les autres aussi ;
\item si le maître est multi-évalué, les autres aussi ;
\item les esclaves : <slave></slave>.
\end{itemize}
\end{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{Syntaxe XML Creole : aide}
\begin{itemize}
\item Afficher de l'aide dans l'interface : <help></help>.
\end{itemize}
\frametitle{Dictionnaire Creole : les services}
\begin{itemize}
\item Services fonctionnent sur le maitre ou dans un conteneur ;
\item différentes méthodes : service, upstart ou apache.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Installer le paquet ircd-irc2 ;
\item ajouter un service ;
\item dans la famille "services" ajouter la variable "activate\_ircd" ayant pour valeur possible "oui" et "non" ;
\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 nebios, 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{Langague de template Creole}
\begin{itemize}
\item Variable Creole préfixé par \begin{semiverbatim}\%\%\end{semiverbatim}
\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}
@ -138,22 +219,7 @@
\begin{frame}
\frametitle{Pratique 1}
\begin{itemize}
\item Installer phpldapadmin ;
\item créer un dicos pour demander l'activation ou non (variable "activate\_phpldapadmin") ;
\item si oui, activer une nouvelle famille "phpldapadmin" ;
\item demander l'adresse IP (phpldapadmin\_host) et le nom du serveur (phpldapadmin\_name) ;
\item copier les templates /etc/phpldapadmin/config.php et /etc/phpldapadmin/apache.conf dans /usr/share/eole/creole/distrib/ ;
\item le template config.php sera renommé en phpldapadmin.php ;
\item si le nom n'est pas spécifié, le serveur : "Serveur LDAP" ;
\item tester sans reconfigurer : CreoleCat -o config.php /usr/share/eole/creole/distrib/phpldapadmin.php
\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}
\begin{frame}
\frametitle{Pratique 2}
\begin{itemize}
\item Ajouter la possibilité d'activer ou non le TLS ;
\item possibilité d'ajouter plusieurs serveurs.
\end{itemize}
\end{frame}

View File

@ -1,3 +1,33 @@
\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}
@ -11,20 +41,18 @@
\end{frame}
\begin{frame}
\frametitle{Existance d'une variable}
\frametitle{Pratique}
\begin{itemize}
\item Créé 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éer après.
\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{Caché multi-condition}
\frametitle{Existance d'une variable}
\begin{itemize}
\item Créé une variable "test\_xxxx" caché ;
\item ajouter une "auto" avec calcul "calc\_multi\_condition" ;
\item faire une condition "hidden\_if\_in" sur la variable.
\item Exemple : 01\_network.xml
\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}

View File

@ -1,15 +1,13 @@
\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 Liste des fichiers sauvegardés :
\begin{itemize}
\item dictionnaires additionnels,
\item fichier appartenant aux dictionnaires additionnels,
\item fichier spécifique (exemple généré par EAD),
\item les patches,
\item les paquets additionnels.
\end{itemize}
\end{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}

View File

@ -3,16 +3,14 @@
\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 ;
\item script commun : /usr/share/eole/diagnose/eole ;
\item script par service : /usr/share/eole/diagnose/module.
\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/share/eole/FonctionEoleNg :
\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) ;
@ -35,6 +33,6 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un fichier diagnose pour IRCD
\item Faire un fichier diagnose pour IRCD.
\end{itemize}
\end{frame}

View File

@ -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}

View File

@ -20,23 +20,20 @@
\begin{frame}
\frametitle{Script instance ou reconfigure}
\begin{itemize}
\item emplacement des scripts :
\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 templétisation et redémarrage des services,
\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 script bash ou python ;
\item premier argument : instance|reconfigure
\item doivent toujours retourner le code de sortie "0" sauf si problème.
\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}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un script qui créé le répertoire /tmp/repertoire ;
\item si le répertoire existe, proposer de le supprimer à l'instance.
\end{itemize}
\end{frame}

View File

@ -1,29 +0,0 @@
\begin{frame}
\frametitle{Règle eole-firewall}
\begin{itemize}
\item Nom du fichier : 00\_extremite1\_commentaire.fw
\item allow\_src() : extermite1 est la destination
\item allow\_dst() : extermite1 est la source
\item paramètres :
\begin{itemize}
\item interface : interface du maître
\item container\_interface : interface dans le conteneur
\item ip|container : extermite2
\item port :
\begin{itemize}
\item num
\item num:num
\end{itemize}
\item tcpwrapper
\item protocol : udp|icmp
\item si icmp : typ='echo-request'
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire une règle de firewall pour autoriser l'accès à IRCD.
\end{itemize}
\end{frame}

View File

@ -1,7 +1,13 @@
\begin{frame}
\frametitle{Schedule}
\begin{itemize}
\item Pourquoi le schedule ?
\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}
@ -9,11 +15,9 @@
\frametitle{Schedule}
\begin{itemize}
\item Script principalement bash ;
\item . /usr/share/eole/schedule/config.sh ;
\item DESC="..." ;
\item code retour 0 ;
\item executable ;
\item pas d'extension.
\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}

View File

@ -7,8 +7,7 @@
\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 ;
\item plus d'information : http://eoleng.ac-dijon.fr/pub/Documentations/devel/ead/actions/commande.html
\item /usr/share/ead2/backend/config/perms/perm\_xxx.ini : association de rôle.
\end{itemize}
\end{frame}

View File

@ -2,7 +2,7 @@
\frametitle{Fichier/répertoire dans la sauvegarde}
\begin{itemize}
\item Prévoir les extractions ;
\item fichier/répertoire spécifié dans /etc/bacula/baculafichiers.d/.
\item fichier/répertoire spécifié dans /etc/bareos/bareosfichiers.d/.
\end{itemize}
\end{frame}

View File

@ -37,16 +37,11 @@
\frametitle{Gestion des services}
\begin{itemize}
\item from pyeole.service import *
\item service\_out|service\_code
\item manage\_service :
\begin{itemize}
\item service : nom du service
\item action : start|stop|restart|status
\item container : nom du conteneur (défaut root)
\end{itemize}
\item service\_code\_no\_container : démarrage d'un service dans tous les conteneurs avec le service
\begin{itemize}
\item service : nom du service
\item action : start|stop|restart|status
\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}
@ -77,29 +72,29 @@
\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{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}
@ -109,66 +104,85 @@
\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 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')
% \item test\_conteneur('fichier')
\end{itemize}
\end{frame}
%FIXME
\begin{frame}
\frametitle{Gestion des locks}
\begin{itemize}
\item from creole.eolelock import *
\item add\_lock : ajout d'un lock
\item del\_lock : supprimer un lock
\item check\_lock : vérifier la présence d'un fichier lock
\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 lock\_name : nom du fichier lock
\item from creole.client import CreoleClient
\item client = CreoleClient()
\item client.get\_creole(variable)
\end{itemize}
\item check\_all\_locks : vérifier la présence des locks systèmes
\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 add\_lock('test')
\item check\_lock('test')
\item del\_lock('test')
\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}
\begin{itemize}
\item from creole.parsedico import parse\_dico
\item parse\_dico() : chargement des dictionnaires
\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}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item conf\_eole = parse\_dico()
\item print conf\_eole['adresse\_ip\_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}

View File

@ -1,7 +1,8 @@
\begin{frame}
\frametitle{Écrire en couleur}
\begin{itemize}
\item . /usr/share/eole/FonctionsEoleNg
%FIXME
\item . /usr/lib/eole/ihm.sh
\item EchoRouge
\item EchoVert
\item EchoOrange
@ -15,8 +16,9 @@
\begin{itemize}
\item Question\_ouinon
\item \$1 : contenu de la question de type oui/non
\item \$2 : valeur par défaut (défaut non)
\item \$3 : info|warn|err (défaut info)
\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}
@ -25,7 +27,7 @@
\begin{itemize}
\item EchoOrange 'couleur orange'
\item EchoGras 'le titre'
\item Question\_ouinon 'voulez vous vraiment faire cette action'
\item Question\_ouinon "Voulez vous vraiment faire cette action ?"
\item echo \$?
\end{itemize}
\end{frame}
@ -56,7 +58,7 @@
\begin{frame}
\frametitle{Execution de commande}
\begin{itemize}
\item RunCmd
\item CreoleRun
\item \$1 : commande
\item \$2 : conteneur
\end{itemize}
@ -74,7 +76,7 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item RunCmd "echo mot" fichier
\item CreoleRun "echo mot" fichier
\item test service : tcpcheck 2 192.0.2.52:80
\end{itemize}
\end{frame}
@ -82,49 +84,50 @@
\begin{frame}
\frametitle{Gestion des locks}
\begin{itemize}
\item AddLock : ajout d'un lock
\item DelLock : suppression d'un lock
\item CheckAllLocks : vérifie la présence de lock système
\begin{itemize}
\item \$1 : nom du lock
\end{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 AddLock test
\item DelLock test
\item Créé un lock "test" ;
\item Supprimé le lock "test".
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Valeur du dictionnaire}
\frametitle{Valeur d'une variable}
\begin{itemize}
\item . ParseDico
\item dans l'environnement de l'utilisateur
\item CreoleGet nom\_variable
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item echo \$adresse\_ip\_eth0
\item Récupérer la valeur de la variable adresse\_ip\_eth0
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Valeur du dictionnaire conteneur}
\frametitle{Modifier la valeur}
\begin{itemize}
\item . /etc/eole/containers.conf
\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 echo \$container\_ip\_fichier
\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}

View File

@ -2,10 +2,12 @@
\frametitle{Firewall}
\begin{itemize}
\item Sur tous les modules ;
\item complémentaire à Era si installé ;
\item firewall + tcpwrapper ;
\item géré par bastion ;
\item géré soit par Creole soit par Era ;
\item activé par bastion ;
\item configure firewall et tcpwrapper ;
\item si Era n'est pas installé, possibilité de désactiver ;
\item pour ouvrir le firewall ouvre.firewall ;
\item recharger les règles de firewall : service bastion restart ;
\item pour connaître la liste des règles : iptables-save.
\end{itemize}
\end{frame}

View File

@ -4,9 +4,12 @@
\item Gestion des tâches planifiées avec ou sans sauvegarde ;
\item tâche "pre" sauvegarde ;
\item tâche "post" sauvegarde ;
\item s'effectue à l'heure de la mise à jour ;
\item pour lister sur les modules 2.3 : /usr/share/eole/schedule/manage\_schedule ;
\item pour lister sur les modules 2.4 : /usr/share/eole/sbin/manage\_schedule -l .
\item tirage au sort à l'instance de :
\begin{itemize}
\item l'heure de démarrage entre 1h et 6h,
\item le jour dans la semaine d'exécution des tâches hebdomadaires et mensuelles (le 1er xxx du mois) ;
\end{itemize}
\item pour lister : /usr/share/eole/sbin/manage\_schedule -l .
\end{itemize}
\end{frame}