PeterMosmans.dokuwiki
Ansible Rola: Dokuwiki
Ta rola instaluje, konfiguruje, zabezpiecza i/lub aktualizuje Dokuwiki na serwerze. Głównym celem jest zapewnienie powtarzalnego i bezpiecznego wdrażania instancji Dokuwiki. Rola ta nie instaluje serwera WWW, ale może dodać i włączyć plik konfiguracyjny Apache (która jest załączona jako szablon w roli).
Wymagania
Serwer WWW z zainstalowanym PHP, np. za pomocą PeterMosmans.apache2.
Zmienne roli
Dostępne zmienne wymieniono poniżej wraz z wartościami domyślnymi. Wartości domyślne są określone w default/main.yml
.
dokuwiki_configure_apache2: Gdy prawda, wdroży plik konfiguracyjny Apache (dokuwiki.conf.j2
) do Apache i włączy stronę. Domyślnie zmienna jest niezdefiniowana (fałsz).
dokuwiki_name: 'wewnętrzna' nazwa dokuwiki, która jest np. używana dla plików dziennika Apache i zadania cron do czyszczenia. (gdy dokuwiki_configure_apache2
jest prawdą). Umożliwia używanie roli Ansible dla wielu witryn Dokuwiki na tym samym serwerze. Domyślnie:
dokuwiki_name: dokuwiki
dokuwiki_source: URL, gdzie znajduje się (najświeższa) wersja Dokuwiki. Domyślnie używa oficjalnego źródła Dokuwiki.
dokuwiki_source: https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
dokuwiki_base: Lokalna ścieżka, gdzie Dokuwiki będzie zainstalowane.
dokuwiki_base: /var/www/html
dokuwiki_group: Grupa posiadająca pliki Dokuwiki.
dokuwiki_group: www-data
dokuwiki_plugins: Lista par nazwa/źródło z pluginami do automatycznej instalacji. Źródła muszą wskazywać na pliki tar lub .tgz (itp.). Przykład:
- name: pagelist
src: https://github.com/dokufreaks/plugin-pagelist/tarball/master
dokuwiki_plugins_remove: Lista pluginów, które mają być automatycznie usunięte podczas instalacji lub aktualizacji. Domyślnie:
dokuwiki_plugins_remove:
- name: authad
- name: authldap
- name: authmysql
- name: authpdo
- name: authpgsql
- name: info
- name: popularity
dokuwiki_provision: Gdy prawda, zastosuje szablony konfiguracyjne do wdrożenia Dokuwiki. Jeśli nie jest określone lub fałszywe, Dokuwiki będzie bez wdrożenia, domyślna instalacja. Zobacz poniżej w rozdziale wdrażania, które zmienne można używać w szablonach konfiguracyjnych. Należy pamiętać, że gdy ta zmienna jest prawdą, będzie (ponownie) tworzyć szablony i nadpisywać aktualną konfigurację Dokuwiki.
Poniższe pliki konfiguracyjne są tworzony w formie szablonów:
/conf/acl.auth.php
/conf/local.php
/conf/plugins.local.php
/conf/users.auth.php
Przykład:
dokuwiki_provision: true
dokuwiki_savedir: Katalog, w którym będą przechowywane wszystkie pliki (treści).
dokuwiki_savedir: /var/www/html/data
dokuwiki_templates: Lista par nazwa/źródło z szablonami do automatycznej instalacji. Źródła muszą wskazywać na pliki tar lub .tgz (itp.). Przykład:
dokuwiki_templates:
- name: bootstrap3
src: https://github.com/LotarProject/dokuwiki-template-bootstrap3/tarball/master
dokuwiki_user: Użytkownik posiadający pliki Dokuwiki.
dokuwiki_user: root
Wdrożenie
Poniższe zmienne będą używane w szablonach konfiguracyjnych (local.php.j2
, users.auth.php.j2
), a zatem będą stosowane tylko, jeśli dokuwiki_provision
jest ustawione na true
.
dokuwiki_acl_all: Bity ACL dla grupy domyślnej (@ALL). Domyślnie tylko zalogowani użytkownicy mają dostęp (0).
dokuwiki_acl_user: Bity ACL dla grupy użytkowników (@user). Domyślnie użytkownicy mają uprawnienia do przesyłania, tworzenia, edytowania i odczytywania (8).
dokuwiki_disableactions: Jakie akcje mają być wyłączone. Domyślnie rejestracja jest wyłączona.
dokuwiki_title: Tytuł Dokuwiki
dokuwiki_local: Lista par nazwa/wartość do dodania do pliku konfiguracyjnego local.php
.
Przykład:
dokuwiki_local:
- name: "['passcrypt']"
value: 'bcrypt'
To spowoduje dodanie następującego ciągu do /conf/local.php
:
$conf['mytemplate'] = 'myvalue';
dokuwiki_users: Lista użytkowników, zawierająca następujące pary nazwa/wartość:
- login: login
- hash: hash hasła
- name: pełna nazwa
- email: adres e-mail
- groups: lista grup oddzielona przecinkami
Przykład:
dokuwiki_users:
- login: admin
hash: "$2y$05$Nr3wFqH54gcdhxPK9easseLSVwLAnLTD2flYmQbAbCVIiiTU4mCjS"
name: Administrator
email: admin@admin
groups: admin,user
To spowoduje dodanie użytkownika admin do Dokuwiki, z zaszyfrowanym hasłem admin
.
Zależności
Brak.
Przykładowy Playbook
- hosts: all
become: yes
become_method: sudo
roles:
- role: PeterMosmans.dokuwiki
vars:
dokuwiki_base: /var/www/html
dokuwiki_configure_apache2: true
dokuwiki_plugins:
- name: tag
src: https://github.com/dokufreaks/plugin-tag/tarball/master
- name: pagelist
src: https://github.com/dokufreaks/plugin-pagelist/tarball/master
dokuwiki_plugins_remove:
- name: authad
- name: authldap
- name: authmysql
- name: authpdo
- name: authpgsql
- name: info
- name: popularity
dokuwiki_preconfigure: true
dokuwiki_savedir: /var/www/html/data
dokuwiki_template: bootstrap3
dokuwiki_templates:
- name: bootstrap3
src: https://github.com/LotarProject/dokuwiki-template-bootstrap3/tarball/master
dokuwiki_users:
- login: admin
hash: "$2y$05$Nr3wFqH54gcdhxPK9easseLSVwLAnLTD2flYmQbAbCVIiiTU4mCjS"
name: Administrator
email: admin@admin
groups: admin,user
Ten przykład zainstaluje Dokuwiki w /var/www/html
, a jako katalog danych użyje /var/www/html/data
. Zainstaluje wtyczki tag
i pagelist
, oraz usunie wtyczki authad
, authldap
, authmysql
, authpdo
, authpgsql
, info
i popularity
. Zainstaluje i użyje motywu bootstrap3
oraz umożliwi użytkownikowi admin
dostęp do wiki z hasłem admin
. Ponadto skonfiguruje i włączy stronę Apache.
Licencja
GPLv3
Informacje o autorze
Utworzone przez Petera Mosmansa. Sugestie, opinie i prośby o włączenie są zawsze mile widziane.
Wkład od @onny
Installs, configures and hardens Dokuwiki (including plugins and templates)
ansible-galaxy install PeterMosmans.dokuwiki