Comment gérer l'installation initiale d'un server Linux?

Au cours des dernières semaines, j'ai découvert que mes compétences sysadmin Linux étaient assez faibles, alors j'ai acheté un plus grand disque dur (1,5 tb) et j'ai commencé à jouer avec des machines virtuelles. Je suis en train d'expérimenter assez fort, donc je finis par réinstaller beaucoup. Mon problème est, je ne sais pas vraiment, quelle est la meilleure façon de faire la configuration initiale .

Ma première idée était de créer un script bash simple, qui installerait tous les packageages nécessaires, comstackrait des sources, configurerait des counts, etc. Mais mon problème était qu'il était habituellement coincé au milieu, à cause d'un changement ou d'un problème, alors j'ai eu à manier de manière manuelle de toute façon. De même, un tel script dépassera très rapidement.

Une autre idée, que j'essaie maintenant, est d'écrire une list de contrôle avec les choses que je dois faire, puis de l'installer manuellement tout et de vérifier les choses sur le papier. Cela a avantage d'avoir des étapes plus generics (comme l'installation de MySQL), mais je dois faire tout ce qui est manuel, ce qui n'est pas très pratique.

Les dernières options sont l'installation d'un système entier manuelle, le configurent, puis créez une image de partition et rétablissez-la éventuellement au lieu d'une installation propre. Bien que cela me semble être une bonne solution pour l'installation de 20 servers à la fois, cela sera également dépassé, alors je devrais créer une installation nouvelle, à jour et propre, et créer son image à nouveau.

Je sais que la situation différente s'applique à différentes mesures, donc il n'y a probablement pas une seule solution.

Donc, ma question est.

Avez-vous une list de contrôle, un script d'installation, ou tout ce genre de chose, lorsque vous installez un nouveau système?

Il y a vraiment deux domaines différents que vous voulez regarder:

  • Provisionnement en métal nu – allant d'un server OS-less à un avec un operating system de base installé sur celui-ci. Les outils à fournir varient selon le operating system et la dissortingbution: Windows a WDS , Solaris a JumpStart et Linux a une variété selon la dissortingbution, avec kickstart et FAI étant parmi les plus populaires. Vous findez également que les services en nuage comme EC2 ont leurs propres methods de gestion des approvisionnements en métal nu autour de la construction d'une machine virtuelle préchargée, vous pouvez démarrer.
  • Une fois que vous avez une image de base du operating system, configurez-le comme un server utile. Pour cela, regardez les outils tels que Chef , Puppet , bcfg2 ou cfengine . Le plus grand avantage d'utiliser un outil comme celui-ci au cours d'un script, c'est qu'ils gèreront également les modifications apscopes à votre server au fil du time, en plus de fournir de nouveaux servers.

Puisque nous parlons de machines virtuelles, pourquoi ne pas utiliser des images ? Pour la plupart des systèmes VM, vous pouvez avoir une sorte de model utilisé par la machine initiale. Ainsi, vous pouvez toujours créer un système de base, le configurer à votre convenance en tant que système de base générique, puis créer simplement toutes vos autres machines dérivées à partir de ce model de base. La façon dont vous l'accompliriez dépend de la technologie de virtualisation que vous avez utilisée.

Pour quelque chose comme OpenVZ / VServer, les templates sont utilisés de toute façon – alors, faites simplement une personnalisation. Pour quelque chose comme KVM, il suffit de copyr l'image du disque dur ou vous pouvez même utiliser une combinaison d'images de disque dur en lecture seule avec des instantanés. D'autres ont également des capacités similaires.

Je vais toujours avec Debian netinstall wirh. Il s'agit d'un système minimal absolu. Ensuite, étape par étape, la construction du système avec apt-get. Vous pouvez mettre les commands apt-get dans un file et utiliser ce file plus tard pour rebuild le système, même à un certain point.

Je suis très heureux d'utiliser un server cobbler qui gère centralement toutes les machines (métal nu, dom0 et VM) que j'ai.

À cette fin, j'ai créé une machine virtuelle vmware sur laquelle j'ai installé mon server cobbler, que je peux l'utiliser partout où j'ai besoin, tout simplement mon ordinateur portable sur le réseau local ou la machine à installer à travers un câble croisé.

Ceci est très évolutif, facile à manipuler et fait de la standardisation le centre de vos installations.

Vous n'avez pas mentionné la saveur de Linux. J'aimerais soumettre la recommandation du cobower. En plus de l'approvisionnement, il peut faire une gestion de configuration vraiment basique, mais je reorderais vraiment une marionnette pour la gestion de la configuration. Pour démarrer, il sera géré et maintenu synchronisé, une copy de la mise à jour repos localement. Cobbler est assez facile à installer et à exécuter, les marionnettes (et tous les autres outils de gestion de configuration) ont une courbe un peu plus raide.