PeterMosmans.dokuwiki
Rôle Ansible : Dokuwiki
État de construction pour ce rôle :
Ce rôle installe, configure, renforce et/ou met à jour Dokuwiki sur un serveur. L'objectif principal est de provisionner des instances de Dokuwiki de manière répétable et sécurisée. Il n'installe pas de serveur web lui-même, mais il peut ajouter et activer un fichier de configuration Apache (qui est inclus comme modèle dans le rôle).
Exigences
Un serveur web ayant PHP installé, par exemple en utilisant PeterMosmans.apache2.
Variables du rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut. Les valeurs par défaut sont spécifiées dans default/main.yml
.
dokuwiki_configure_apache2 : Lorsque vrai, déploiera une configuration Apache
(dokuwiki.conf.j2
) pour Apache, et activera le site. Par défaut, la variable est
non définie (fausse).
dokuwiki_name : Le nom 'interne' du dokuwiki, utilisé par exemple pour
les fichiers journaux Apache et le cronjob de nettoyage. (lorsque dokuwiki_configure_apache2
est
vrai). Cela permet à ce rôle Ansible d'être utilisé pour plusieurs sites Dokuwiki sur
le même serveur. Par défaut :
dokuwiki_name: dokuwiki
dokuwiki_source : L'URL où la version (dernière) de Dokuwiki peut être trouvée. Par défaut, il utilise la source officielle de Dokuwiki.
dokuwiki_source: https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
dokuwiki_base : Le chemin local où Dokuwiki sera installé.
dokuwiki_base: /var/www/html
dokuwiki_group : Le groupe propriétaire des fichiers Dokuwiki.
dokuwiki_group: www-data
dokuwiki_plugins : Une liste de paires nom/source, avec des plugins à installer automatiquement. Les sources doivent pointer vers des sources tar ou .tgz (par exemple). Exemple :
- name: pagelist
src: https://github.com/dokufreaks/plugin-pagelist/tarball/master
dokuwiki_plugins_remove : Une liste de plugins à supprimer automatiquement lors de l'installation ou de la mise à jour. Valeur par défaut :
dokuwiki_plugins_remove:
- name: authad
- name: authldap
- name: authmysql
- name: authpdo
- name: authpgsql
- name: info
- name: popularity
dokuwiki_provision : Lorsque vrai, applique les modèles de configuration pour provisionner Dokuwiki. Si non spécifié ou faux, Dokuwiki sera non provisionné, une installation par défaut. Voir ci-dessous dans le chapitre de provisioning quelles variables peuvent être utilisées dans les modèles de configuration. Notez que lorsque cette variable est vraie, elle va (re-)modéliser et écraser la configuration actuelle de Dokuwiki.
Les fichiers de configuration suivants sont modélisés :
/conf/acl.auth.php
/conf/local.php
/conf/plugins.local.php
/conf/users.auth.php
Exemple :
dokuwiki_provision: true
dokuwiki_savedir : Le répertoire où tous les fichiers (contenu) seront stockés.
dokuwiki_savedir: /var/www/html/data
dokuwiki_templates : Une liste de paires nom/source, avec des modèles à installer automatiquement. Les sources doivent pointer vers des sources tar ou .tgz (par exemple). Exemple :
dokuwiki_templates:
- name: bootstrap3
src: https://github.com/LotarProject/dokuwiki-template-bootstrap3/tarball/master
dokuwiki_user : L'utilisateur propriétaire des fichiers Dokuwiki.
dokuwiki_user: root
Provisioning
Les variables suivantes seront utilisées dans les modèles de configuration
(local.php.j2
, users.auth.php.j2
), et ne seront donc appliquées que si
dokuwiki_provision
est défini sur true
.
dokuwiki_acl_all : Les bits ACL pour le groupe par défaut (@ALL). Par défaut, seuls les utilisateurs connectés sont autorisés à accéder (0).
dokuwiki_acl_user : Les bits ACL pour le groupe utilisateur (@user). Par défaut, les utilisateurs ont des permissions d'upload, de création, d'édition et de lecture (8).
dokuwiki_disableactions : Quelles actions désactiver. Par défaut, l'enregistrement est désactivé.
dokuwiki_title : Le titre de Dokuwiki.
dokuwiki_local : Une liste de paires nom/valeur de configuration à ajouter au
fichier de configuration local.php
.
Exemple :
dokuwiki_local:
- name: "['passcrypt']"
value: 'bcrypt'
Cela entraînera l'ajout de la chaîne suivante à /conf/local.php
:
$conf['mytemplate'] = 'myvalue';
dokuwiki_users : Une liste d'utilisateurs, contenant les paires nom/valeur suivantes :
- login: login
- hash: mot de passe hashé
- name: nom complet
- email: adresse email
- groups: liste de groupes séparés par des virgules
Exemple :
dokuwiki_users:
- login: admin
hash: "$2y$05$Nr3wFqH54gcdhxPK9easseLSVwLAnLTD2flYmQbAbCVIiiTU4mCjS"
name: Administrateur
email: admin@admin
groups: admin,user
Cela entraînera l'ajout de l'utilisateur admin à Dokuwiki, avec le mot de passe bcrypted admin
.
Dépendances
Aucune.
Exemple de 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: Administrateur
email: admin@admin
groups: admin,user
Cet exemple installera Dokuwiki dans /var/www/html
, et utilisera /var/www/html/data
comme répertoire de données. Il installera les plugins tag
et pagelist
, et supprimera les plugins authad
, authldap
, authmysql
, authpdo
, authpgsql
, info
et popularity
. Il installera et utilisera le thème bootstrap3
, et accordera à l'utilisateur admin
avec le mot de passe admin
l'accès au wiki. De plus, il configurera et activera le site Apache.
Licence
GPLv3
Informations sur l'auteur
Créé par Peter Mosmans. Les suggestions, retours et demandes de tirage sont toujours les bienvenus.
Contributions de @onny
Installs, configures and hardens Dokuwiki (including plugins and templates)
ansible-galaxy install PeterMosmans.dokuwiki