syntro_gmbh.silverstripe
Rola Ansible: silverstripe
Opis
Silverstripe to wszechstronny framework open source do tworzenia stron internetowych. Ta rola wdraża instalację Silverstripe według twojego wyboru na serwerze LAMP.
Kluczowe cechy tej roli to:
- Minimalne wymagania do wdrożenia -> można wdrożyć wszędzie
- Zachowanie wydań -> szybki powrót do poprzedniej wersji w przypadku błędu
- Wdrożenie bez przestojów -> wdrażanie bez przerywania użytkowania
- Gotowość do CI -> określ tagi lub aktualizuj gałęzie
- Przyjazne tworzeniu kopii zapasowych -> uruchamiaj skrypty kopii zapasowej przed czyszczeniem i budowaniem
Wdrożenie bez przestojów
Domyślnie ta rola wdraża każdą wersję bez przestojów. Oznacza to, że proces budowania i czyszczenia będzie przeprowadzany przed podłączeniem właściwego kodu do użycia przez html/index.php
. Ma to pewne zalety, ponieważ żaden użytkownik nie jest wykluczony z korzystania z witryny, co umożliwia wdrażanie w czasie kluczowym dla dostępności. Silverstripe w większości przypadków może być wdrażany w ten sposób, ponieważ struktura bazy danych jest w większości wstecznie kompatybilna. Jedynymi wyjątkami w momencie pisania tego opisu, które mogą spowodować problemy, są:
- Usuwanie obiektów DataObjects
- Silverstripe nie usuwa tabeli, ale dodaje prefiks
deprecated_
- Silverstripe nie usuwa tabeli, ale dodaje prefiks
- Zmiana wartości Enum
Te scenariusze są bardzo specyficzne i w teorii nie powinny się zdarzać, ponieważ byłyby oznaką złego planowania ze strony dewelopera.
Jednakże może to również prowadzić do problemów z tworzeniem kopii zapasowych bazy danych, ponieważ należy zachować szczególną ostrożność, aby uzyskać spójne kopie zapasowe! Ta odpowiedzialność leży po stronie użytkownika tej roli.
Instalacja
ansible-galaxy install syntro_gmbh.silverstripe
Wymagania
- Composer
- Git
Zależności
Brak, ale upewnij się, że masz zainstalowane Composer i Git na hoście, na którym wdrażasz.
Użycie
Poza kilkoma wymaganymi zmiennymi, ta rola może być używana dla każdego projektu silverstripe. Zobacz plik defaults, aby zapoznać się z tym, co możesz dostosować.
Katalog webroot i generowane pliki
Ta rola wykorzystuje następującą strukturę katalogów do obsługi twojej aplikacji:
{{ WorkingDir }}/
├── {{ current }}
│ ├── .htaccess
│ ├── index.php
│ ├── assets --> ../shared/assets
│ └── _resources --> ../releases/<current sha>/_resources
├── releases/
│ ├── <current sha>/
│ │ ├── .git
│ │ └── ...
│ └── <other sha>/
│ ├── .git
│ └── ...
├── shared/
│ └── assets/
└── logs/
Twój katalog webroot powinien wskazywać na katalog {{ WorkingDir }}/{{ current }}/
. Możesz skonfigurować te katalogi używając silverstripe_working_dir
oraz silverstripe_current_dir_name
.
Budowanie i aktualizowanie bazy danych oraz uruchamianie kopii zapasowych
Aby uruchomić Silverstripe z nową instalacją, należy zbudować lub zaktualizować bazę danych. Domyślnie ta rola wykonuje standardowe zadanie budowy połączone z parametrem flush=1
, zanim zaktualizuje jakiekolwiek pliki w katalogu webroot.
Możesz dodać więcej poleceń, ale nie zapomnij ponownie dodać polecenia budowy, używając silverstripe_provisioning_cmds
. To również jest miejsce na dodanie wszelkich poleceń kopii zapasowej, których możesz potrzebować. (Możesz użyć naszej roli restic, aby zainstalować narzędzie do tworzenia kopii zapasowych i automatycznie utworzyć skrypty.) Dodając te skrypty przed krokiem budowy, uzyskasz najnowszą wersję swojej instalacji w przypadku, gdy będziesz potrzebować powrotu do wcześniejszej wersji.
Wdrożenie bez przestojów
Ta rola wdraża wersję silverstripe bez przestojów. Oznacza to, że proces budowy i czyszczenia będzie odbywał się przed podłączeniem właściwego kodu do użycia przez index.php
. Ma to pewne zalety, ponieważ żaden użytkownik nie jest wykluczony z korzystania z witryny, co umożliwia wdrażanie w dowolnym momencie. Silverstripe w większości przypadków może być wdrażany w ten sposób, ponieważ struktura bazy danych jest w większości wstecznie kompatybilna. Jedynymi wyjątkami w momencie pisania tego opisu, które mogą prowadzić do problemów, są:
- Usuwanie obiektów DataObjects
- Silverstripe nie usuwa tabeli, ale dodaje prefiks
deprecated_
- Silverstripe nie usuwa tabeli, ale dodaje prefiks
- Zmiana wartości Enum
Te scenariusze są bardzo specyficzne i w teorii nie powinny się zdarzać, ponieważ byłyby oznaką złego planowania ze strony dewelopera. Niemniej jednak zawsze powinieneś tworzyć kopię zapasową bazy danych przed aktualizacją.
Zmienne roli
Sprawdź plik defaults, aby dowiedzieć się, co możesz kontrolować.
Minimalny przykład playbooka
- hosts: all
vars:
silverstripe_project_repository: https://github.com/silverstripe/demo.silverstripe.org
silverstripe_project_version: master
silverstripe_ss_database_name: silverstripe
silverstripe_ss_database_username: root
silverstripe_ss_database_password: root
roles:
- silverstripe
Autor
- Matthias Leutenegger
Licencja
MIT
Prawa autorskie
(c) 2020, Syntro GmbH
ansible-galaxy install syntro_gmbh.silverstripe