Projet

Général

Profil

eclair-in-lxc.html

Daniel Dehennin, 23/08/2017 09:00

Télécharger (37,2 ko)

 
1
<?xml version="1.0" encoding="utf-8"?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
5
<head>
6
<title>Installer un serveur Eclair dans un conteneur LXC</title>
7
<!-- 2017-08-23 mer. 09:00 -->
8
<meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9
<meta  name="generator" content="Org-mode" />
10
<meta  name="author" content="Daniel Dehennin" />
11
<style type="text/css">
12
 <!--/*--><![CDATA[/*><!--*/
13
  .title  { text-align: center; }
14
  .todo   { font-family: monospace; color: red; }
15
  .done   { color: green; }
16
  .tag    { background-color: #eee; font-family: monospace;
17
            padding: 2px; font-size: 80%; font-weight: normal; }
18
  .timestamp { color: #bebebe; }
19
  .timestamp-kwd { color: #5f9ea0; }
20
  .right  { margin-left: auto; margin-right: 0px;  text-align: right; }
21
  .left   { margin-left: 0px;  margin-right: auto; text-align: left; }
22
  .center { margin-left: auto; margin-right: auto; text-align: center; }
23
  .underline { text-decoration: underline; }
24
  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
25
  p.verse { margin-left: 3%; }
26
  pre {
27
    border: 1px solid #ccc;
28
    box-shadow: 3px 3px 3px #eee;
29
    padding: 8pt;
30
    font-family: monospace;
31
    overflow: auto;
32
    margin: 1.2em;
33
  }
34
  pre.src {
35
    position: relative;
36
    overflow: visible;
37
    padding-top: 1.2em;
38
  }
39
  pre.src:before {
40
    display: none;
41
    position: absolute;
42
    background-color: white;
43
    top: -10px;
44
    right: 10px;
45
    padding: 3px;
46
    border: 1px solid black;
47
  }
48
  pre.src:hover:before { display: inline;}
49
  pre.src-sh:before    { content: 'sh'; }
50
  pre.src-bash:before  { content: 'sh'; }
51
  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
52
  pre.src-R:before     { content: 'R'; }
53
  pre.src-perl:before  { content: 'Perl'; }
54
  pre.src-java:before  { content: 'Java'; }
55
  pre.src-sql:before   { content: 'SQL'; }
56

    
57
  table { border-collapse:collapse; }
58
  caption.t-above { caption-side: top; }
59
  caption.t-bottom { caption-side: bottom; }
60
  td, th { vertical-align:top;  }
61
  th.right  { text-align: center;  }
62
  th.left   { text-align: center;   }
63
  th.center { text-align: center; }
64
  td.right  { text-align: right;  }
65
  td.left   { text-align: left;   }
66
  td.center { text-align: center; }
67
  dt { font-weight: bold; }
68
  .footpara:nth-child(2) { display: inline; }
69
  .footpara { display: block; }
70
  .footdef  { margin-bottom: 1em; }
71
  .figure { padding: 1em; }
72
  .figure p { text-align: center; }
73
  .inlinetask {
74
    padding: 10px;
75
    border: 2px solid gray;
76
    margin: 10px;
77
    background: #ffffcc;
78
  }
79
  #org-div-home-and-up
80
   { text-align: right; font-size: 70%; white-space: nowrap; }
81
  textarea { overflow-x: auto; }
82
  .linenr { font-size: smaller }
83
  .code-highlighted { background-color: #ffff00; }
84
  .org-info-js_info-navigation { border-style: none; }
85
  #org-info-js_console-label
86
    { font-size: 10px; font-weight: bold; white-space: nowrap; }
87
  .org-info-js_search-highlight
88
    { background-color: #ffff00; color: #000000; font-weight: bold; }
89
  /*]]>*/-->
90
</style>
91
<script type="text/javascript">
92
/*
93
@licstart  The following is the entire license notice for the
94
JavaScript code in this tag.
95

96
Copyright (C) 2012-2013 Free Software Foundation, Inc.
97

98
The JavaScript code in this tag is free software: you can
99
redistribute it and/or modify it under the terms of the GNU
100
General Public License (GNU GPL) as published by the Free Software
101
Foundation, either version 3 of the License, or (at your option)
102
any later version.  The code is distributed WITHOUT ANY WARRANTY;
103
without even the implied warranty of MERCHANTABILITY or FITNESS
104
FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
105

106
As additional permission under GNU GPL version 3 section 7, you
107
may distribute non-source (e.g., minimized or compacted) forms of
108
that code without the copy of the GNU GPL normally required by
109
section 4, provided you include this license notice and a URL
110
through which recipients can access the Corresponding Source.
111

112

113
@licend  The above is the entire license notice
114
for the JavaScript code in this tag.
115
*/
116
<!--/*--><![CDATA[/*><!--*/
117
 function CodeHighlightOn(elem, id)
118
 {
119
   var target = document.getElementById(id);
120
   if(null != target) {
121
     elem.cacheClassElem = elem.className;
122
     elem.cacheClassTarget = target.className;
123
     target.className = "code-highlighted";
124
     elem.className   = "code-highlighted";
125
   }
126
 }
127
 function CodeHighlightOff(elem, id)
128
 {
129
   var target = document.getElementById(id);
130
   if(elem.cacheClassElem)
131
     elem.className = elem.cacheClassElem;
132
   if(elem.cacheClassTarget)
133
     target.className = elem.cacheClassTarget;
134
 }
135
/*]]>*///-->
136
</script>
137
</head>
138
<body>
139
<div id="content">
140
<h1 class="title">Installer un serveur Eclair dans un conteneur LXC</h1>
141
<div id="table-of-contents">
142
<h2>Table des matières</h2>
143
<div id="text-table-of-contents">
144
<ul>
145
<li><a href="#sec-1">1. Créer et paramétrer un conteneur Ubuntu (presque) standard</a>
146
<ul>
147
<li><a href="#sec-1-1">1.1. Créer un conteneur Ubuntu</a></li>
148
<li><a href="#sec-1-2">1.2. Configurer le conteneur</a></li>
149
<li><a href="#sec-1-3">1.3. Créer des périphériques dans le conteneur</a></li>
150
<li><a href="#sec-1-4">1.4. Installer la clef SSH publique pour se connecter en root</a></li>
151
<li><a href="#sec-1-5">1.5. Configurer les sources APT</a></li>
152
<li><a href="#sec-1-6">1.6. Configurer le proxy temporairement pour APT</a></li>
153
<li><a href="#sec-1-7">1.7. Configurer le proxy pour Wget</a></li>
154
<li><a href="#sec-1-8">1.8. Configurer apparmor pour autoriser le montage NFS dans LXC</a></li>
155
<li><a href="#sec-1-9">1.9. Démarrer le conteneur éclair</a></li>
156
</ul>
157
</li>
158
<li><a href="#sec-2">2. Transformer le conteneur en serveur EOLE</a>
159
<ul>
160
<li><a href="#sec-2-1">2.1. Se connecter dans le conteneur</a></li>
161
<li><a href="#sec-2-2">2.2. Installer la clef GPG qui signe les paquets EOLE</a></li>
162
<li><a href="#sec-2-3">2.3. Mettre à jour les indexes de paquets</a></li>
163
<li><a href="#sec-2-4">2.4. Installer les paquets Eclair</a></li>
164
<li><a href="#sec-2-5">2.5. Désactiver les services rng-tools et gpm</a></li>
165
<li><a href="#sec-2-6">2.6. Terminer l’installation</a></li>
166
<li><a href="#sec-2-7">2.7. Vérifier qu’il ne reste plus rien à installer</a></li>
167
<li><a href="#sec-2-8">2.8. Désactiver la détection automatique des noms de carte réseau</a></li>
168
</ul>
169
</li>
170
<li><a href="#sec-3">3. Préparer le serveur Scribe</a></li>
171
<li><a href="#sec-4">4. Configurer le serveur Eclair</a>
172
<ul>
173
<li><a href="#sec-4-1">4.1. Connectez vous à votre serveur AmonEcole avec le transfert X11</a></li>
174
<li><a href="#sec-4-2">4.2. Connectez vous au conteneur Eclair avec le transfert X11</a></li>
175
<li><a href="#sec-4-3">4.3. Autoriser le TFTP sur l’interface eth0 en mode 2 cartes</a></li>
176
<li><a href="#sec-4-4">4.4. Définissez votre mot de passe root (pour vous connecter à GenConfig)</a></li>
177
<li><a href="#sec-4-5">4.5. Démarrer GenConfig</a></li>
178
<li><a href="#sec-4-6">4.6. Configurez votre serveur</a></li>
179
<li><a href="#sec-4-7">4.7. Exécuter instance</a></li>
180
</ul>
181
</li>
182
<li><a href="#sec-5">5. Gérer les erreurs systemd</a>
183
<ul>
184
<li><a href="#sec-5-1">5.1. Désactiver le service <code>rc-local.service</code></a></li>
185
<li><a href="#sec-5-2">5.2. Gestion des interfaces réseaux</a></li>
186
<li><a href="#sec-5-3">5.3. Vérifier l’état des services systemd</a></li>
187
</ul>
188
</li>
189
<li><a href="#sec-6">6. Points non réglés</a></li>
190
</ul>
191
</div>
192
</div>
193
<p>
194
Nous allons faire cohabiter AmonEcole et Eclair en installant tout
195
éclair dans un conteneur LXC dédié.
196
</p>
197

    
198
<p>
199
Cela va se faire en plusieurs étapes :
200
</p>
201

    
202
<ol class="org-ol">
203
<li>Créer et paramétrer un conteneur Ubuntu (presque) standard
204
</li>
205

    
206
<li>Transformer ce conteneur en <a href="http://eole.ac-dijon.fr/documentations/2.6/partielles/HTML/EOLE/co/02_medias.html">serveur EOLE</a>
207
</li>
208

    
209
<li>Préparer le serveur Scribe
210
</li>
211

    
212
<li>Configurer votre serveur Eclair
213
</li>
214

    
215
<li>Gérer les erreurs systemd
216
</li>
217
</ol>
218

    
219
<p>
220
Vous devez en premier lieu vous assurer d’avoir suffisamment de place
221
sur le volume <code>/opt</code>, dans mon test il fait 12Go.
222
</p>
223

    
224
<p>
225
Vous pouvez procéder à un <a href="http://eole.ac-dijon.fr/documentations/2.6/partielles/HTML/EOLE/co/04-partitionnement.html">partitionnement personnalisé</a> afin de vous
226
assurez d’avoir au moins 20Go pour <code>/opt</code>.
227
</p>
228

    
229
<div id="outline-container-sec-1" class="outline-2">
230
<h2 id="sec-1"><span class="section-number-2">1</span> Créer et paramétrer un conteneur Ubuntu (presque) standard</h2>
231
<div class="outline-text-2" id="text-1">
232
<p>
233
Nous allons utiliser l’outil <code>lxc-create</code> livré avec la distribution.
234
</p>
235
</div>
236

    
237

    
238
<div id="outline-container-sec-1-1" class="outline-3">
239
<h3 id="sec-1-1"><span class="section-number-3">1.1</span> Créer un conteneur Ubuntu</h3>
240
<div class="outline-text-3" id="text-1-1">
241
<p>
242
Vous pouvez adapter le miroir utilisé si besoin :
243
</p>
244

    
245
<div class="org-src-container">
246

    
247
<pre class="src src-sh">lxc-create -n eclair -t ubuntu -- -r xenial -u ubuntu -S ~root/.ssh/id_rsa.pub --packages 'wget' --mirror http://eole.ac-dijon.fr/ubuntu
248
</pre>
249
</div>
250
</div>
251
</div>
252

    
253
<div id="outline-container-sec-1-2" class="outline-3">
254
<h3 id="sec-1-2"><span class="section-number-3">1.2</span> Configurer le conteneur</h3>
255
<div class="outline-text-3" id="text-1-2">
256
<p>
257
Le fichier de configuration suivant contient des paramètres importants :
258
</p>
259

    
260
<ul class="org-ul">
261
<li>Une variable est remplacée lors de l’exécution de la commande cat
262
afin d’avoir le bon nom d’interface ;
263
</li>
264
<li>Un profile <i>apparmor</i> particulier permet à Eclair de fonctionner ;
265
</li>
266
<li>L’adresse IP de la seconde interface est codée en dur en utilisant
267
<a href="http://eole.ac-dijon.fr/documentations/2.6/partielles/HTML/EOLE/co/02-fichiers.html">une valeur de la liste prédéfinie</a>.
268
</li>
269
</ul>
270

    
271
<div class="org-src-container">
272

    
273
<pre class="src src-sh">cat &gt; /var/lib/lxc/eclair/config &lt;&lt;EOF
274
# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
275

    
276
# Common configuration
277
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
278

    
279
# Enable mounting NFS
280
lxc.aa_profile = lxc-container-default-for-eclair
281

    
282
# Container specific configuration
283
lxc.utsname = eclair
284
lxc.arch = amd64
285
lxc.rootfs.backend = dir
286
lxc.rootfs = /var/lib/lxc/eclair/rootfs
287

    
288
# EOLE look for /dev/lxc to detect container mode and behave differently
289
lxc.devttydir = LXC
290

    
291
# Automatic start at bootup
292
lxc.start.auto = 1
293

    
294
# Network configuration
295
# eth0 on eth1
296
lxc.network.type = macvlan
297
lxc.network.link = $(CreoleGet nom_zone_eth1)
298
lxc.network.flags = up
299
lxc.network.name = eth0
300
lxc.network.mtu = 1500
301
lxc.network.macvlan.mode = bridge
302

    
303
# containers on br0
304
# Reuse LTSP server IP
305
# http://eole.ac-dijon.fr/documentations/2.6/partielles/beta/EOLE/co/02-fichiers.html
306
lxc.network.type=veth
307
lxc.network.link=br0
308
lxc.network.flags=up
309
lxc.network.name = containers
310
lxc.network.mtu = 1500
311
lxc.network.veth.pair = eclair_0
312
lxc.network.ipv4 = 192.0.2.54/24
313

    
314
## Extra devices
315
#
316
# /dev/fuse
317
lxc.cgroup.devices.allow = c 10:229 rwm
318

    
319
lxc.hook.autodev = /var/lib/lxc/eclair/devices.hook
320
EOF
321
</pre>
322
</div>
323
</div>
324
</div>
325

    
326
<div id="outline-container-sec-1-3" class="outline-3">
327
<h3 id="sec-1-3"><span class="section-number-3">1.3</span> Créer des périphériques dans le conteneur</h3>
328
<div class="outline-text-3" id="text-1-3">
329
<p>
330
Nous avons besoin de fuse dans le conteneur, cela se fait par le
331
script référencé par la variable <code>lxc.hook.autodev</code> dans la
332
configuration précédente :
333
</p>
334

    
335
<div class="org-src-container">
336

    
337
<pre class="src src-sh">cat &gt; /var/lib/lxc/eclair/devices.hook &lt;&lt;'EOF'
338
# On master /dev/fuse is owned by root:root with 666 perms
339
mknod --mode=666 ${LXC_ROOTFS_MOUNT}/dev/fuse c 10 229
340
EOF
341
chmod +x /var/lib/lxc/eclair/devices.hook
342
</pre>
343
</div>
344
</div>
345
</div>
346

    
347
<div id="outline-container-sec-1-4" class="outline-3">
348
<h3 id="sec-1-4"><span class="section-number-3">1.4</span> Installer la clef SSH publique pour se connecter en root</h3>
349
<div class="outline-text-3" id="text-1-4">
350
<p>
351
Actuellement il n’y a que le compte <code>ubuntu</code> qui est accessible par la
352
clef publique du compte <code>root</code> du maître :
353
</p>
354

    
355
<div class="org-src-container">
356

    
357
<pre class="src src-sh">mkdir /var/lib/lxc/eclair/rootfs/root/.ssh/
358
cp ~root/.ssh/id_rsa.pub /var/lib/lxc/eclair/rootfs/root/.ssh/authorized_keys
359
chmod -R 600 /var/lib/lxc/eclair/rootfs/root/.ssh/
360
</pre>
361
</div>
362
</div>
363
</div>
364

    
365
<div id="outline-container-sec-1-5" class="outline-3">
366
<h3 id="sec-1-5"><span class="section-number-3">1.5</span> Configurer les sources APT</h3>
367
<div class="outline-text-3" id="text-1-5">
368
<p>
369
Nous utilisons les mêmes sources que sur le maître, sans Envole :
370
</p>
371

    
372
<div class="org-src-container">
373

    
374
<pre class="src src-sh">grep -iv envole /etc/apt/sources.list &gt; /var/lib/lxc/eclair/rootfs/etc/apt/sources.list
375
</pre>
376
</div>
377
</div>
378
</div>
379

    
380
<div id="outline-container-sec-1-6" class="outline-3">
381
<h3 id="sec-1-6"><span class="section-number-3">1.6</span> Configurer le proxy temporairement pour APT</h3>
382
<div class="outline-text-3" id="text-1-6">
383
<p>
384
Il sera écrasé lors de l’instance :
385
</p>
386

    
387
<div class="org-src-container">
388

    
389
<pre class="src src-sh">echo "Acquire::http::Proxy \"http://$(CreoleGet adresse_ip_eth1_proxy_link):3128\";" &gt; /var/lib/lxc/eclair/rootfs/etc/apt/apt.conf.d/02eoleproxy
390
</pre>
391
</div>
392
</div>
393
</div>
394

    
395
<div id="outline-container-sec-1-7" class="outline-3">
396
<h3 id="sec-1-7"><span class="section-number-3">1.7</span> Configurer le proxy pour Wget</h3>
397
<div class="outline-text-3" id="text-1-7">
398
<p>
399
Autrement nous ne pouvons pas télécharger la clef publique GPG qui
400
signe les dépôts de paquets EOLE :
401
</p>
402

    
403
<div class="org-src-container">
404

    
405
<pre class="src src-sh">echo "http_proxy = http://$(CreoleGet adresse_ip_eth1_proxy_link):3128" &gt; /var/lib/lxc/eclair/rootfs/root/.wgetrc
406
</pre>
407
</div>
408
</div>
409
</div>
410

    
411
<div id="outline-container-sec-1-8" class="outline-3">
412
<h3 id="sec-1-8"><span class="section-number-3">1.8</span> Configurer apparmor pour autoriser le montage NFS dans LXC</h3>
413
<div class="outline-text-3" id="text-1-8">
414
<p>
415
Le conteneur Eclair a besoin :
416
</p>
417

    
418
<ul class="org-ul">
419
<li>de faire des chroots pour préparer l’image des clients légers ;
420
</li>
421
<li>de monter <code>/home</code> en NFS.
422
</li>
423
</ul>
424

    
425
<p>
426
Nous reprenons donc le contenu de
427
<code>/etc/apparmor.d/lxc/lxc-container-default-cgns</code> et y ajoutons les
428
règles nécessaires :
429
</p>
430

    
431
<ul class="org-ul">
432
<li>Monter des systèmes de fichiers <code>/proc</code>, <code>/sys</code> ;
433
</li>
434
<li>Monter en mode <code>bind</code> pour <code>/dev</code> ;
435
</li>
436
<li>Monter des systèmes de fichiers <code>nfs</code>, <code>nfs4</code> et <code>rpc_pipefs</code>.
437
</li>
438
</ul>
439

    
440
<div class="org-src-container">
441

    
442
<pre class="src src-sh">cat &gt; /etc/apparmor.d/lxc/lxc-default-for-eclair &lt;&lt;EOF
443
# Do not load this file.  Rather, load /etc/apparmor.d/lxc-containers, which
444
# will source all profiles under /etc/apparmor.d/lxc
445

    
446
profile lxc-container-default-for-eclair flags=(attach_disconnected,mediate_deleted) {
447
  #include &lt;abstractions/lxc/container-base&gt;
448

    
449
  # the container may never be allowed to mount devpts.  If it does, it
450
  # will remount the host's devpts.  We could allow it to do it with
451
  # the newinstance option (but, right now, we don't).
452
  deny mount fstype=devpts,
453

    
454
  # Enable systemd cgroup mount in container
455
  mount fstype=cgroup -&gt; /sys/fs/cgroup/**,
456

    
457
  # Allow chroot
458
  mount fstype=proc,
459
  mount fstype=sysfs,
460
  mount options=(bind),
461

    
462
  # allow NFS mount
463
  mount fstype=nfs,
464
  mount fstype=nfs4,
465
  mount fstype=rpc_pipefs,
466
}
467
EOF
468
</pre>
469
</div>
470

    
471
<p>
472
Il faut recharger les règles :
473
</p>
474

    
475
<div class="org-src-container">
476

    
477
<pre class="src src-sh">service apparmor reload
478
</pre>
479
</div>
480
</div>
481
</div>
482

    
483
<div id="outline-container-sec-1-9" class="outline-3">
484
<h3 id="sec-1-9"><span class="section-number-3">1.9</span> Démarrer le conteneur éclair</h3>
485
<div class="outline-text-3" id="text-1-9">
486
<p>
487
Nous pouvons maintenant démarrer le conteneur afin de nous y connecter
488
et de le configurer :
489
</p>
490

    
491
<div class="org-src-container">
492

    
493
<pre class="src src-sh">lxc-start -n eclair -d
494
</pre>
495
</div>
496
</div>
497
</div>
498
</div>
499

    
500

    
501
<div id="outline-container-sec-2" class="outline-2">
502
<h2 id="sec-2"><span class="section-number-2">2</span> Transformer le conteneur en serveur EOLE</h2>
503
<div class="outline-text-2" id="text-2">
504
<p>
505
Nous reprenons les éléments décrits dans <a href="http://eole.ac-dijon.fr/documentations/2.6/partielles/HTML/EOLE/co/02_medias.html">la documentation</a> :
506
</p>
507
</div>
508

    
509

    
510
<div id="outline-container-sec-2-1" class="outline-3">
511
<h3 id="sec-2-1"><span class="section-number-3">2.1</span> Se connecter dans le conteneur</h3>
512
<div class="outline-text-3" id="text-2-1">
513
<p>
514
Nous faisons une connexion avec l’utilisateur <code>root</code> sur l’IP
515
configurée en dur dans le ficher <code>/var/lib/lxc/eclair/config</code> :
516
</p>
517

    
518
<div class="org-src-container">
519

    
520
<pre class="src src-sh">ssh 192.0.2.54
521
</pre>
522
</div>
523
</div>
524
</div>
525

    
526
<div id="outline-container-sec-2-2" class="outline-3">
527
<h3 id="sec-2-2"><span class="section-number-3">2.2</span> Installer la clef GPG qui signe les paquets EOLE</h3>
528
<div class="outline-text-3" id="text-2-2">
529
<div class="org-src-container">
530

    
531
<pre class="src src-sh">wget -qO- 'http://eole.ac-dijon.fr/eole/project/eole-2.6-repository.key' | sudo apt-key --keyring /etc/apt/trusted.gpg.d/eole-archive-keyring.gpg add -
532
</pre>
533
</div>
534
</div>
535
</div>
536

    
537
<div id="outline-container-sec-2-3" class="outline-3">
538
<h3 id="sec-2-3"><span class="section-number-3">2.3</span> Mettre à jour les indexes de paquets</h3>
539
<div class="outline-text-3" id="text-2-3">
540
<div class="org-src-container">
541

    
542
<pre class="src src-sh">apt-get update
543
</pre>
544
</div>
545
</div>
546
</div>
547

    
548
<div id="outline-container-sec-2-4" class="outline-3">
549
<h3 id="sec-2-4"><span class="section-number-3">2.4</span> Installer les paquets Eclair</h3>
550
<div class="outline-text-3" id="text-2-4">
551
<p>
552
La commande suivante va vous poser des questions et finira en erreur
553
car les paquets <code>gpm</code> et <code>rng-tools</code> ne supportent pas d’être dans un
554
conteneur LXC :
555
</p>
556

    
557
<div class="org-src-container">
558

    
559
<pre class="src src-sh">apt-get install -y eole-eclair-all
560
</pre>
561
</div>
562

    
563
<p>
564
À la question <i>quelle est l’URI du serveur LDAP</i> vous pouvez saisir
565
<code>ldap://192.0.2.50</code> afin de limiter le nombre de message d’erreur
566
avant instance.
567
</p>
568

    
569
<p>
570
Pour toutes les autres questions vous pouvez laisser les valeurs par
571
défaut, tout sera configuré par <code>instance</code>.
572
</p>
573
</div>
574
</div>
575

    
576
<div id="outline-container-sec-2-5" class="outline-3">
577
<h3 id="sec-2-5"><span class="section-number-3">2.5</span> Désactiver les services rng-tools et gpm</h3>
578
<div class="outline-text-3" id="text-2-5">
579
<p>
580
Nous allons désactiver les services problématiques et faire en sorte
581
qu’ils ne puissent pas être réactivés.
582
</p>
583

    
584
<p>
585
Nous désactivons <code>rng-tools</code> avec la commande :
586
</p>
587

    
588
<div class="org-src-container">
589

    
590
<pre class="src src-sh">systemctl disable rng-tools.service
591
</pre>
592
</div>
593

    
594
<p>
595
qui vous renvoie :
596
</p>
597

    
598
<pre class="example">
599
rng-tools.service is not a native service, redirecting to systemd-sysv-install
600
Executing /lib/systemd/systemd-sysv-install disable rng-tools
601
insserv: warning: current start runlevel(s) (empty) of script `rng-tools' overrides LSB defaults (2 3 4 5).
602
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `rng-tools' overrides LSB defaults (0 1 6).
603
</pre>
604

    
605
<p>
606
Nous empêchons sa réactivation future avec le système de masquage, la commande :
607
</p>
608

    
609
<div class="org-src-container">
610

    
611
<pre class="src src-sh">systemctl mask rng-tools.service
612
</pre>
613
</div>
614

    
615
<p>
616
renvoie :
617
</p>
618

    
619
<pre class="example">
620
root@eclair:~# systemctl mask rng-tools.service
621
Created symlink from /etc/systemd/system/rng-tools.service to /dev/null.
622
</pre>
623

    
624
<p>
625
Nous procédons de même avec le service <code>gpm</code>, la commande :
626
</p>
627

    
628
<div class="org-src-container">
629

    
630
<pre class="src src-sh">systemctl disable gpm.service
631
</pre>
632
</div>
633

    
634
<p>
635
renvoie :
636
</p>
637

    
638
<pre class="example">
639
gpm.service is not a native service, redirecting to systemd-sysv-install
640
Executing /lib/systemd/systemd-sysv-install disable gpm
641
insserv: warning: current start runlevel(s) (empty) of script `gpm' overrides LSB defaults (2 3 4 5).
642
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `gpm' overrides LSB defaults (0 1 6).
643
</pre>
644

    
645
<p>
646
et la commande :
647
</p>
648

    
649
<div class="org-src-container">
650

    
651
<pre class="src src-sh">systemctl mask gpm.service
652
</pre>
653
</div>
654

    
655
<p>
656
renvoie :
657
</p>
658

    
659
<pre class="example">
660
root@eclair:~# systemctl mask gpm.service
661
Created symlink from /etc/systemd/system/gpm.service to /dev/null.
662
</pre>
663
</div>
664
</div>
665

    
666
<div id="outline-container-sec-2-6" class="outline-3">
667
<h3 id="sec-2-6"><span class="section-number-3">2.6</span> Terminer l’installation</h3>
668
<div class="outline-text-3" id="text-2-6">
669
<div class="org-src-container">
670

    
671
<pre class="src src-sh">dpkg --configure -a
672
</pre>
673
</div>
674
</div>
675
</div>
676

    
677
<div id="outline-container-sec-2-7" class="outline-3">
678
<h3 id="sec-2-7"><span class="section-number-3">2.7</span> Vérifier qu’il ne reste plus rien à installer</h3>
679
<div class="outline-text-3" id="text-2-7">
680
<div class="org-src-container">
681

    
682
<pre class="src src-sh">apt-get install -y eole-eclair-all
683
</pre>
684
</div>
685
</div>
686
</div>
687

    
688
<div id="outline-container-sec-2-8" class="outline-3">
689
<h3 id="sec-2-8"><span class="section-number-3">2.8</span> Désactiver la détection automatique des noms de carte réseau</h3>
690
<div class="outline-text-3" id="text-2-8">
691
<p>
692
Cette partie de creole ne fonctionne pas dans un conteneur LXC et fait
693
planter GenConfig:
694
</p>
695

    
696
<div class="org-src-container">
697

    
698
<pre class="src src-sh">cat &gt; /usr/share/eole/creole/dicos/99-eole-in-lxc.xml &lt;&lt;EOF
699
&lt;creole&gt;
700

    
701
    &lt;files /&gt;
702

    
703
    &lt;containers /&gt;
704

    
705
    &lt;variables&gt;
706

    
707
        &lt;family name='Interface-0'&gt;
708
            &lt;variable name='nom_carte_eth0' redefine='True' remove_check='True' /&gt;
709
        &lt;/family&gt;
710

    
711
        &lt;family name='Interface-1'&gt;
712
            &lt;variable name='nom_carte_eth1' redefine='True' remove_check='True' /&gt;
713
        &lt;/family&gt;
714

    
715
        &lt;family name='Interface-2'&gt;
716
            &lt;variable name='nom_carte_eth2' redefine='True' remove_check='True' /&gt;
717
        &lt;/family&gt;
718

    
719
        &lt;family name='Interface-3'&gt;
720
            &lt;variable name='nom_carte_eth3' redefine='True' remove_check='True' /&gt;
721
        &lt;/family&gt;
722

    
723
        &lt;family name='Interface-4'&gt;
724
            &lt;variable name='nom_carte_eth4' redefine='True' remove_check='True' /&gt;
725
        &lt;/family&gt;
726

    
727
    &lt;/variables&gt;
728

    
729
    &lt;constraints&gt;
730

    
731
        &lt;auto name='auto_copy_val' target='nom_carte_eth0'&gt;
732
            &lt;param&gt;eth0&lt;/param&gt;
733
        &lt;/auto&gt;
734

    
735
        &lt;auto name='auto_copy_val' target='nom_carte_eth1'&gt;
736
            &lt;param&gt;containers&lt;/param&gt;
737
        &lt;/auto&gt;
738

    
739
        &lt;auto name='auto_copy_val' target='nom_carte_eth2'&gt;
740
            &lt;param&gt;eth2&lt;/param&gt;
741
        &lt;/auto&gt;
742

    
743
        &lt;auto name='auto_copy_val' target='nom_carte_eth3'&gt;
744
            &lt;param&gt;eth3&lt;/param&gt;
745
        &lt;/auto&gt;
746

    
747
        &lt;auto name='auto_copy_val' target='nom_carte_eth4'&gt;
748
            &lt;param&gt;eth0&lt;/param&gt;
749
        &lt;/auto&gt;
750

    
751
    &lt;/constraints&gt;
752

    
753
    &lt;help /&gt;
754
&lt;/creole&gt;
755
EOF
756
</pre>
757
</div>
758
</div>
759
</div>
760
</div>
761

    
762

    
763

    
764
<div id="outline-container-sec-3" class="outline-2">
765
<h2 id="sec-3"><span class="section-number-2">3</span> Préparer le serveur Scribe</h2>
766
<div class="outline-text-2" id="text-3">
767
<p>
768
Sur le maître, suivez la partie <i>AmonEcole</i> de la documentation
769
<a href="http://eole.ac-dijon.fr/documentations/2.6/completes/HTML/ModuleEclair/co/ConfigurationEclairAvecModuleAmonEcole.html">configuration
770
Eclair avec un module AmonEcole</a> avec les adaptations suivantes :
771
</p>
772

    
773
<ul class="org-ul">
774
<li>L’accès NFS se fait par le pont interne aux conteneurs : <i>Nfs →
775
Adresse IP autorisée à monter les export NFS</i><b><code>192.0.2.54</code></b> ;
776
</li>
777
<li>La valeur de <i>Tftp → Adresse IP du serveur PXE/TFTP</i> est l’IP
778
statique (en dehors de la plage DHCP configurée sur l’AmonEcole) que
779
vous prévoyez d’utiliser pour l’interface <code>eth0</code> de l’Eclair et non
780
pas l’IP interne <code>192.0.2.54</code> ;
781
</li>
782
<li>Le chemin de fichier de boot est spécifique sur Eclair :  <i>Tftp →
783
Chemin vers le fichier de boot PXE initial</i><b><code>/default/pxelinux.0</code></b>.
784
</li>
785
</ul>
786
</div>
787
</div>
788

    
789

    
790
<div id="outline-container-sec-4" class="outline-2">
791
<h2 id="sec-4"><span class="section-number-2">4</span> Configurer le serveur Eclair</h2>
792
<div class="outline-text-2" id="text-4">
793
<p>
794
À ce stade il serait bien de vérifier que le conteneur démarre
795
automatiquement au démarrage de la machine :
796
</p>
797

    
798
<ul class="org-ul">
799
<li>Redémarrer le serveur AmonEcole
800
</li>
801
</ul>
802
</div>
803

    
804

    
805
<div id="outline-container-sec-4-1" class="outline-3">
806
<h3 id="sec-4-1"><span class="section-number-3">4.1</span> Connectez vous à votre serveur AmonEcole avec le transfert X11</h3>
807
<div class="outline-text-3" id="text-4-1">
808
<div class="org-src-container">
809

    
810
<pre class="src src-sh">ssh -Y root@&lt;amonecole&gt;
811
</pre>
812
</div>
813
</div>
814
</div>
815

    
816
<div id="outline-container-sec-4-2" class="outline-3">
817
<h3 id="sec-4-2"><span class="section-number-3">4.2</span> Connectez vous au conteneur Eclair avec le transfert X11</h3>
818
<div class="outline-text-3" id="text-4-2">
819
<div class="org-src-container">
820

    
821
<pre class="src src-sh">ssh -Y 192.0.2.54
822
</pre>
823
</div>
824

    
825
<p>
826
Après le redémarrage, la commande <code>systemctl is-system-running</code> doit
827
renvoyer <code>degraded</code> car certains services ne démarrent pas
828
correctement, nous allons les gérer après la configuration du
829
serveur Eclair.
830
</p>
831
</div>
832
</div>
833

    
834
<div id="outline-container-sec-4-3" class="outline-3">
835
<h3 id="sec-4-3"><span class="section-number-3">4.3</span> Autoriser le TFTP sur l’interface eth0 en mode 2 cartes</h3>
836
<div class="outline-text-3" id="text-4-3">
837
<p>
838
C’est une relique de l’Eclair 2.3 qui se comportait différemment en
839
mode 1 carte ou 2 cartes.
840
</p>
841

    
842
<p>
843
Nous avons deux cartes mais c’est bien par <code>eth0</code> que les paquets TFTP
844
arrivent, nous devons donc autoriser ces flux :
845
</p>
846

    
847
<div class="org-src-container">
848

    
849
<pre class="src src-sh">cat &gt; /usr/share/eole/creole/dicos/99-eclair-in-lxc.xml &lt;&lt;EOF
850
&lt;creole&gt;
851

    
852
    &lt;files /&gt;
853

    
854
    &lt;containers&gt;
855

    
856
        &lt;container name='dhcp'&gt;
857

    
858
            &lt;!--
859
                20_dhcp.xml support only one card at a time.
860
                We need to autorise TFTP on eth0 with this 2 cards setup
861
            --&gt;
862
            &lt;service_restriction service='tftpd'&gt;
863
                &lt;ip interface='eth0' netmask='0.0.0.0'&gt;0.0.0.0&lt;/ip&gt;
864
            &lt;/service_restriction&gt;
865

    
866
        &lt;/container&gt;
867

    
868
    &lt;/containers&gt;
869

    
870

    
871
    &lt;variables /&gt;
872

    
873
    &lt;constraints /&gt;
874

    
875
    &lt;help /&gt;
876
&lt;/creole&gt;
877
EOF
878
</pre>
879
</div>
880
</div>
881
</div>
882

    
883
<div id="outline-container-sec-4-4" class="outline-3">
884
<h3 id="sec-4-4"><span class="section-number-3">4.4</span> Définissez votre mot de passe root (pour vous connecter à GenConfig)</h3>
885
<div class="outline-text-3" id="text-4-4">
886
<p>
887
Attention à la politique de mot de passe lorsque vous utilisez la
888
commande suivante :
889
</p>
890

    
891
<div class="org-src-container">
892

    
893
<pre class="src src-sh">passwd
894
</pre>
895
</div>
896
</div>
897
</div>
898

    
899
<div id="outline-container-sec-4-5" class="outline-3">
900
<h3 id="sec-4-5"><span class="section-number-3">4.5</span> Démarrer GenConfig</h3>
901
<div class="outline-text-3" id="text-4-5">
902
<p>
903
Démarrer GenConfig et connecter vous avec le compte <code>root</code> et le mot
904
de passe que vous avez défini :
905
</p>
906

    
907
<div class="org-src-container">
908

    
909
<pre class="src src-sh">gen_config
910
</pre>
911
</div>
912
</div>
913
</div>
914

    
915
<div id="outline-container-sec-4-6" class="outline-3">
916
<h3 id="sec-4-6"><span class="section-number-3">4.6</span> Configurez votre serveur</h3>
917
<div class="outline-text-3" id="text-4-6">
918
<p>
919
Dans le cas spécifique d’Eclair dans un conteneur LXC, vous devez
920
absolument :
921
</p>
922

    
923
<ul class="org-ul">
924
<li>Passer en mode expert et activer deux interfaces : <i>Général → Nombre
925
d'interfaces à activer</i><b>2</b>
926
</li>
927
<li>Configurer la seconde interface avec les paramètres suivants (le
928
message d’avertissement est tout à fait normal) :
929
<ul class="org-ul">
930
<li><i>Interface-1 → Adresse IP de la carte</i><b>192.0.2.54</b>
931
</li>
932
<li><i>Interface-1 → Masque de sous réseau de la carte</i><b>255.255.255.0</b>
933
</li>
934
</ul>
935
</li>
936
<li>Autoriser les connexions SSH depuis le maître sur l’/Interface-1/ :
937
<ul class="org-ul">
938
<li><i>Interface-1 → Autoriser les connexions SSH</i><b>oui</b>
939
</li>
940
<li><i>Interface-1 → Adresse IP réseau autorisée pour les connexions SSH</i><b>192.0.2.1</b>
941
</li>
942
<li><i>Interface-1 → Masque du sous réseau pour les connexions SSH</i><b>255.255.255.255</b>
943
</li>
944
</ul>
945
</li>
946
<li>Utiliser les adresses internes pour certains services :
947
<ul class="org-ul">
948
<li><i>Annuaire → Adresse IP ou nom DNS du serveur LDAP</i><b>192.0.2.50</b>
949
</li>
950
<li><i>Ltsp → Adresse IP ou nom DNS du serveur NFS</i><b>192.0.2.1</b>
951
</li>
952
</ul>
953
</li>
954
</ul>
955

    
956
<p>
957
Certains flux ne peuvent pas passer par l’interface eth0 du serveur
958
Eclair, les paramètres ci-dessus permettent de passer par le pont
959
interne aux conteneurs..
960
</p>
961

    
962
<p>
963
Le reste de la configuration ne fait l’objet d’aucune particularité :
964
</p>
965

    
966
<ul class="org-ul">
967
<li>L'<i>Interface-0</i> étant celle qui sert vos clients légers et qui
968
accédera au NFS de l’AmonEcole ;
969
</li>
970
<li>Tous les flux passant par AmonEcole, vous devez donc configurer le
971
DNS et le proxy en conséquence.
972
</li>
973
</ul>
974

    
975
<p>
976
Pour les clients légers <i>lourds</i>, n’oubliez pas de configurer le type
977
de client léger :
978
</p>
979

    
980
<ul class="org-ul">
981
<li>En mode normal, <i>Ltsp → Type de l'image à générer sur le serveur</i><b>fat</b>
982
</li>
983
</ul>
984
</div>
985
</div>
986

    
987
<div id="outline-container-sec-4-7" class="outline-3">
988
<h3 id="sec-4-7"><span class="section-number-3">4.7</span> Exécuter instance</h3>
989
<div class="outline-text-3" id="text-4-7">
990
<p>
991
Vous avez un certain nombre de messages d’erreur notamment pour les
992
modules noyaux mais vous devriez arriver au bout.
993
</p>
994

    
995
<p>
996
Le dernier message <code>list index out of range</code> est aussi dû à la gestion
997
des noyaux, en mode <code>debug</code> le traceback est le suivant :
998
</p>
999

    
1000
<pre class="example">
1001
list index out of range
1002
Traceback (most recent call last):
1003
  File "/usr/lib/python2.7/dist-packages/creole/reconfigure.py", line 984, in main
1004
    reboot_server()
1005
  File "/usr/lib/python2.7/dist-packages/creole/reconfigure.py", line 864, in reboot_server
1006
    if fonctionseole.controle_kernel():
1007
  File "/usr/lib/python2.7/dist-packages/creole/fonctionseole.py", line 113, in controle_kernel
1008
    wanted_kernel = get_wanted_kernel()
1009
  File "/usr/lib/python2.7/dist-packages/creole/fonctionseole.py", line 67, in get_wanted_kernel
1010
    last_ver = kernel_images[-1].split('-')
1011
IndexError: list index out of range
1012
</pre>
1013
</div>
1014
</div>
1015
</div>
1016

    
1017

    
1018
<div id="outline-container-sec-5" class="outline-2">
1019
<h2 id="sec-5"><span class="section-number-2">5</span> Gérer les erreurs systemd</h2>
1020
<div class="outline-text-2" id="text-5">
1021
<p>
1022
Dans le conteneur Eclair, la commande <code>systemctl is-system-running</code>
1023
doit renvoyer <code>degraded</code>.
1024
</p>
1025

    
1026
<p>
1027
Vous pouvez afficher la liste des services en erreur, la commande :
1028
</p>
1029

    
1030
<div class="org-src-container">
1031

    
1032
<pre class="src src-sh">systemctl list-units --failed
1033
</pre>
1034
</div>
1035

    
1036
<p>
1037
renvoie :
1038
</p>
1039

    
1040
<pre class="example">
1041
  UNIT               LOAD   ACTIVE SUB    DESCRIPTION
1042
● networking.service loaded failed failed Raise network interfaces
1043
● rc-local.service   loaded failed failed /etc/rc.local Compatibility
1044

    
1045
LOAD   = Reflects whether the unit definition was properly loaded.
1046
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
1047
SUB    = The low-level unit activation state, values depend on unit type.
1048

    
1049
2 loaded units listed. Pass --all to see loaded but inactive units, too.
1050
To show all installed unit files use 'systemctl list-unit-files'.
1051
</pre>
1052
</div>
1053

    
1054

    
1055
<div id="outline-container-sec-5-1" class="outline-3">
1056
<h3 id="sec-5-1"><span class="section-number-3">5.1</span> Désactiver le service <code>rc-local.service</code></h3>
1057
<div class="outline-text-3" id="text-5-1">
1058
<p>
1059
Ce service tente de régler les paramètres des témoins lumineux du clavier, la commande :
1060
</p>
1061

    
1062
<div class="org-src-container">
1063

    
1064
<pre class="src src-sh">systemctl status rc-local.service
1065
</pre>
1066
</div>
1067

    
1068
<p>
1069
renvoie :
1070
</p>
1071

    
1072
<pre class="example">
1073
● rc-local.service - /etc/rc.local Compatibility
1074
   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)
1075
  Drop-In: /lib/systemd/system/rc-local.service.d
1076
           └─debian.conf
1077
   Active: failed (Result: exit-code) since mer. 2017-07-19 10:13:22 CEST; 12min ago
1078
  Process: 256 ExecStart=/etc/rc.local start (code=exited, status=1/FAILURE)
1079

    
1080
juil. 19 10:13:22 eclair systemd[1]: Starting /etc/rc.local Compatibility...
1081
juil. 19 10:13:22 eclair rc.local[256]: KDGKBLED: Ioctl() inapproprié pour un périphérique
1082
juil. 19 10:13:22 eclair rc.local[256]: Erreur de lecture des paramètres courants de fanions. Peut-être n'êtes vous pas sur la console ?
1083
juil. 19 10:13:22 eclair systemd[1]: rc-local.service: Control process exited, code=exited status=1
1084
juil. 19 10:13:22 eclair systemd[1]: Failed to start /etc/rc.local Compatibility.
1085
juil. 19 10:13:22 eclair systemd[1]: rc-local.service: Unit entered failed state.
1086
juil. 19 10:13:22 eclair systemd[1]: rc-local.service: Failed with result 'exit-code'.
1087
</pre>
1088

    
1089
<p>
1090
Nous pouvons simplement le désactiver et masquer pour qu’il ne démarre plus :
1091
</p>
1092

    
1093
<div class="org-src-container">
1094

    
1095
<pre class="src src-sh">systemctl stop rc-local.service
1096
systemctl disable rc-local.service
1097
systemctl mask rc-local.service
1098
</pre>
1099
</div>
1100
</div>
1101
</div>
1102

    
1103
<div id="outline-container-sec-5-2" class="outline-3">
1104
<h3 id="sec-5-2"><span class="section-number-3">5.2</span> Gestion des interfaces réseaux</h3>
1105
<div class="outline-text-3" id="text-5-2">
1106
<p>
1107
Vous pouvez avoir plus d’informations sur le problème du service
1108
<code>networking.service</code>, la commande :
1109
</p>
1110

    
1111
<div class="org-src-container">
1112

    
1113
<pre class="src src-sh">systemctl status networking.service
1114
</pre>
1115
</div>
1116

    
1117
<p>
1118
renvoie :
1119
</p>
1120

    
1121
<pre class="example">
1122
● networking.service - Raise network interfaces
1123
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
1124
  Drop-In: /run/systemd/generator/networking.service.d
1125
           └─50-insserv.conf-$network.conf
1126
   Active: failed (Result: exit-code) since mer. 2017-07-19 10:13:22 CEST; 1min 4s ago
1127
     Docs: man:interfaces(5)
1128
  Process: 56 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
1129
  Process: 51 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] &amp;&amp; [ -n "$(ifquery --read-environment --list --exclude=lo)" ] &amp;&amp; udevadm settle (code=exited, status=0/SUCCESS)
1130
 Main PID: 56 (code=exited, status=1/FAILURE)
1131

    
1132
juil. 19 10:13:21 eclair systemd[1]: Starting Raise network interfaces...
1133
juil. 19 10:13:22 eclair ifup[56]: RTNETLINK answers: File exists
1134
juil. 19 10:13:22 eclair ifup[56]: Failed to bring up containers.
1135
juil. 19 10:13:22 eclair systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
1136
juil. 19 10:13:22 eclair systemd[1]: Failed to start Raise network interfaces.
1137
juil. 19 10:13:22 eclair systemd[1]: networking.service: Unit entered failed state.
1138
juil. 19 10:13:22 eclair systemd[1]: networking.service: Failed with result 'exit-code'.
1139
</pre>
1140

    
1141

    
1142
<p>
1143
La ligne <code>ifup[56]: RTNETLINK answers: File exists</code> signifie que
1144
l’adresse IP existe déjà, car nous l’avons configurée en dur dans
1145
<code>/var/lib/lxc/eclair/config</code> pour la mise en route.
1146
</p>
1147

    
1148
<p>
1149
Il nous suffit de supprimer la ligne de configuration du conteneur et
1150
de le redémarrer.
1151
</p>
1152

    
1153
<p>
1154
Sur le maître AmonEcole, exécuter la commande suivante :
1155
</p>
1156

    
1157
<div class="org-src-container">
1158

    
1159
<pre class="src src-sh">sed -i -e '/lxc.network.ipv4/d' /var/lib/lxc/eclair/config
1160
</pre>
1161
</div>
1162

    
1163
<p>
1164
et redémarrer le conteneur Eclair avec la commande :
1165
</p>
1166

    
1167
<div class="org-src-container">
1168

    
1169
<pre class="src src-sh">lxc-stop -n eclair &amp;&amp; lxc-start -n eclair
1170
</pre>
1171
</div>
1172
</div>
1173
</div>
1174
<div id="outline-container-sec-5-3" class="outline-3">
1175
<h3 id="sec-5-3"><span class="section-number-3">5.3</span> Vérifier l’état des services systemd</h3>
1176
<div class="outline-text-3" id="text-5-3">
1177
<p>
1178
Vous devez maintenant avoir le retour <code>running</code> de la commande <code>systemctl is-system-running</code>.
1179
</p>
1180
</div>
1181
</div>
1182
</div>
1183

    
1184

    
1185
<div id="outline-container-sec-6" class="outline-2">
1186
<h2 id="sec-6"><span class="section-number-2">6</span> Points non réglés</h2>
1187
<div class="outline-text-2" id="text-6">
1188
<ul class="org-ul">
1189
<li>La commande <code>reconfigure</code> affiche des messages d’erreur :
1190
<ul class="org-ul">
1191
<li>pour tout ce qui à trait à la gestion du matériel ;
1192
</li>
1193
<li>pour tout ce qui a trait à la gestion des noyaux ;
1194
</li>
1195
</ul>
1196
</li>
1197
<li>La commande <code>diagnose</code> affiche des messages d’erreur :
1198
<ul class="org-ul">
1199
<li>pour l’accès à la passerelle : bien que les mises à jour fonctionnent
1200
</li>
1201
<li>pour l’accès aux DNS : bien que la commande <code>dig www.fdn.fr</code> fonctionne
1202
</li>
1203
</ul>
1204
</li>
1205
</ul>
1206
</div>
1207
</div>
1208
</div>
1209
<div id="postamble" class="status">
1210
<p class="author">Auteur: Daniel Dehennin</p>
1211
<p class="date">Created: 2017-08-23 mer. 09:00</p>
1212
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
1213
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
1214
</div>
1215
</body>
1216
</html>