Aperçu
À certains égards, vous avez deux questions ici ..
- Comment créer et entretenir des serveurs standard?
- Comment conserver la configuration standard et apporter des modifications ultérieurement?
J'ai divisé ma réponse ci-dessous en abordant ces deux choses séparément, mais elles sont très étroitement liées. Je m'adresse ici aux solutions technologiques et non aux meilleures pratiques associées, telles que le contrôle des modifications.
Si cela ne couvre pas la portée de votre question, veuillez clarifier et je me ferai un plaisir de vous expliquer. Il s'agit d'une base nécessaire, essentielle pour une infrastructure technologique bien gérée.
Serveurs de bâtiment
Je n'aime pas les images dans le monde UNIX; c'est plus une approche de style Windows. Même certaines personnes Windows semblent se recentrer sur les scripts pour les versions standard maintenant.
Le satellite semble devenir quelque peu populaire dans le monde RHEL. Spacewalk est l'homologue Open Source. Vous devez absolument adhérer entièrement à l'approche RHEL pour l'utiliser. Cela sert à la fois de création de serveurs et de gestion de configuration.
Idéalement, vous voudriez établir des miroirs et des référentiels locaux sur un serveur de fichiers pour tous les logiciels nécessaires.
Tout d'abord, profitez de l'automatisation de votre build de distribution, comme Kickstart dans RHEL / CentOS. Le Kickstart serait une base de référence avec des variations, selon vos besoins. Les builds Kickstart peuvent être lancés à partir d'un serveur PXE.
Pour la partie la plus avancée de la construction et tout ce qui ne convenait pas à un fichier Kickstart, vous pouvez écrire vos propres scripts personnalisés. Cependant, vous pouvez trouver des marionnettes ou cfengine qui fonctionnent bien pour vous au lieu de scripts personnalisés. J'ai trouvé que les scripts personnalisés étaient les plus flexibles et ne se limitaient pas à une seule approche.
Si vous choisissez d'écrire vos propres scripts, je recommande un script de base pour une configuration universelle. Ce serait la configuration de la sécurité, le renforcement et tout ce qui s'applique à toutes les versions. Puis un script final pour finaliser le rôle serveur. Par exemple, un serveur Web ou un serveur de base de données.
Maintien des normes
Ce que vous décrivez relève également du maintien des configurations. Les normes de construction, les mises à jour logicielles et d'autres choses sont liées aux générations mais se séparent à bien des égards.
Si vous choisissez de vous fier aux packages système plutôt que de créer vos propres builds basés sur la source pour vos rôles de serveur les plus importants, une grande partie de cela peut être maintenue avec les utilitaires système natifs. Cela peut être aussi simple qu'un script pour exécuter une for
boucle sur votre liste de serveurs et exécuter a yum -y update package
.
Pour la gestion de la configuration, c'est là que marionnettes, cfengine et autres utilitaires de gestion de la configuration entrent en jeu. Ce sont des utilitaires très utiles et fournissent les bases nécessaires sans écrire vos propres scripts à partir de zéro.
Lorsque vous mettez à jour vos normes de configuration pour vos serveurs, il est important de les remplir dans vos versions de serveur standard.