Puppet: gestion (de nombreux) Apache VirtualHosts

9

J'apprends mon chemin à travers la gestion de configuration en général et j'utilise des marionnettes pour l'implémenter en particulier. J'ai déjà fait des recherches génériques ( également sur SF ) et en ce moment j'envisage Apache VirtualHosts.

Nous hébergeons beaucoup de sites Web LAMP (il est actuellement dans la gamme des centaines) sur deux systèmes: un Apache2 / mod_php et un MySQL - fondamentalement l'opposé d' une autre question déjà sur SF où il gère beaucoup de serveurs avec peu de vhosts chacun (si pas vraiment, je ne sais pas). Je n'ai pas encore mis en place une configuration de travail en marionnette mais cela ne devrait pas être un problème, il existe de nombreux exemples et recettes.

En plus des fichiers de configuration Apache évidents (aucun problème ici, je suppose), chaque vhost devrait avoir des répertoires créés et des autorisations vérifiées (par exemple, un répertoire racine pour chaque vhost contenant un documentroot, un répertoire tmp dédié, un répertoire dédié dir de fichiers de session php, éventuellement des certificats SSL, etc.) sur le serveur web, et un utilisateur + une ou plusieurs bases de données sur le serveur MySQL.

L'ajout d'un nouveau vhost nécessiterait la marionnette pour créer ceux-ci, la suppression d'un nécessiterait la marionnette pour exécuter un script qui sauvegardera les données utilisateur puis supprimer les données en direct des deux serveurs, mais aussi chaque agent marionnette exécuté vérifierait alors l'existence de les répertoires, la base de données, les autorisations, etc.

Suis-je en train de poser des problèmes lorsque je monte à des centaines d'hôte virtuel avec toutes ces vérifications exécutées à chaque exécution de marionnettes, en particulier celles du système de fichiers (sur le serveur Web), et surtout quand à l'avenir les systèmes seront chargés davantage? (disons que nous ciblons la plage de 1 000 à 2 000 sites Web comme un maximum raisonnable par serveur).

Y a-t-il de l'expérience à le faire sur le net? J'ai googlé mais je n'ai rien trouvé, aussi parce qu'il y a un faible rapport signal / bruit lors de la recherche de "marionnette" et "apache" ...

Luke404
la source

Réponses:

4

Je soupçonne que la gestion de nombreux hôtes virtuels apache ne sera pas un problème, mais je ne peux pas en être sûr. Les performances acceptables sont définies par les besoins de votre entreprise. Vous seul pouvez décider s'il est assez rapide. Voici un sujet décent 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:

  • Augmentez le délai entre les exécutions de l'agent fantoche
  • ne planifiez pas de marionnettes et utilisez uniquement le coup de pied de marionnette ou mcollective pour déclencher des courses
  • planifier les modifications Apache pour qu'elles 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 apporter des modifications.

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

L'installation et la suppression de la configuration ne devraient pas poser de problème. Le plus gros problème serait la suppression des 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 laissées 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, donc je recommande que les noms de sites individuels ne soient pas codés dans votre manifeste de marionnettes. Pour cela, je recommande d'utiliser Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ . Hiera vous permet d'utiliser une manière distincte de stocker la liste des mappages d'hôte virtuel à de vrais serveurs. Vous pouvez utiliser des fichiers plats ou une base de données avec Hiera. Malheureusement, je ne connais pas suffisamment Hiera pour vous guider sur la façon de configurer la structure de données Hiera à plusieurs niveaux dont vous pourriez avoir besoin, mais je peux au moins vous indiquer la direction générale de Hiera.

edgester
la source