geoffreyvanwyk.moodle
Rola Ansible dla Moodle
Instaluje, wdraża i aktualizuje Moodle na serwerach Ubuntu.
Dodatkowo rozszerza Moodle przez instalację wtyczek z Git.
Wymagania
Wszelkie wstępne wymagania, które mogą nie być pokryte przez Ansible lub rolę, powinny być wymienione tutaj. Na przykład, jeśli rola korzysta z modułu EC2, warto wspomnieć w tej sekcji, że jest wymagany pakiet boto.
Rola jest testowana tylko na wersjach Ubuntu z długoterminowym wsparciem, które wciąż otrzymują standardową pomoc.
Obecnie rola korzysta jedynie z serwera www Apache, który instaluje samodzielnie.
Zmienne roli
Tutaj należy opisać zmienne, które można ustawić dla tej roli, w tym wszelkie zmienne, które znajdują się w defaults/main.yml, vars/main.yml, oraz wszelkie zmienne, które mogą/muszą być ustawione przez parametry do roli. Należy również wymienić wszelkie zmienne, które są odczytywane z innych ról i/lub globalnego zakresu (np. hostvars, group vars itd.).
Wdrażanie kodu źródłowego
moodle_deploy_repository: https://github.com/moodle/moodle # Publiczne repozytorium.
moodle_deploy_version: MOODLE_403_STABLE # Gałąź, tag lub commit.
moodle_deploy_update: yes # Nowe commity będą pobierane.
moodle_deploy_destination: /var/www/html/moodle # Również główny katalog dokumentów webowych.
Kod źródłowy Moodle można wdrożyć tylko z publicznego repozytorium i tylko przez HTTPS. Dla stabilnych wersji Moodle można określić odpowiadającą gałąź Git, np. dla wersji 4.3 używana jest gałąź MOODLE_403_STABLE
. Kiedy rola jest uruchamiana i dostępne są nowe commity na określonej gałęzi, zmienna moodle_deploy_update
określa, czy te nowe commity powinny być pobrane. Jeśli yes
, instancja Moodle również zostanie zaktualizowana. Katalog, do którego wdrażany jest kod źródłowy Moodle, moodle_deploy_destination
, będzie także katalogiem, z którego serwer webowy będzie go obsługiwał.
PHP
php_version: 8.1
Wersja PHP jest automatycznie ustawiana w oparciu o moodle_version
.
Konfiguracja bazy danych
moodle_db_install: yes # Czy zainstalować usługę bazy danych.
moodle_cfg_dbtype: pgsql # Którą usługę bazy danych użyć: pgsql lub mariadb.
moodle_cfg_dbname: moodle # Nazwa bazy danych.
moodle_cfg_dbuser: moodler
moodle_cfg_dbpass: ***** # Losowo utworzone hasło.
Jeśli usługa bazy danych jest zainstalowana, określony użytkownik moodle_cfg_dbuser
będzie miał pełne uprawnienia administracyjne w określonej bazie danych. Jeśli hasło bazy danych moodle_cfg_dbpass
nie jest określone, generowane jest losowe hasło składające się z 24 znaków ASCII.
Hosting WWW
moodle_web_service: apache2 # Lub nginx, ale obecnie obsługiwany jest tylko apache.
moodle_web_root: subdirectory # istniejącego virtualhosta lub główny katalog nowego virtualhosta.
moodle_web_protected_directories: ... # Zobacz defaults/main.yml dla domyślnej listy.
moodle_web_protected_files: ... # Zobacz defaults/main.yml dla domyślnej listy.
moodle_web_protocol: http # Czy Moodle jest obsługiwany przez 'https' czy tylko 'http'.
moodle_web_domain: 127.0.0.1 # Nazwa domeny virtual hosta.
moodle_web_path: moodle # Podkatalog względny do virtual hosta.
Zmienna moodle_web_root
określa, czy Moodle jest obsługiwany z podkatalogu istniejącego virtual hosta, czy czy dla niego musi być utworzony nowy virtual host. Jeśli podano subdirectory
, to moodle_deploy_destination
i moodle_web_path
muszą być zgodne z tym ustawieniem.
Instalacja i konfiguracja po stronie serwera
moodle_cfg_wwwroot: ... # Obliczane na podstawie protokołu webowego, domeny i ścieżki.
moodle_cfg_dataroot: ... # Obliczane na podstawie domeny i ścieżki.
moodle_site_fullname: Modular Object-Orientated Dynamic Learning Environment
moodle_site_shortname: Moodle
moodle_site_summary: >
Moodle jest najbardziej dostosowalnym i zaufanym rozwiązaniem e-learningowym,
które umożliwia nauczycielom poprawienie naszego świata.
moodle_admin_username: moodler
moodle_admin_password: N3verstople@rning
moodle_admin_email: [email protected]
moodle_support_email: "{{ moodle_admin_email }}"
Wtyczki
moodle_plugins_git: []
Lista wtyczek, które muszą być zainstalowane z repozytorium Git, ponieważ nie są dostępne w oficjalnym katalogu wtyczek. Dla każdej wtyczki należy określić:
- nazwa wtyczki w stylu frankenstyle, np. mod_questionnaire, block_xp.
- URL do repozytorium;
- odniesienie wersji (czyli gałąź, tag lub commit).
Dodatkowe wtyczki, które są już zainstalowane, ale nie są na tej liście, zostaną odinstalowane.
Zależności
Lista innych ról hostowanych na Galaxy powinna być wymieniona tutaj, wraz z wszelkimi szczegółami dotyczącymi parametrów, które mogą być wymagane do ustawienia dla innych ról, lub zmiennych używanych z innych ról.
Lista ról, od których ta rola zależy, znajduje się w requirements.yml
.
Przykład użycia
Warto również zamieścić przykład, jak używać swojej roli (na przykład, z przekazanymi zmiennymi jako parametry):
- hosts: servers
roles:
- role: geoffreyvanwyk.moodle
moodle_plugins_git:
- name: theme_learningsandboxonline
repository: https://github.com/geoffreyvanwyk/moodle-theme_learningsandboxonline
version: MOODLE_403_STABLE
Licencja
Copyright © 2023 Geoffrey Bernardo van Wyk https://geoffreyvanwyk.dev
Ten plik jest częścią roli Ansible geoffreyvanwyk.moodle.
Rola Ansible geoffreyvanwyk.moodle jest oprogramowaniem wolnym: możesz je kopiować i/lub modyfikować na warunkach Licencji Publicznej GNU, jak ją opublikowała Fundacja Wolnego Oprogramowania, w wersji 3 Licencji lub (według własnego wyboru) w dowolnej późniejszej wersji.
Rola Ansible geoffreyvanwyk.moodle jest dystrybuowana w nadziei, że będzie użyteczna, ale BEZ JAKIEJKOLWIEK GWARANCJI; bez nawet domniemanej gwarancji przystosowania do sprzedaży lub przydatności do określonego celu. Zobacz Licencję Publiczną GNU dla dalszych szczegółów.
Powinieneś otrzymać kopię Licencji Publicznej GNU wraz z rolą Ansible geoffreyvanwyk.moodle. Jeśli nie, zobacz https://www.gnu.org/licenses/.
Informacje o autorze
Opcjonalna sekcja dla autorów ról, aby zamieścić informacje kontaktowe lub stronę internetową (HTML nie jest dozwolone).
Geoffrey Bernardo van Wyk stworzył tę rolę w 2023 roku.
ansible-galaxy install geoffreyvanwyk.moodle