Voici une liste de conseils que je donne en général à des personnes qui débutent en administration système (qui viennent souvent du monde du développement). Ce sont des conseils qui me sont très personnels.
Que ça soit pour des serveurs ou des noms de domaines je conseil toujours de nommer :
database1
, databases02
, etc. Un enfer.cache1
plutôt que varnish1
front1
, front2
, front3
, etc plutôt que front01
, front02
etc car le jour où vous dépassé les 99 serveurs vous êtes mal (et non, la pratique à prouvée que « ça n'arrivera jamais » est faux)Il existe 2 grandes familles de nommage pour les serveurs : Pet et Cattle.
Pet consiste à donner des noms uniques mignons à ses serveurs, comme des animaux de compagnie (par exemple tardis
, r2d2
, bobby
, etc).
Cattle consiste à donner des noms pratiques et numérotés, comme du betails (par exemple cache1
, front24
, database8
, etc).
tardis.example.org
, database8.production.example.org
, etcblog.example.org
→ front1.example.org
Cela vous permettra de ne pas avoir plusieurs fois les mêmes infos (adresses IP, etc) dans votre zone DNS et donc d'éviter les erreurs lors de changements, migrations, etc.
Faites-le maintenant !
Non, pas dans 6 mois, pas quand ça sera « la priorité », pas « quand tout sera bien en place », pas « après la release », pas « après tel truc important », … Maintenant !
Pensez aussi à backup ce que vous envoyez à des services tiers, par exemple votre zone DNS si vous ne l'hébergez pas vous-même (avoir un fichier de zone à plat dans un git que vous modifiez quand vous modifiez la zone chez votre fournisseur), ça vous sera utile en cas de panne ou de perte de données (oui même les professionnelles du secteur peuvent perdre des données).
À titre personnel sur mes infra j'ai tendance à utiliser Borg avec Borgmatic déployés avec un rôle Ansible.
Mettez en place de la surveillance et des alertes.
Mettez-la en place tôt (juste après les sauvegardes logiquement), pour surveiller tout ce qui est important.
Faites-le aussi au fur et à mesure. N'attendez pas la fin du projet, la release ou que sais-je. Ne vous attendez pas non plus à avoir un case Monitoring
à cocher dans votre liste : le monitoring se met en place en continu au fur et à mesure que vous ajouter/modifier votre infra.
Ayez le réflexe à chaque fois que vous ajouter quelque chose dans votre infra de l'ajouter aussi à votre monitoring en même temps, pas après car sinon vous ne le ferait jamais. Chaque ajout de composant à votre infra doit comporter une case « Ajouter le monitoring ».
Pour une petite infra de quelques serveurs j'ai tendance à bien aimer Munin, déployé avec 3 rôles Ansible : un serveur, un nœud et un fastcgi.
Automatisez votre infra tant qu'il est encore temps !
Par la suite à chaque ajout d'un composant vous pourrez l'automatiser (d'ailleurs vous devriez déployer sur votre infra que via l'outil d'automatisation). Pensez à bien documenter votre automatisation et à vous y retrouver.
J'ai tendance à aimer Ansible mais il en existe d'autres.
Documentez votre infra.
Que ça soit avec des fichiers textes, un wiki, sur git, etc. Documentez votre infra pour savoir où vous en êtes. Aussi pour aider d'éventuelles personnes qui pourraient vous rejoindre.
Vous pouvez avoir un index des serveurs avec leurs infos techniques, leur emplacement géographique, etc.
Vous pouvez aussi documenter la vie de votre infra :
Faites des schemas si besoin.