Pas le temps d'écrire une réponse complète (je sais une sorte de boiteux) mais ça vaut probablement la peine de partager de toute façon (je pourrais éditer cela parce que je prévois également un blog sur ce sujet):
Cela signifie que vous pouvez avoir une configuration WP basée sur un tronc / branche de version que vous pouvez entièrement pirater. thèmes et plugins.
Comme il s'agit d'un référentiel indépendant (local), vous pouvez le transmettre via ssh à d'autres référentiels, par exemple un:
- Cela se trouve sur l'hôte distant sur lequel le site doit être déployé (repo nu).
- Cela a des crochets pour faire fusionner un autre référentiel sur cet hôte dans les modifications que vous venez de pousser.
Ceci est décrit dans Un workflow Git axé sur le Web (novembre 2008; par Joe Maller) .
Si vous avez ensuite un sélecteur de configuration qui choisit le béton en wp-config.php
fonction du système sur lequel il fonctionne, vous pouvez même configurer de manière centralisée tous les hôtes (développement, live, staging, amis, ...) à l'intérieur du référentiel.
Les modifications en amont dans WP que vous venez de récupérer et de fusionner dans le sous-arbre.
Plugins que vous venez de mettre à jour et de valider.
Le déploiement est simple $ git push remote
.
Exécutez des sauvegardes quotidiennes sur l'hôte distant pour les dépôts git, la base de données et les fichiers téléchargés, ce qui est bon marché, convivial pour les développeurs et flexible. Cela fonctionne bien pour les configurations à développeur unique ainsi que pour les petites équipes, car tout le monde peut commander à partir de la simple repro sur la télécommande.
Il y a quelques mises en garde:
Maintenant, avec votre liste de contrôle et la configuration comme indiqué ci-dessus:
1. J'aimerais avoir mon environnement git sur mon propre serveur en interne, sans utiliser Github pour gérer les repos.
Github gère uniquement les dépôts en amont ici (Wordpress), pas le vôtre.
2. Création automatique de sous-domaines lors de la création de la branche git (development.domain.com, ryan.development.domain.com) - Probablement un hook de script shell serait idéal pour cela.
La configuration telle que décrite est une approche modulaire avec un dépôt par site. Il peut gérer autant d'hôtes de développement que vous le souhaitez, il pourrait également bien fonctionner avec une installation multisite pour gérer plusieurs domaines, mais cela compterait comme une configuration wordpress dans cette approche.
3. Script PHP / Shell Phing Gestion de la migration db (quelque chose comme ceci http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) pour gérer le remplacement de la base de données sérialisée lors de la poussée
Ceci n'est pas nécessaire ici car seul le code est sous contrôle de version, les bases de données sont indépendantes entre le développement (, le staging) et la production comme il se doit.
Vous cherchez peut-être un script d'installation qui effectue la migration de domaine correctement, mais même avec un meilleur code (disponible) traitant de la recherche et du remplacement de données sérialisées, dans cette configuration ici, il n'est normalement pas nécessaire car vous poussez simplement les modifications à vivre , pour les cas de test, vous pouvez créer rapidement le contenu dans la base de données de développement, qui est normalement le plus petit problème (d'après mon expérience pratique, le vôtre peut différer, mais je suggérerais également de garder ces sujets liés à la migration de la base de données sur les questions de son ici sur place - mais veuillez les demander).
Je gère environ 200 sites sur mon propre serveur et j'aimerais commencer à implémenter ces sites dans un environnement de workflow git solide afin de pouvoir rationaliser mon travail beaucoup mieux.
Je ne peux pas imaginer comment ces sites deviendraient sous un environnement de flux de travail avec string git. Peut-être que les scripts de configuration et les données de configuration que vous gérez ici seront conservés sous contrôle de version git. Cela pourrait avoir du sens. Sinon, par la quantité de sites, je pense que cela n'a aucun sens de garder tous ceux-ci dans un seul dépôt git. Peut-être même pas un de ceux-là parce que ce que j'ai décrit ci-dessus concerne les sites que vous développez (y compris le code de base WP), pas seulement les tâches d'installation. Vous devez donc probablement d'abord vous créer une petite carte de ces 200 sites et comment ils interagissent entre eux et à partir de quels packages (noyau WP, plugins, thèmes) ces sites sont constitués. La première chose pourrait être de créer une feuille de calcul / matrice et de mettre tous les sites dedans.
Vous pouvez ensuite l'enregistrer au format CSV, le placer sous contrôle de version et faire en sorte que les scripts de déploiement fassent leur travail en fonction de ce fichier.
Et si j'ai appris quelque chose avec l'automatisation des tâches: suivez la philosophie Unix, utilisez les outils existants et qui fonctionnent bien (il vaut mieux passer une demi-journée à lire sur certaines commandes, puis essayer de rechercher des alternatives car pour la plupart des travaux, les problèmes ont été déjà résolu) et se concentrer sur les outils de ligne de commande. Ils sont les plus puissants.