PeterMosmans.dokuwiki

Ansible Rola: Dokuwiki

Status budowy tej roli: Status budowy

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

O projekcie

Installs, configures and hardens Dokuwiki (including plugins and templates)

Zainstaluj
ansible-galaxy install PeterMosmans.dokuwiki
Licencja
gpl-3.0
Pobrania
179
Właściciel
Lead pentester, security consultant, trainer