10 votes

Puppet : gestion de (nombreux) serveurs virtuels Apache

Je me familiarise avec la gestion de la configuration en général et l'utilisation de Marionnette pour la mettre en œuvre en particulier. J'ai déjà effectué des recherches génériques ( également sur SF ) et j'envisage actuellement d'utiliser des hôtes virtuels Apache.

Nous accueillons de nombreux LAMPE (il est actuellement de l'ordre de plusieurs centaines) sur deux systèmes : un ordinateur de bureau et un ordinateur de bureau. Apache2 / mod_php un et un MySQL un - fondamentalement le contraire de une autre question déjà posée sur SF où il gère de nombreux serveurs avec quelques vhosts chacun (voire un seul, je ne sais pas). Je n'ai pas encore mis en place une configuration fonctionnelle dans Puppet mais cela ne devrait pas être un problème, il y a des nombreux exemples et des recettes.

En plus des fichiers de configuration apache (pas de problème ici je pense), chaque serveur virtuel devrait avoir des répertoires créés et des permissions vérifiées (par exemple, un répertoire racine pour chaque serveur virtuel contenant un documentroot, un répertoire tmp dédié, un répertoire de fichiers de session php dédié, éventuellement des certificats SSL, et ainsi de suite) sur le serveur web, et un utilisateur + une ou plusieurs bases de données sur le serveur MySQL.

L'ajout d'un nouveau serveur virtuel nécessiterait que Puppet le crée, la suppression d'un serveur nécessiterait que Puppet exécute un script qui sauvegardera les données des utilisateurs et supprimera ensuite les données actives des deux serveurs, mais aussi que chaque agent Puppet exécuté vérifie l'existence des répertoires, de la base de données, des permissions, etc.

Est-ce que je m'expose à des problèmes si je passe à des centaines d'hôtes virtuels avec toutes ces vérifications à chaque exécution de Puppet, en particulier celles concernant le système de fichiers (sur le serveur web), et surtout si à l'avenir les systèmes seront plus chargés ? (disons que nous visons une fourchette de 1000~2000 sites web comme un maximum raisonnable par serveur).

Existe-t-il une expérience en la matière sur le net ? J'ai cherché sur Google mais je n'ai rien trouvé. rapport signal/bruit en recherchant "Puppet" et "apache"...

4voto

Lasse Espeholt Points 296

Je pense que la gestion d'un grand nombre d'hôtes virtuels apache ne posera pas de problème, mais je ne peux pas l'affirmer. Les performances acceptables sont définies par les besoins de votre entreprise. Vous seul pouvez décider si c'est assez rapide. Voici un fil de discussion intéressant sur la réduction de la charge du processeur : https://groups.google.com/forum/?fromgroups#!topic/Puppet-users/sxtMvCnKnys[1-25]

Pour résumer le fil de discussion :

  • Augmenter le délai entre les exécutions de l'agent Puppet
  • ne pas programmer Puppet et n'utiliser que Puppet kick ou mcollective pour déclencher des exécutions
  • programmer les changements d'Apache pour qu'ils ne se produisent qu'à certains moments.
  • utiliser deux environnements différents (maintenance et production) pour gérer les choses. Gardez la production légère et utilisez la maintenance pour faire des changements.

Voici un exemple de gestion d'un hôte virtuel Apache tiré du site Web de PuppetLabs : http://docs.puppetlabs.com/learning/definedtypes.html#an-example-apache-vhosts

La mise en place et la suppression de la configuration ne devraient pas poser de problème. Le plus gros problème serait de supprimer les fichiers de données pour les applications/sites web. Pour cela, je recommanderais un stockage partagé, comme NFS/AFS. Si vous n'utilisez pas de stockage partagé, assurez-vous que les données générées par l'utilisateur sont intactes, sauvegardées ou migrées vers le nouveau serveur.

Je soupçonne que vous êtes dans une situation d'hébergement de masse, comme une société d'hébergement web, et je recommande donc que les noms de sites individuels ne soient pas encodés dans votre manifeste Puppet. Pour cela, je recommande d'utiliser Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ . Hiera vous permet d'utiliser une méthode distincte pour stocker la liste des correspondances entre les hôtes virtuels et les serveurs réels. Vous pouvez utiliser des fichiers plats ou une base de données avec Hiera. Malheureusement, je ne connais pas suffisamment Hiera pour vous guider dans la mise en place de la structure de données Hiera multi-niveaux dont vous pourriez avoir besoin, mais je peux au moins vous indiquer la direction générale de Hiera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X