bmeme.drupal
Rola Ansible: Drupal
Tworzenie, instalowanie i budowanie projektu Drupal.
To jest pierwsza opublikowana Rola Ansible stworzona przez Bmeme, aktualnie wykorzystywana w naszym procesie rozwoju Drupala. Została zainspirowana innymi rolami, które zazwyczaj używamy/które były świetne:
Wymagania
Aby prawidłowo używać tej roli, potrzebujesz klasycznego stosu LAMP/LEMP:
- standardowy serwer WWW (zalecane Apache lub Nginx)
- baza danych MySQL/PostgreSQL
- interpreter PHP (7.x lub nowszy)
- Composer (zalecane
geerlingguy.composer
)
Drush to zależność, która będzie dostarczona w twoim projekcie Drupal.
Zależności
- kolekcja
community.mysql
- kolekcja
community.general
Instalacja
To jest rola Ansible dystrybuowana za pomocą Ansible Galaxy. Aby zainstalować tę rolę, możesz użyć następującego polecenia.
$ ansible-galaxy install bmeme.drupal
Aktualizacja
Jeśli chcesz zaktualizować rolę, musisz dodać parametr --force podczas instalacji. Sprawdź następujące polecenie:
$ ansible-galaxy install --force bmeme.drupal
Wersja przedpremierowa
Ta rola ma wersję przedpremierową (nazywaną 0.5-beta1), która używa innego przepływu pracy i innej struktury zmiennych. Ta wersja jest całkowicie przestarzała i używana w Bmeme tylko dla zapewnienia zgodności wstecznej, nie używaj jej!
Zmienne Roli
Dostępne zmienne:
Nazwa zmiennej | Opis | Domyślnie |
---|---|---|
drupal_project_dir |
Absolutna ścieżka, w której projekt Drupal jest lub ma być zainstalowany | /var/www/html |
drupal_project_owner |
Użytkownik systemowy, który posiada projekt | www-data |
drupal_project_group |
Grupa systemowa, która posiada projekt | www-data |
drupal_project_composer_project |
Projekt composer Drupal, którego chcesz użyć do świeżej instalacji | drupal/recommended-project |
drupal_project_web_root |
Katalog, w którym znajduje się rdzeń Drupal. Może zależeć od dystrybucji Drupala. | web |
drupal_site_name |
Nazwa witryny Drupal. Używana przez drush podczas instalacji Drupala. | Twoja nowa instancja Drupal |
drupal_site_mail |
E-mail witryny Drupal. Używany przez drush podczas instalacji Drupala. | [email protected] |
drupal_site_lang |
Domyślny język witryny Drupal. Używany przez drush podczas instalacji Drupala. | en |
drupal_account_mail |
E-mail konta Drupal. Używany przez drush podczas instalacji Drupala. | taki sam jak drupal_site_mail |
drupal_account_name |
Nazwa konta Drupal. Używana przez drush podczas instalacji Drupala. | admin |
drupal_account_pass |
Hasło konta Drupal. Używane przez drush podczas instalacji Drupala. | admin |
drupal_db_schema |
Schemat bazy danych używany przez Drupal. Dostępne opcje: mysql lub pgsql |
mysql |
drupal_db_name |
Nazwa bazy danych. Używana przez drush podczas instalacji Drupala. | drupal |
drupal_db_user |
Użytkownik bazy danych. Używany przez drush podczas instalacji Drupala. | drupal |
drupal_db_pass |
Hasło użytkownika bazy danych. Używane przez drush podczas instalacji Drupala. | drupal |
drupal_db_host |
Adres hosta bazy danych. Używany przez drush podczas instalacji Drupala. | 127.0.0.1 |
drupal_db_port |
Port hosta bazy danych. Używany przez drush podczas instalacji Drupala. | 3306 |
drupal_profile |
Profil instalacji Drupal. Zobacz ten błąd | minimal |
drupal_composer_nodev |
Opcja composer "nodev". Boolean | false |
drupal_composer_prefer_dist |
Opcja composer "prefer-dist". Boolean | false |
drupal_composer_scaffold_nonamespace |
Użyj composer bez przestrzeni nazw do instalacji Drupal Scaffold. Boolean | false |
Przepływ pracy
Ta rola wykonuje trzy główne zadania:
- create: Tworzy nowy projekt Drupal za pomocą composera: możesz dostosować projekt composer, używając zmiennej
drupal_project_composer_project
. Rola automatycznie rozpoznaje, kiedy projekt Drupal już istnieje i pomija ten zestaw zadań. - install: Instalacja instancji Drupal za pomocą drush. Na końcu procesu konfiguracje Drupal są automatycznie eksportowane do katalogu
{{ drupal_project_dir }}/config/sync
. Ta rola automatycznie rozpoznaje, kiedy instalacja Drupal już istnieje i pomija ten zestaw zadań. - build: Buduje instancję Drupal za pomocą drush, instalując z istniejących wyeksportowanych konfiguracji. Automatycznie rozpoznaje konfiguracje i wykonuje zestaw zadań budowania.
Zaczynając od zera, wykonuje tylko zadania create i install.
Hooki
Możesz dodać własne zadania, używając dostępnych hooków:
drupal_before_create
: wykonywane przed zestawem zadań create. Jeśli projekt Drupal już istnieje, ten hook zostanie pominięty.drupal_after_create
: wykonywane po zestawie zadań create. Jeśli projekt Drupal już istnieje, ten hook zostanie pominięty.drupal_before_install
: wykonywane przed zestawem zadań install. Jeśli konfiguracje Drupal są już dostępne, ten hook zostanie pominięty.drupal_after_install
: wykonywane po zestawie zadań install. Jeśli konfiguracje Drupal są już dostępne, ten hook zostanie pominięty.drupal_before_build
: wykonywane przed zestawem zadań build. Jeśli konfiguracje Drupal nie są dostępne, ten hook zostanie pominięty.drupal_after_build
: wykonywane po zestawie zadań build. Jeśli konfiguracje Drupal nie są dostępne, ten hook zostanie pominięty.
Sposób pracy Bmeme
Bmeme używa tej roli do automatyzacji procesów tworzenia / instalacji / budowy projektu Drupal podczas
swojego procesu rozwoju. Używamy dockera jako środowiska deweloperskiego, zarówno lokalnie, jak i w zdalnych instancjach testowych.
Rola jest wykonywana w naszych obrazach dockera php
, dostępnych tutaj.
Te same obrazy są również używane w teście roli molecule.
Zależności
N/A
Przykład Playbooka
- hosts: webserver
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
Wewnątrz pliku vars/main.yml
drupal_project_dir: /path/to/my/project
drupal_site_name: Moja wspaniała instancja Drupal
drupal_after_build: "tasks/my-after-build-tasks.yml"
Jeśli chcesz użyć tej roli do instalacji konkretnej dystrybucji Drupala (na przykład: Lightning):
- hosts: webserver
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
drupal_project_composer_project: "acquia/lightning-project:8.8.1"
Licencja
MIT/BSD
Informacje o autorze
Ta rola została stworzona w 2020 roku przez Bmeme.
Creates a Drupal project via composer, install it and re-build it by configs
ansible-galaxy install bmeme.drupal