PeterMosmans.dokuwiki
Ansible-Rolle: Dokuwiki
Diese Rolle installiert, konfiguriert, sichert und/oder aktualisiert Dokuwiki auf einem Server. Der Hauptfokus liegt darauf, Dokuwiki-Instanzen auf wiederholbare und sichere Weise bereitzustellen. Es installiert selbst keinen Webserver, kann aber eine Apache-Konfigurationsdatei hinzufügen und aktivieren (die als Vorlage in der Rolle enthalten ist).
Anforderungen
Ein Webserver mit installiertem PHP, z.B. durch die Verwendung von PeterMosmans.apache2.
Variablen der Rolle
Verfügbare Variablen sind unten aufgelistet, zusammen mit Standardwerten. Die Standardwerte sind in default/main.yml
festgelegt.
dokuwiki_configure_apache2: Wenn true, wird eine Apache-Konfiguration (dokuwiki.conf.j2
) an Apache bereitgestellt und die Site aktiviert. Standardmäßig ist die Variable undefiniert (false).
dokuwiki_name: Der 'interne' Name von Dokuwiki, der z.B. für Apache-Logdateien und den Bereinigung-Cronjob verwendet wird (wenn dokuwiki_configure_apache2
true ist). Dies ermöglicht die Verwendung der Ansible-Rolle für mehrere Dokuwiki-Seiten auf demselben Server. Standard:
dokuwiki_name: dokuwiki
dokuwiki_source: Die URL, wo die (neueste) Version von Dokuwiki gefunden werden kann. Standardmäßig wird die offizielle Dokuwiki-Quelle verwendet.
dokuwiki_source: https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
dokuwiki_base: Der lokale Pfad, wo Dokuwiki installiert wird.
dokuwiki_base: /var/www/html
dokuwiki_group: Die Gruppe, die die Dokuwiki-Dateien besitzt.
dokuwiki_group: www-data
dokuwiki_plugins: Eine Liste von Namen / Quellen-Paaren, mit Plugins, die automatisch installiert werden sollen. Die Quellen müssen auf tar- oder .tgz-Dateien zeigen (z.B.). Beispiel:
- name: pagelist
src: https://github.com/dokufreaks/plugin-pagelist/tarball/master
dokuwiki_plugins_remove: Eine Liste von Plugins, die automatisch bei der Installation oder Aktualisierung entfernt werden sollen. Standard:
dokuwiki_plugins_remove:
- name: authad
- name: authldap
- name: authmysql
- name: authpdo
- name: authpgsql
- name: info
- name: popularity
dokuwiki_provision: Wenn true, werden Konfigurationen angewendet, um Dokuwiki bereitzustellen. Wenn nicht angegeben oder false, wird Dokuwiki nicht bereitgestellt, eine Standardinstallation. Siehe weiter unten im Bereitstellungskapitel, welche Variablen in den Konfigurationsvorlagen verwendet werden können. Bitte beachten Sie, dass beim Setzen dieser Variablen auf true die aktuelle Dokuwiki-Konfiguration (re-)templated und überschrieben wird.
Die folgenden Konfigurationsdateien werden templated:
/conf/acl.auth.php
/conf/local.php
/conf/plugins.local.php
/conf/users.auth.php
Beispiel:
dokuwiki_provision: true
dokuwiki_savedir: Das Verzeichnis, wo alle Dateien (Inhalte) gespeichert werden.
dokuwiki_savedir: /var/www/html/data
dokuwiki_templates: Eine Liste von Namen / Quellen-Paaren, mit Vorlagen, die automatisch installiert werden sollen. Die Quellen müssen auf tar- oder .tgz-Dateien zeigen (z.B.). Beispiel:
dokuwiki_templates:
- name: bootstrap3
src: https://github.com/LotarProject/dokuwiki-template-bootstrap3/tarball/master
dokuwiki_user: Der Benutzer, der die Dokuwiki-Dateien besitzt.
dokuwiki_user: root
Bereitstellung
Die folgenden Variablen werden in den Konfigurationen verwendet (local.php.j2
, users.auth.php.j2
) und daher nur angewendet, wenn dokuwiki_provision
auf true
gesetzt ist.
dokuwiki_acl_all: Die ACL-Bits für die Standardgruppe (@ALL). Standardmäßig ist nur angemeldeten Benutzern der Zugang erlaubt (0).
dokuwiki_acl_user: Die ACL-Bits für die Benutzergruppe (@user). Standardmäßig haben Benutzer die Berechtigungen zum Hochladen, Erstellen, Bearbeiten und Lesen (8).
dokuwiki_disableactions: Welche Aktionen deaktiviert werden sollen. Standardmäßig ist die Registrierung deaktiviert.
dokuwiki_title: Der Titel von Dokuwiki.
dokuwiki_local: Eine Liste von Namen-Wert-Konfigurationspaaren, die zur local.php
Konfigurationsdatei hinzugefügt werden sollen. Beispiel:
dokuwiki_local:
- name: "['passcrypt']"
value: 'bcrypt'
Das führt dazu, dass der folgende String zu /conf/local.php
hinzugefügt wird:
$conf['mytemplate'] = 'myvalue';
dokuwiki_users: Eine Liste von Benutzern, die die folgenden Namen-Wert-Paare enthalten:
- login: login
- hash: Passwort-Hash
- name: voller Name
- email: E-Mail-Adresse
- groups: durch Kommata getrennte Liste von Gruppen
Beispiel:
dokuwiki_users:
- login: admin
hash: "$2y$05$Nr3wFqH54gcdhxPK9easseLSVwLAnLTD2flYmQbAbCVIiiTU4mCjS"
name: Administrator
email: admin@admin
groups: admin,user
Das wird den Benutzer admin zu Dokuwiki hinzufügen, mit dem bcrypted Passwort admin
.
Abhängigkeiten
Keine.
Beispiel-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
Dieses Beispiel wird Dokuwiki in /var/www/html
installieren und /var/www/html/data
als Datenspeicher verwenden. Es werden die Plugins tag
und pagelist
installiert und die Plugins authad
, authldap
, authmysql
, authpdo
, authpgsql
, info
und popularity
entfernt. Es wird das Template bootstrap3
installiert und der Benutzer admin
mit dem Passwort admin
Zugriff auf das Wiki gewährt. Zudem wird die Apache-Seite konfiguriert und aktiviert.
Lizenz
GPLv3
Autoreninformation
Erstellt von Peter Mosmans. Vorschläge, Rückmeldungen und Pull-Requests sind immer willkommen.
Beiträge von @onny
Installs, configures and hardens Dokuwiki (including plugins and templates)
ansible-galaxy install PeterMosmans.dokuwiki