Guides/Installation-machine-physique.md
... ...
@@ -0,0 +1,202 @@
1
+# Configuration d'une nouvelle machine physique au ResEl
2
+
3
+## Avant de commencer ##
4
+Ce guide décrit toutes les étapes qui doivent être réalisées au niveau software sur une nouvelle machine physique. Il se veut suffisant à lui même, mais tous les services sont en général décrits de manière plus complète dans d'autres pages de ce wiki.
5
+De plus, bien qu'Ansible soit disponible pour réaliser la plupart de ces étapes, il est conseillé à tous les administrateurs de le faire eux-même au moins une fois. Rien ne remplace la pratique ;-)
6
+
7
+Quelques points, en dehors de ce guide, sont à considérer :
8
+* Avant d'installer un nouveau système sur une nouvelle, il convient de la tester : disques, mémoire, ...
9
+* Penser à vous rendre dans le BIOS ou équivalent pour activer les options souhaitées, par exemple le RAID,
10
+* Configurer l'IDRAC/ipmi si possible,
11
+* Renseigner les informations de la machine dans le LDAP.
12
+
13
+## Table des partitions
14
+
15
+## Réseau
16
+Configuration en ip fixe IMPÉRATIVE, pas de DHCP ! En effet, si un reboot accidentel survient à un moment où le serveur dhcp est indisponible (exemple :longue coupure de courant), l'interface ne sera pas configurée et le serveur sera ainsi injoignable.
17
+Dans le /etc/resolv.conf :
18
+
19
+ options timeout:1
20
+ search adm.resel.fr adm.rennes.resel.fr resel.fr rennes.resel.fr
21
+ nameserver 172.22.2.229
22
+ nameserver 172.22.2.32
23
+ nameserver 172.23.2.229
24
+
25
+## Les paquets indispensables
26
+ Il faut pouvoir se connecter à distance sur la machine et permettre à certaines personnes autorisées de pouvoir passer root, et pouvoir laisser un programme tourner, meme déconnecté (utile en cas de compilation, ou si on perd la connexion de façon accidentelle) :
27
+```
28
+apt-get install ssh sudo tmux vim postfix ntp ntpdate
29
+```
30
+
31
+Au ResEl, on versionne les configurations :
32
+```
33
+apt-get install git
34
+```
35
+
36
+Enfin, très fortement dépendant de la machine à mettre en place ou des besoins ponctuels, quelques utilitaires pour la gestion du réseau, ou la compilation :
37
+```
38
+apt-get install tcpdump nmap dnsutils traceroute tcptraceroute arping vlan
39
+```
40
+
41
+```
42
+apt-get install build-essential linux-header linux-source git patchutils
43
+```
44
+[TODO: vérifier le nom des paquets]
45
+
46
+### Configuration de sshd
47
+ Voici les options qui doivent apparaître impérativement dans /etc/ssh/sshd_config :
48
+
49
+```
50
+Protocol 2
51
+ListenAddress <adresse ip de la patte d'admin vlan997>
52
+PermitRootLogin no
53
+StrictModes yes
54
+PermitEmptyPasswords no
55
+AllowGroups sshusers
56
+```
57
+Et bien sûr, créer le groupe sshusers et ajouter les administrateurs humains dans le groupe sshusers.
58
+
59
+### Gestion du temps
60
+Le client ntp (Network Time Protocol) permet aux différents pc du ResEl d'être à la même heure, ce qui est bien utile lorsqu'un problème survient et que l'on doit étudier les logs. On préfère installer un serveur de temps local sur chaque serveur, ce qui présente l'avantage d'une synchronisation continue.
61
+
62
+Le serveur de temps du ResEl est disponible à l'adresse ntp.resel.fr. Il faut modifier la variable server dans /etc/ntp.conf :
63
+
64
+server ntp.resel.fr iburst dynamic
65
+
66
+[TODO: Second serveur de temps ?]
67
+
68
+### Serveur de mail
69
+ Il faut dans tous les cas configurer le serveur mail, afin de faire suivre les mails donnant le résultat des commandes programmées (crontab), etc. Les écrans debconf de exim4 ou postfix permettent de configurer facilement un serveur qui se contente d'envoyer des mails, il s'agit d'un « smarthost ». Les mails sont à faire suivre au serveur de courrier du resel. Le serveur smtp ne doit pas écouter sur l'interface eth0, ce n'est pas nécessaire. En éditant /etc/aliases, les mails destinés au root local sont généralement transmis à root@<machine>.resel.fr.
70
+*Exemple pour Postfix* : internet with smarthost, avec un relais smtp.maisel.enst-bretagne.fr et l'envoi des mails root locaux à root@…, ainsi que les mails de security vers security@…. Il convient de modifier /etc/postfix/main.cf et mettre en crochets [pegase.adm.maisel.enst-bretagne.fr] pour éviter d'utiliser la résolution du MX.
71
+
72
+### Log des événements
73
+ Le ResEl utilise LogCheck pour surveiller l'activité sur le serveur. Installer syslog-ng (qui remplace rsyslog ou syslogd qui est installé par défaut), et dans /etc/syslog-ng/syslog-ng.conf, ajouter le paragraphe suivant à la fin du fichier pour envoyer les logs vers veronica :
74
+
75
+```
76
+#########################################
77
+# Envoi des logs au serveur de logs #
78
+#########################################
79
+
80
+destination serveur_logs { udp("172.22.2.6" port(514)); };
81
+log {
82
+ source(s_src);
83
+ destination(serveur_logs);
84
+};
85
+```
86
+
87
+Puis relancer le service :
88
+```
89
+sudo systemctl restart syslog-ng
90
+```
91
+
92
+TODO: Il y a un rsyslog sur 2-3 machines. Se décider, harmoniser.
93
+
94
+## Monitoring
95
+ **Icinga2 :** Ajouter un fichier dans la configuration de Icinga2 sur le master eris, dans /etc/icinga2/zones.d/<campus> et reload icinga2.
96
+```
97
+sudo icinga2 daemon --validate
98
+sudo systemctl restart icinga2
99
+```
100
+
101
+**Munin :** Installer munin-node et munin-plugins-extra sur la machine.
102
+```
103
+sudo apt-get install munin-node munin-plugins-extra
104
+sudo ln -s /usr/share/munin/plugins/apt /etc/munin/plugins/apt
105
+```
106
+
107
+Dans le fichier de configuration /etc/munin/munin-node.conf, enlever l'écoute sur toutes les interfaces (host *), et à la place spécifier l'IP dans la zone admin et le port 4949. Il faut aussi permettre à Eris ou Cadillac de contacter la machine, donc ajouter (à adapter si la machine n'a pas d'interface dans le 997) :
108
+```
109
+allow ^172\.22\.2\.87$
110
+```
111
+
112
+Ajouter ce qu'il faut grapher dans /etc/munin/plugins/ (typiquement, des symlinks vers /usr/share/munin/plugins -- attention, pour les interfaces réseaux par exemple le nom du lien est important).
113
+
114
+Sur DGSI, ajouter la machine à la liste de celles qu'il faut scanner, dans /etc/munin/munin.conf.
115
+
116
+**Attention**, le plugin APT est (encore) buggué, voir le ticket résolu à ce sujet.
117
+
118
+## Mises à jours
119
+Installer apticron, apt-listchanges et apt-listbugs.
120
+
121
+* apticron, éditer le fichier /etc/apticron/apticron.conf,
122
+```
123
+ EMAIL="update-debian@resel.fr"
124
+ SYSTEM=" nom_de_la_machine : description de la machine "
125
+```
126
+Exemple pour gitu :
127
+
128
+SYSTEM="Gitu : La machine de Gitlab"
129
+
130
+ * Listchanges, éditer le fichier /etc/apt/listchanges.conf,
131
+```
132
+ [apt]
133
+ frontend=mail
134
+ email_address=update-debian@resel.fr
135
+ confirm=0
136
+ save_seen=/var/lib/apt/listchanges.db
137
+ which=both
138
+```
139
+
140
+* sources.list : Indiquer à la machine où aller chercher ses mises à jour. Pour Debian, le ResEl dispose de son propre miroir :
141
+
142
+```
143
+deb ftp://miroir.resel.fr/debian jessie main
144
+deb-src ftp://miroir.resel.fr/debian jessie main
145
+
146
+deb ftp://miroir.resel.fr/debian jessie-updates main
147
+deb-src ftp://miroir.resel.fr/debian jessie-updates main
148
+
149
+deb http://security.debian.org/ jessie/updates main
150
+deb-src http://security.debian.org/ jessie/updates main
151
+```
152
+
153
+## BackupPC
154
+
155
+## S.M.A.R.T.
156
+Les données S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) permettent aux disques durs et SSD de remonter de nombreux indicateurs sur leur durée de vie, leurs cycles de fonctionnement, leur usage,...
157
+Sur Linux, un programme permettant de récupérer ces informations est smartmontools :
158
+```
159
+apt-get install smartmontools
160
+```
161
+Pour l'activer sur le disque */dev/sdX*, lancer :
162
+```
163
+smartctl --smart=on --offlineauto=on --saveauto=on /dev/sdX
164
+```
165
+
166
+ Pour activer le daemon il faut décommenter "start_smartd=yes" dans /etc/default/smartmontools.
167
+
168
+Il faut également éditer le fichier de configuration */etc/smartd.conf*, commenter la ligne commençant par DEVICESCAN et ajouter une ligne par disque. On peut par exemple surveiller tous les attributs et programmer un test court par jour (à 05h) et un test long par semaine (le mardi à 05h, en faible affluence), en cas d'erreur un mail sera envoyé à root.
169
+```
170
+/dev/sda -a -o on -S on -s (S/../.././05|L/../../6/05) -m root
171
+/dev/sdb -a -o on -S on -s (S/../.././05|L/../../6/05) -m root
172
+```
173
+
174
+## Onduleurs
175
+ Si la machine est une machine physique il faut qu'elle écoute un onduleur pour pouvoir s'éteindre en toute sécurité.
176
+
177
+Il faut commencer par mettre le tableau des Onduleurs à jour et définir une priorité à la machine. Il faut ensuite installer *apcupsd* :
178
+```
179
+apt-get install apcupsd
180
+```
181
+Puis le configurer :
182
+
183
+Passer ISCONFIGURED à yes dans /etc/default/apcupsd
184
+Éditer le fichier de conf /etc/apcupsd/apcupsd.conf et changer les paramètres suivants :
185
+
186
+ UPSCABLE smart
187
+ UPSTYPE net
188
+ DEVICE 172.22.2.8 #L'IP du serveur correspondant à l'onduleur sur lequel la machine est branché
189
+
190
+ BATTERYLEVEL 50 #Le niveau correspondant à la priorité de la machine
191
+ MINUTES 6 #Le temps correspondant à la priorité de la machine
192
+
193
+ Relancer le daemon :
194
+``` sudo systemctl restart apcupsd ```
195
+
196
+ Tester la connexion : *apcaccess*
197
+
198
+#### TODOs
199
+* Mise en forme,
200
+* Réorganisation (install paquets / config, séparation machine physique / virtuelle)
201
+* Débat rsyslog / syslog-ng (?) -> ELK (projet en cours)
202
+* Lien BackupPC
... ...
\ No newline at end of file