Direkt zum Hauptinhalt

Installtion via Ansible

Vorrausetzungen.


Ein Debian Bullseye mit ssh Zugang per Schlüsseldatei.

Denn Bookstack installieren wir remote bequem mit Ansible.
Und auf unserem Remote Client / z.b Laptop oder PC installieren wir Ansible.

Wie Ihr Ansible installiert und verwendet seht ihr in unserem Buch: Ansible.
Aber auch ohne ansible Kenntnisse ist das hier installierbar.

Ansible und diese Ansible-Rollen installieren.
Vom Homeverzeichnis aus also:

cd ~

Nun diese Befehle absetzten

# install packages an ansible machine
sudo apt install python3-pip
pip install -U Jinja2
sudo pip install ansible
ansible-galaxy install supertarto.bookstack
ansible-galaxy install supertarto.apache
ansible-galaxy install supertarto.php
ansible-galaxy install supertarto.mariadb


Nun legen dazu einen neue Datei bookstack.yaml an.
Dies ist unser Playbook, sprich unser installationsscript.
Im Home Verzeichnis auf euren Computer / Laptop einfach ein neues Verzeichnis namens Ansible erstellen

mkdir  ~/ansible

Dann eine neue Datei anlegen

nano ~/ansible/boockstack.yaml

Folgender Inhalt einfügen:


# install packages an ansible machine
#ansible-galaxy install supertarto.bookstack
#ansible-galaxy install supertarto.apache
#ansible-galaxy install supertarto.php
#ansible-galaxy install supertarto.mariadb
#pip install -U Jinja2

#standard weblogin data :
#Username : admin@admin.com
#Pass : password


- hosts: all
  roles:
    - role: supertarto.apache
    - role: supertarto.php
    - role: supertarto.mariadb
    - role: supertarto.bookstack

  pre_tasks:
    - name: Update apt cache.
      apt:
        update_cache: true
        cache_valid_time: 600
      when: ansible_os_family == 'Debian'
      changed_when: false
  vars:
    php_packages:
      - php7.4
      - php7.4-mysql
      - php7.4-curl
      - php7.4-pdo
      - php7.4-xml
      - php7.4-mbstring
      - php7.4-gd
      - php-tokenizer
      - php7.4-tidy
    #hier den tatsächlinen hostname aus der /etc/hostname angeben
    bookstack_host: localhost
    bookstack_db_name: bookstackdb
    bookstack_db_user: bookstackuser
    bookstack_db_password: <unser sicheres password für die db>
    bookstack_lang: de
    apache_create_vhosts: true
    apache_mods_enabled:
      - rewrite
    
    #wenn eine eigene vhosts angelegt werden soll
    #apache_vhosts_filename: "bookstack.conf"
    #wenn nur eintrag dann in die default vhosts
    apache_vhosts_filename: "000-default.conf"
    apache_vhost_config:
      - listen_ip: "*"
        listen_port: 80
        server_name: 192.168.178.209
        documentroot: "/var/www/Bookstack/public"
        serveradmin: admin@localhost
        custom_param: |
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
          LogLevel warn
        directory:
          - path: "/var/www/Bookstack/public"
            config: |
              AllowOverride All
              Order deny,allow
              allow from all
              Options +FollowSymLinks
              RewriteEngine On
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteRule ^ index.php [L]

    mariadb_use_dump_script: false
    mariadb_databases:
      - name: "{{ bookstack_db_name }}"

    mariadb_users:
      - name: "{{ bookstack_db_user }}"
        host: "{{ bookstack_host }}"
        password: "{{ bookstack_db_password }}"
        priv: "{{ bookstack_db_name }}.*:SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES"

Nun noch folgenden Abschnitt in der Datei anpassen.

...
bookstack_host: localhost
bookstack_db_name: bookstackdb
bookstack_db_user: bookstackuser
bookstack_db_password: <unser sicheres password für die db>
bookstack_lang: de
...


Das password anpassen und die Sprache auf de umstellen.

Datei speichern fertig.
Nun noch eine inventory Datei anlegen.
In die wird der Server eingetragen auf den dann das BookStack installiert werden soll, sprich das ansible Script / Playbook ausgeführt werden soll.

nano ~/ansible/inventory.ini

Folgender Inhalt, der parameter ansible_user= lehgt den Benutzer fest mit dem die Installation auf dem Server ausgeführt werden soll, hier root

192.168.178.210 ansible_user=root

Denn Ansible ist im Verzeichnis ~/.local/bin/ installiert

Nun kann das Playbook gestartet werden.

ansible-playbook bookstack.yml -i invetory.ini 

Installation abgeschlossen.