Je recommanderais d'utiliser un mélange de pré-amorçage Debian, où vous donnez à l'installateur un fichier texte qui répond à toutes les questions qu'il poserait, et Puppet.
La raison de l'utilisation de la préconfiguration, plutôt que de FAI, est que vous n'avez pas à configurer une image en premier et à gérer sa mise à jour. Vous vous retrouverez avec une installation très similaire à ce que vous auriez si vous les faisiez tous à la main. Lorsque vous venez d'installer une nouvelle version, vous devrez mettre à jour un fichier de configuration avec les modifications, plutôt que d'avoir à reconstruire une nouvelle image.
Un outil de gestion de configuration est particulièrement utile lorsque vous avez plusieurs serveurs jouant le même rôle et que vous souhaitez qu'ils soient identiques, par exemple un cluster de serveurs Web. Cependant, ils peuvent également être utiles pour configurer l'installation de base de tous les serveurs. Vous allez vouloir installer des packages particuliers sur tous vos serveurs, comme ntpd et un MTA. Vous allez vouloir changer un fichier de configuration sur tous vos serveurs. Un avantage supplémentaire est que vous pouvez conserver vos manifestes dans quelque chose comme subversion et garder une trace de ce qui a changé sur un serveur et qui l'a fait et pourquoi. La gestion de la configuration peut également vous sauver la vie en cas de panne d'un serveur et vous devez la reconstruire rapidement. Installez le système d'exploitation (à l'aide de FAI ou de préconfiguration), installez la marionnette et c'est parti, reconstruit exactement comme avant. De toute évidence, vous devrez conserver des sauvegardes de données.
La gestion de la configuration nécessite un dévouement pour vous assurer que vous n'effectuez que des modifications et que les coûts initiaux seront configurés, mais une fois que vous aurez une configuration fonctionnelle, vous ne le regretterez pas.
Puppet est le plus moderne des deux outils que vous avez mentionnés. Je le recommande vraiment à tout le monde. La configuration est un langage déclaratif et il est facile de construire des constructions de niveau supérieur. Il y a aussi une très grande communauté autour d'elle et il y a toujours des gens bienvenus pour aider sur la liste de diffusion ou sur le canal IRC.
Je recommanderais CFengine pour tout environnement de plus de 2-3 cases et où vous avez un concept de «modèles» ou de serveurs remplissant des rôles spécifiques.
Pourquoi? Autrement dit, il réduit les erreurs, vous disposez d'un outil qui garantira que les autorisations de fichiers / répertoires sont correctes partout dans l'environnement et lorsque vous venez de déployer plus de serveurs, l'outil gère absolument tout et ne fait jamais d'erreurs.
Contrairement à même un administrateur système qualifié déployant un serveur Web à la fin d'un quart de travail de 12 heures lorsque les choses ont déjà mal tourné ... Sont-ils susceptibles de se souvenir de ce petit fichier de configuration désagréable qui doit aller dans / etc / random / location / foo / bar sinon l'application échouera silencieusement à faire quelque chose d'assez important, comme facturer les clients? :)
Des outils comme CFengine sont également un excellent moyen d'effectuer des mises à jour de sécurité à l'échelle de l'environnement. Déposer une configuration Nagios (NRPE) sur toutes les boîtes est également un jeu d'enfant. Que vous avez affaire à cinq boîtes ou cinq cents boîtes vous allez gagner du temps avec CFengine.
Il est probablement intéressant de noter que mon environnement est un peu plus grand, mais j'ai également déployé CFengine pour des environnements plus petits que vous ne le notez, d'où la recommandation!
Votre prochaine question sera probablement CFengine vs Puppet? C'est une décision plus difficile à prendre, et j'ai toujours opté pour CFengine en raison (au début) d'une certaine immaturité de Puppet, en particulier en ce qui concerne la journalisation des erreurs .... ces jours-ci, je ne suis vraiment pas sûr - jouer à voir? En repensant à mes problèmes spécifiques avec Puppet, ils étaient liés au certificat SSL, rappelant douloureusement le temps que j'ai passé 3 heures à diagnostiquer les problèmes de connectivité du serveur <-> client dans irc.freenode.net/#puppet avec quelques RTFM et RTFS lourds uniquement pour trouver une erreur, ne pas être enregistré, et Luke a dit: "Ah, c'est vraiment difficile à corriger" et n'a jamais fait. :(
la source
En plus de cfengine et marionnette, il y a aussi un chef . Je suggérerais fortement d'utiliser l'un de ces outils, car les choses évolueront toujours dans des directions inattendues. Cela permet de gérer les choses dans un emplacement centralisé.
La chose importante à reconnaître est que les chances sont que vous n'obtiendrez pas tout, mais si vous pouvez au moins obtenir 90%, c'est un début. De plus, c'est amusant et vous facilitera la vie à long terme. Enfin, c'est une bonne compétence d'avoir à aller de l'avant.
la source
J'utilise cfengine depuis 5 ans pour installer debian (de Woody à Lenny de nos jours). Avec etch, je crée un installateur Debian personnalisé. Grâce à la préconfiguration, une seule question se pose: "quel est le nom d'hôte". Après cela, cfengine configure le serveur entier (dns + dhcp avec dnssec, samba, ntpd, utilisateurs et mots de passe par défaut (Samba), ssh, openvpn, apache vHosts, sauvegarde avec rsnapshot sur LVM, webminmodules personnalisés, etc.).
Même lorsque j'installe un seul serveur, j'utilise cfengine-scripts de ma boîte à outils comme ceci:
J'aime cfengine, car les scripts cf2 sont quelque peu lisibles par l'homme.
il vaut donc vraiment la peine de travailler avec des outils de gestion automatique de la configuration.
/ thorsten
la source
Cela en vaut la peine, même pour un petit site. Il s'agit de cohérence à mesure que vous grandissez. Et vous savez que votre site va grandir. Mieux vaut commencer alors que vous êtes encore petit. Cfengine est génial. Surtout la version 3, qui peut gérer tous les gestionnaires de paquets à travers le domaine, et sa vraie légèreté et sécurité et cela "fonctionne tout simplement". Puppet n'a tout simplement pas livré ce qu'il prétendait. Je n'ai pas essayé le chef.
L'avantage de cfengine par rapport aux autres est qu'il est ultra léger mais a en fait plus de capacités. C'est la sécurité, c'est comme ssh, plutôt que les certificats web utilisés par marionnette. Quand j'ai parlé de cfengine à mon patron, il pensait que c'était de la science-fiction :) Si vous cherchez quelque chose de futuriste, essayez de lire certains des articles de recherche de Marc Burgess. Truc cool.
la source
L'outil numéro un que j'aurais aimé avoir lors de l'exécution d'un petit site est la création de boutons-poussoirs. Il facilite les correctifs, les mises à jour et les reconstructions, ce qui peut résoudre une multitude d'autres problèmes à l'avenir.
Pas de ssh correctement installé sur toutes les boîtes? pas de boucle / wget / vim non plus? Qu'en est-il des autres outils internes que vous aimeriez avoir sur chaque boîte?
La gestion centralisée de vos serveurs est l'un des premiers outils que vous devriez utiliser pour faciliter les efforts futurs.
la source
Je suis d'accord avec tout le monde ici. Vous devriez commencer à apprendre et à mettre en place une infrastructure fonctionnelle lorsque vous n'êtes pas trop grand. Parce qu'alors vous êtes prêt quand vous grandissez.
Selon ce que vous voulez exécuter, j'opterais pour FAI, cfengine et pré-amorçage pour Debian / Ubuntu. FAI peut fonctionner avec de nombreux outils différents, c'est donc un bon début pour toute distribution de type Debian. Avec la configuration contrôlée par classe FAI (et cfengine), vous pouvez facilement diviser vos installations en petits modules, que vous pourrez ensuite sélectionner lesquels utiliser pour chacune de vos machines. De cette façon, il sera utile même si vous avez plusieurs machines différentes. C'est en fait plus utile, car vous documenterez votre installation avec ces scripts. Et lorsque vous installez sur une nouvelle machine, vous n'oublierez rien.
Oui, vous DEVRIEZ avoir des machines à tester avant de déployer vos modifications dans une installation en direct. Mais avec un script de configuration comme celui-ci, vous n'oublierez pas de faire une étape de l'installation en direct.
la source