Pour éditer le wiki, il faut demander un compte à un Lapin !
Difference between revisions of "Howto:Administration systeme"
(→Changelog: Page dédiée Howto:Remplir le Changelog) |
m (correction typos) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
== En vrac == | == En vrac == | ||
+ | ; Il faut avoir une clé GPG et une clé SSH pour participer : GPG sert à chiffrer les trousseaux de mots de passe, la clé SSH sert à se connecter aux machines. | ||
; On utilise <code>sudo</code>, et jamais <code>su -</code> : Pour savoir ce qui a été fait, par qui et quand, c'est plus pratique de faire un <code>fgrep sudo /var/log/auth</code> que de devoir parser {{fichier|/root/.bash_history}}. | ; On utilise <code>sudo</code>, et jamais <code>su -</code> : Pour savoir ce qui a été fait, par qui et quand, c'est plus pratique de faire un <code>fgrep sudo /var/log/auth</code> que de devoir parser {{fichier|/root/.bash_history}}. | ||
; On n'utilise jamais le port 22 pour le SSH : Il ne s'agit pas de sécurité par l’obscurité, c'est juste que les scanbots chinois font trop de bruit. Par défaut, on utilise le port 222. | ; On n'utilise jamais le port 22 pour le SSH : Il ne s'agit pas de sécurité par l’obscurité, c'est juste que les scanbots chinois font trop de bruit. Par défaut, on utilise le port 222. | ||
+ | ; On utilise un [[proxy]] pour les gestionnaires de paquets : Ça rend les mises à jour plus rapides. | ||
== LeLoopFHS == | == LeLoopFHS == | ||
Line 49: | Line 51: | ||
* {{fichier|/home/common}} | * {{fichier|/home/common}} | ||
− | == Comptes | + | == Accès aux machines == |
+ | |||
+ | === Administrateurs === | ||
+ | |||
+ | Partout où c'est possible, on utilise des comptes nominatifs et on s'authentifie via des clés SSH (et on met les comptes des admins globaux dans Puppet). | ||
+ | |||
+ | Pour les [[Switching|trucs]] qui nécéssitent un mot de passe partagé, on met le nom d'utiliateur et le mode de passe dans le [[password-store]]. | ||
+ | |||
+ | === Comptes publics === | ||
Pour tout compte "public" dont le mot de passe est connu/partagé, il convient de désactiver la connexion SSH par mot de passe, et/ou de désactiver la connexion à distance. On ne veut pas filer de shell gratos à la planète entière. | Pour tout compte "public" dont le mot de passe est connu/partagé, il convient de désactiver la connexion SSH par mot de passe, et/ou de désactiver la connexion à distance. On ne veut pas filer de shell gratos à la planète entière. | ||
Line 56: | Line 66: | ||
Match User leloop | Match User leloop | ||
PasswordAuthentication no | PasswordAuthentication no | ||
− | |||
− | |||
Quand on attrape quelqu'un qui laisse un compte public <code>leloop/leloop</code> dans le groupe <code>sudo</code>, on le fouette devant tout le monde [[Rencontre hebdomadaire|le mercredi]]. Cul nu. | Quand on attrape quelqu'un qui laisse un compte public <code>leloop/leloop</code> dans le groupe <code>sudo</code>, on le fouette devant tout le monde [[Rencontre hebdomadaire|le mercredi]]. Cul nu. | ||
+ | |||
+ | == Configuration centralisée == | ||
+ | |||
+ | Vu le nombre de machines virtuelles actuellement présentes au Loop, [https://docs.puppetlabs.com/puppet/ Puppet] est utilisé pour déployer la configuration de base de toutes les machines (utilisation du miroir/proxy local pour les machines, accès des administrateurs, paquets devant être présent sur toutes les machines, etc). | ||
+ | |||
+ | Le code Puppet est disponible dans le repository [https://git.leloop.org/leloopsysadmin/leloopinfra LeLoopInfra] du [[Git|Gitlab]]. | ||
+ | |||
+ | Le principe est de ne mettre dans la gestion de configuration centralisée que ce qui est parfaitement identique, et de permettre des configuration locales spécifiques à certaines machines en plus (via des fichiers .conf.d locaux). | ||
== Notifications == | == Notifications == | ||
Line 67: | Line 83: | ||
* Le Trac n'a pas eu le succès attendu, mais ça pourrait changer avec la récente multiplication des sudoers. | * Le Trac n'a pas eu le succès attendu, mais ça pourrait changer avec la récente multiplication des sudoers. | ||
* Certains bots tels que [[lapool]] donnent en temps réel des infos sur ce qui se passe. | * Certains bots tels que [[lapool]] donnent en temps réel des infos sur ce qui se passe. | ||
− | * Une combinaison de diff quotidien du Changelog, de rapports de {{deb|fcheck}} et autres {{deb|logwatch}}, envoyée par mail, est en cours de fignolage. Pour l'instant ça fait quand même pas mal de mails <small>(mais on se soigne)</small>. | + | * Une combinaison de diff quotidien du Changelog ({{deb|metche}}), de rapports de {{deb|fcheck}} et autres {{deb|logwatch}}, envoyée par mail, est en cours de fignolage. Pour l'instant ça fait quand même pas mal de mails <small>(mais on se soigne)</small>. |
+ | |||
+ | À noter que sur certains systèmes, {{deb|metche}} remplit {{fichier|/var/lib/metche}} assez rapidement<ref>https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=360371 : bugreport de {{deb|metche}} sur le DBTS.</ref><ref>https://labs.riseup.net/code/issues/2977 : bugreport de https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript sur le BTS upstream.</ref>. À défaut d'un bugfix ou d'une solution plus élégante, un script de nettoyage<ref>https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript : script de nettoyage de {{deb|metche}}</ref> pourrait être mis en place. | ||
== Voir aussi == | == Voir aussi == | ||
* Le brouillon de guide [[:Category:Kollectiv_admin|Kollectiv' Admin]] | * Le brouillon de guide [[:Category:Kollectiv_admin|Kollectiv' Admin]] | ||
+ | |||
+ | == Références == | ||
+ | |||
+ | <references /> | ||
[[Category:Infrastructure]] | [[Category:Infrastructure]] | ||
[[Category:Documentation]] | [[Category:Documentation]] |
Latest revision as of 18:55, 27 June 2015
Le Loop déploie quelques services, qu'il faut bien administrer collectivement. Cette page tente de recenser quelques pratiques établies avec le temps, forgées sur l'enclume du bon sens et façonnées par l’expérience. S'il manque des choses (et il en manque pas mal), c'est principalement sur ToM qu'il faut taper.
Contents
En vrac
- Il faut avoir une clé GPG et une clé SSH pour participer
- GPG sert à chiffrer les trousseaux de mots de passe, la clé SSH sert à se connecter aux machines.
- On utilise
sudo
, et jamaissu -
- Pour savoir ce qui a été fait, par qui et quand, c'est plus pratique de faire un
fgrep sudo /var/log/auth
que de devoir parser/root/.bash_history
. - On n'utilise jamais le port 22 pour le SSH
- Il ne s'agit pas de sécurité par l’obscurité, c'est juste que les scanbots chinois font trop de bruit. Par défaut, on utilise le port 222.
- On utilise un proxy pour les gestionnaires de paquets
- Ça rend les mises à jour plus rapides.
LeLoopFHS
Quelques fichiers et dossiers se retrouvent sur toutes nos machines.
Changelog
Habituellement dans /root/Changelog
, mais on peut aussi essayer les vieux /etc/Changelog
ou chercher dans /etc/leloop/
.
On y décrit chacune des opérations effectuées. Il ne s'agit pas de recopier la doc, mais d'indiquer quand, qui, quoi et à quel endroit. L’idée est qu'en cas de question, on devrait pouvoir trouver l'essentiel d'un simple grep KEYWORD Changelog
.
Un exemple :
2013-02-11 ToM <tom@leloop.org> * www: sous-domaine dedie pour SpaceAPI (/etc/apache2/sites-available/spaceapi.leloop.org, /etc/apache2/sites-available/leloop.org, /var/log/apache2/spaceapi.leloop.org, /var/www/spaceapi.leloop.org) * logrotate: fix path for nginx, +weekly +dateext (/etc/logrotate.d/nginx)
Services
On pourrait mettre /etc/services
à jour, ou bien renseigner /root/Services
:
TFTP ==== init: /etc/init.d/atftpd conf: /etc/default/atftpd fichiers: /srv/ftfp
À noter qu'il ne s'agit que d'un résumé de ce que le fichier Changelog
nous dit déjà.
Autres
Des reliquats du bordel passé...
-
/home/leloop
-
/home/common
Accès aux machines
Administrateurs
Partout où c'est possible, on utilise des comptes nominatifs et on s'authentifie via des clés SSH (et on met les comptes des admins globaux dans Puppet).
Pour les trucs qui nécéssitent un mot de passe partagé, on met le nom d'utiliateur et le mode de passe dans le password-store.
Comptes publics
Pour tout compte "public" dont le mot de passe est connu/partagé, il convient de désactiver la connexion SSH par mot de passe, et/ou de désactiver la connexion à distance. On ne veut pas filer de shell gratos à la planète entière.
Par exemple, dans /etc/ssh/sshd_config
:
Match User leloop PasswordAuthentication no
Quand on attrape quelqu'un qui laisse un compte public leloop/leloop
dans le groupe sudo
, on le fouette devant tout le monde le mercredi. Cul nu.
Configuration centralisée
Vu le nombre de machines virtuelles actuellement présentes au Loop, Puppet est utilisé pour déployer la configuration de base de toutes les machines (utilisation du miroir/proxy local pour les machines, accès des administrateurs, paquets devant être présent sur toutes les machines, etc).
Le code Puppet est disponible dans le repository LeLoopInfra du Gitlab.
Le principe est de ne mettre dans la gestion de configuration centralisée que ce qui est parfaitement identique, et de permettre des configuration locales spécifiques à certaines machines en plus (via des fichiers .conf.d locaux).
Notifications
Pour que toutes les équipes d'admin soient au courant des opérations effectuées, plusieurs systèmes sont en phase d’étude ou de test (voire d'abandon).
- Le Trac n'a pas eu le succès attendu, mais ça pourrait changer avec la récente multiplication des sudoers.
- Certains bots tels que lapool donnent en temps réel des infos sur ce qui se passe.
- Une combinaison de diff quotidien du Changelog (
metche
), de rapports defcheck
et autreslogwatch
, envoyée par mail, est en cours de fignolage. Pour l'instant ça fait quand même pas mal de mails (mais on se soigne).
À noter que sur certains systèmes, metche
remplit /var/lib/metche
assez rapidement[1][2]. À défaut d'un bugfix ou d'une solution plus élégante, un script de nettoyage[3] pourrait être mis en place.
Voir aussi
- Le brouillon de guide Kollectiv' Admin
Références
- ↑ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=360371 : bugreport de
metche
sur le DBTS. - ↑ https://labs.riseup.net/code/issues/2977 : bugreport de https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript sur le BTS upstream.
- ↑ https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript : script de nettoyage de
metche