Comment automatiser la configuration du serveur Linux?

25

Existe-t-il un moyen d'automatiser la configuration du serveur Linux? Je travaille sur la configuration de quelques nouveaux serveurs de construction, ainsi que d'un serveur FTP, et je voudrais automatiser autant de processus que possible.

La raison en est que l'installation et la configuration de ces serveurs doivent être effectuées de manière facilement reproductible. Nous avons pensé qu'automatiser autant de ce processus que possible le rendrait plus facile à répéter selon les besoins à l'avenir.

Essentiellement, tous les serveurs ont besoin d'installer le système d'exploitation, ainsi qu'une poignée de packages. Il n'y a rien de trop compliqué dans les configurations.

Alors, existe-t-il un moyen d'automatiser ce processus (ou au moins une partie de celui-ci)?

EDIT: Supposons également que j'utilise Kickstart, existe-t-il un moyen de supprimer les référentiels Ubuntu par défaut et d'installer simplement les packages d'une collection de fichiers .deb que nous avons localement (de préférence via apt, plutôt que dpkg)?

user1617942
la source
Quelle distribution avez-vous choisi d'installer? Ce serait utile pour déterminer la prochaine étape
eyoung100
attention cependant, la tâche d'automatisation peut prendre du temps. Si vous prévoyez d'installer moins de 10 hôtes, cela pourrait ne pas valoir la peine.
Archemar
J'ai récemment découvert les fonctionnalités offertes par saltstack (le repo le plus contribué sur Github). Je recommanderais fortement d'y regarder car il offre des outils pour à la fois créer de nouveaux serveurs sur des services tels que des aws et déployer des configurations, des paramètres, des fichiers d'écriture, un accès shell distant, un accès shell en bloc. même restriction d'accès. Il semble à peu près tout ce dont vous auriez besoin pour faire. Bien que j'ai de bons amis qui ne jurent que par Ansible pour les nouvelles configurations de serveur.
ThorSummoner
+1 à vous et mattdm ... Je ne savais pas que ce forum existait jusqu'à ce que je le voie sur les Hot Network Questions et je n'avais même pas pensé que cette question avait une réponse. Je suis tellement content que vous ayez demandé et il a été répondu si bien !
Sylas Seabrook

Réponses:

36

Oui! C'est un gros problème, et incroyablement commun. Et il existe deux approches de base. Une façon consiste simplement à installer des scripts, comme par exemple utilisé dans Fedora, RHEL ou le kickstart de CentOS. Vérifiez cela dans le guide d'installation de Fedora: Installations Kickstart . Pour votre cas simple, cela peut être suffisant. (Prenez ceci comme exemple; il existe des systèmes similaires pour d'autres distributions, mais comme je travaille sur Fedora, c'est ce que je connais.)

L'autre approche consiste à utiliser la gestion de configuration . C'est un gros sujet, mais regardez dans Puppet, Chef, Ansible, cfengine, Salt et autres. Dans ce cas, vous pouvez utiliser un kickstart générique très basique pour provisionner une machine minimale et l'outil de gestion de la configuration pour lui donner son rôle approprié.

À mesure que vos besoins et votre infrastructure croissent, cela devient extrêmement important. L'utilisation de la gestion des configurations pour toutes vos modifications signifie que vous pouvez recréer non seulement l'installation initiale, mais l' état évolué du système lorsque vous introduisez les ajustements et les corrections inévitables causés par l'interaction avec le monde réel.

Nous avons pensé qu'automatiser autant de ce processus que possible le rendrait plus facile à répéter selon les besoins à l'avenir.

Vous êtes absolument sur la bonne voie - c'est le principe fondamental de l'administration des systèmes professionnels. Nous avons même une image meme pour cela:

AUTOMATISEZ TOUTES LES CHOSES

Il est souvent modérément plus difficile à configurer au départ, et il peut y avoir une grande courbe d'apprentissage pour certains des systèmes les plus avancés, mais cela se paie pour toujours. Même si vous n'avez qu'une poignée de systèmes, pensez à combien vous voulez travailler pour les recréer en cas de catastrophe au milieu de la nuit ou lorsque vous êtes en vacances.

mattdm
la source
1
Grand merci! Je vais commencer à examiner tout cela.
user1617942
Vous n'avez pas mentionné Cobbler.
Brian
@staticx Oui, ce n'est pas complet. Il y a aussi tout un monde de systèmes d'approvisionnement: Cobbler, Foreman, Satellite / Spacewalk, FAI, Razor, et cela n'entre même pas dans le cloud.
mattdm
@ChrisK Ha, je dirais la même chose;)
William Edwards
0

Slingshot est un script pour automatiser l'installation et la configuration des packages logiciels Linux. Slingshot possède et utilise un modèle / système de messagerie.

http://www.dyncomp.net/what-is-slingshot/

Daniel Huckson
la source
0

Je recommande fortement Puppet . Il est largement utilisé, bien documenté et pris en charge.

Willian Paixao
la source