Nie ma czasu, aby napisać pełną odpowiedź na pytanie (znam trochę kiepskie), ale prawdopodobnie i tak warto to udostępnić (mógłbym to edytować, ponieważ planuję również blog na ten temat):
Oznacza to, że możesz mieć konfigurację WP opartą na linii głównej / wersji, którą możesz w pełni włamać. motywy i wtyczki.
Ponieważ jest to jedno niezależne (lokalne) repozytorium, możesz przesłać to przez ssh do innych repozytoriów, na przykład jednego:
- Znajduje się on na zdalnym hoście, na którym witryna powinna zostać wdrożona (bez repozytorium).
- Ma haczyki, dzięki którym kolejne repozytorium na tym hoście faktycznie łączy się z wprowadzonymi zmianami.
Jest to opisane w skoncentrowanym na sieci przepływie pracy Git (listopad 2008; Joe Maller) .
Jeśli masz przełącznik konfiguracji, który wybiera konkretny wp-config.php
system w oparciu o system, na którym działa, możesz nawet centralnie skonfigurować wszystkie hosty (programowanie, transmisja na żywo, inscenizacja, znajomi ...) w repozytorium.
Wstępne zmiany w WP po prostu pobieracie i scalacie w poddrzewie.
Wtyczki, które właśnie aktualizujesz i zatwierdzasz.
Wdrożenie jest proste $ git push remote
.
Uruchamiaj codzienne kopie zapasowe na zdalnym hoście dla repozytoriów git, bazy danych i przesyłanych plików. Jest to tanie, przyjazne dla programistów i elastyczne. Działa to dobrze zarówno w konfiguracjach dla pojedynczego dewelopera, jak i w małych zespołach, ponieważ każdy może pobrać kasę z samego nagrania na pilocie.
Istnieje kilka zastrzeżeń:
Teraz z listą kontrolną i konfiguracją, jak opisano powyżej:
1. Chciałbym mieć moje środowisko git na własnym serwerze wewnętrznie, nie używając Github do obsługi repozytoriów.
Github obsługuje tylko repozytorium w górę łańcucha dostaw (Wordpress), a nie twoje własne.
2. Automatyczne tworzenie subdomen po utworzeniu gałęzi git (development.domain.com, ryan.development.domain.com) - Prawdopodobnie byłby do tego potrzebny pewien haczyk skryptu powłoki.
Przedstawiona konfiguracja to podejście modułowe z jednym repozytorium na witrynę. Może obsługiwać dowolną liczbę hostów programistycznych, jak chcesz, może równie dobrze działać z instalacją wielu witryn, aby obsługiwać wiele domen, ale w tym podejściu byłoby to liczone jako jedna konfiguracja Wordpress.
3. Phing PHP / Shell script Obsługa migracji bazy danych (coś takiego: http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) do obsługi szeregowej wymiany bazy danych po wypchnięciu
Nie jest to tutaj potrzebne, ponieważ tylko kod jest pod kontrolą wersji, bazy danych są niezależne między programowaniem (, etapami) i produkcją, jak powinno być.
Być może szukasz skryptu instalacyjnego, który odpowiednio migruje domenę, ale nawet z lepszym kodem (który jest dostępny) zajmującym się serializowanym wyszukiwaniem i zamianą danych, w tej konfiguracji tutaj zwykle nie jest konieczne, ponieważ po prostu wprowadzasz zmiany w życie , w przypadkach testowych możesz szybko utworzyć zawartość w bazie danych programistów, co jest zwykle najmniejszym problemem (z mojego praktycznego doświadczenia, twoje mogą się różnić, ale sugerowałbym również, aby zachować takie tematy związane z migracją bazy danych na pytania dotyczące tego posiadać tutaj na stronie - ale proszę o to zapytać).
Prowadzę około 200 witryn na własnym serwerze i chciałbym rozpocząć wdrażanie tych witryn w silnym środowisku przepływu pracy git, dzięki czemu mogę znacznie usprawnić moją pracę.
Nie mogę sobie wyobrazić, jak te strony stałyby się w środowisku przepływu pracy git string. Być może skrypty konfiguracyjne i dane konfiguracyjne, którymi tu zarządzasz, będą pod kontrolą wersji git. To może mieć sens. W przeciwnym razie, biorąc pod uwagę samą liczbę stron, myślę, że nie ma sensu utrzymywanie tych wszystkich w jednym repozytorium git. Być może nawet jednego z nich, ponieważ to, co opisałem powyżej, dotyczy witryn, które tworzysz (w tym kod podstawowy WP), a nie tylko zadań instalacyjnych. Najprawdopodobniej musisz najpierw stworzyć sobie małą mapę tych 200 witryn i ich interakcji ze sobą oraz z których pakietów (WP core, wtyczki, motywy) składają się te witryny. Pierwszą rzeczą może być utworzenie arkusza kalkulacyjnego / matrycy i umieszczenie wszystkich witryn.
Następnie możesz zapisać go jako CSV, poddać kontroli wersji i sprawić, by skrypty wdrożeniowe działały na podstawie tego pliku.
A jeśli nauczyłem się czegoś na temat automatyzacji zadań: kieruj się filozofią Uniksa, użyj istniejących i dobrze działających narzędzi (lepiej poświęcić pół dnia na czytanie niektórych poleceń, niż na poszukiwanie alternatyw, ponieważ w przypadku większości zadań problemy były już rozwiązany) i skup się na narzędziach wiersza poleceń. Są najpotężniejsze.