syntro_gmbh.silverstripe

Rola Ansible: silverstripe

Rola Ansible Najnowsze wydanie GitHub Test Molecule Wynik jakości Ansible Rola Ansible

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_
  • 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_
  • 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

O projekcie

Role to deploy a Silverstripe installation.

Zainstaluj
ansible-galaxy install syntro_gmbh.silverstripe
Licencja
mit
Pobrania
1.1k
Właściciel