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
python3 -m pip install --user ansible
source .profile
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
Bei jedem öffnen eines neuenTerminalfesnters muss .local/bin zu path Variable hinzugefügt werden.
source ~/.profile
Denn Ansible ist im Verzeichnis ~/.local/bin/ installiert
Nun kann das Playbook gestartet werden.
ansible-playbook bookstack.yml -i invetory.ini
Installation abgeschlossen.