mise à jour de la formation pour 2.6
This commit is contained in:
parent
0ec050b306
commit
7987c5bb21
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
16
modules_EOLE_envole/commun/01-nouveaute25.tex
Normal file
16
modules_EOLE_envole/commun/01-nouveaute25.tex
Normal 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}
|
||||
|
0
modules_EOLE_envole/commun/01-nouveaute26.tex
Normal file
0
modules_EOLE_envole/commun/01-nouveaute26.tex
Normal file
47
modules_EOLE_envole/commun/02-gen_config.tex
Normal file
47
modules_EOLE_envole/commun/02-gen_config.tex
Normal 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}
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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")
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
[ -f $1 ] && rm -f $1
|
||||
[ -f "$1" ] && rm -f "$1"
|
||||
|
||||
|
BIN
modules_EOLE_envole/documents/formationzephir.tar
Normal file
BIN
modules_EOLE_envole/documents/formationzephir.tar
Normal file
Binary file not shown.
@ -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
|
||||
|
316
modules_EOLE_envole/formation_rennes.tex
Normal file
316
modules_EOLE_envole/formation_rennes.tex
Normal 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 d’Utilisation 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
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user