layereight.pimatic
ansible-pimatic 
Eine Ansible-Rolle zur Installation und Konfiguration von pimatic - einer Smart Home Automationssoftware für den Raspberry Pi.
Anforderungen
- Raspberry Pi mit Raspbian-Betriebssystem
- Netzwerkzugang zum Raspberry Pi und sshd aktiviert
- Ein Benutzer mit sudo-Rechten
Rolle über Ansible Galaxy installieren
Typische Ausführung:
$ ansible-galaxy install layereight.pimatic
Wenn Sie eine bestimmte Version in einer Sammlung mit anderen Rollen über eine Rollen-Datei installieren möchten:
$ ansible-galaxy install -r roles.yml
roles.yml
- name: layereight.pimatic
src: layereight.pimatic
version: "2.0.1"
- siehe auch die Ansible Galaxy-Dokumentation und die Ansible Galaxy-Einführung
Rolleneigenschaften
Pflichtangaben
- pimatic_nodejs_arch: Muss festgelegt werden. Wählen Sie die Hardwarearchitektur von Node.js, typischerweise armv6l (Pi Modell A, B, B+ oder Zero) oder armv7l (Pi 2 Modell B oder Pi 3 Modell B).
Optionale Angaben
pimatic_nodejs_version
- Standard: "v10.18.1"
- Beschreibung: "Version von Node.js, die installiert werden soll"
pimatic_app_dir
- Standard: "pimatic-app"
- Beschreibung: Name des Verzeichnisses im Home-Verzeichnis des Benutzers, in dem pimatic installiert werden soll. Z.B. mit dem Benutzer
pi
wird das endgültige Installationsverzeichnis/home/pi/pimatic-app
sein.
pimatic_port
- Standard: 8080
- Beschreibung: Port, auf dem das Web-Frontend von pimatic lauscht. Wir warten auch darauf, dass pimatic auf diesem Port startet. Möglicherweise möchten Sie ihn auf 443 setzen, wenn Sie pimatic_ssl aktivieren.
pimatic_config_template
- Standard: "config.json.j2"
- Beschreibung: Die Rolle wird mit der Standardkonfiguration von pimatic bereitgestellt. Der HTTP-Server von Pimatic wird auf pimatic_port gestartet.
Üblicherweise möchten Sie Ihre eigene pimatic-Konfiguration bereitstellen. Zum Beispiel setzen Sie pimatic_config_template auf pimatic_config.json.j2
und erstellen eine Datei mit diesem Namen im
templates
-Verzeichnis relativ zu Ihrem Ansible-Playbook.
pimatic_waitfor_startup
- Standard: true
- Beschreibung: Konfigurieren, ob die Rolle wartet, bis pimatic gestartet ist. Je nach Hardware und konfigurierten Plugins kann dies bis zu 1 Stunde dauern.
pimatic_ssl
- Standard: false
- Beschreibung: Konfigurieren, ob selbstsignierte SSL-Zertifikate generiert werden sollen. Wenn auf true gesetzt, bietet die Rolle die Variablen pimatic_ssl_privkey und pimatic_ssl_cert mit den Pfaden zum generierten privaten SSL-Schlüssel und Zertifikat an.
pimatic_ssl_cn
- Standard: "{{ ansible_fqdn }}"
- Beschreibung: Common Name im Zertifikat (CN im Betreff).
pimatic_ssl_c
- Standard: "DE"
- Beschreibung: Land im Zertifikat (C im Betreff).
pimatic_ssl_st
- Standard: "Berlin"
- Beschreibung: Bundesland im Zertifikat (ST im Betreff).
pimatic_ssl_l
- Standard: "Berlin"
- Beschreibung: Ort im Zertifikat (L im Betreff).
pimatic_ssl_o
- Standard: "pimatic"
- Beschreibung: Organisation im Zertifikat (O im Betreff).
pimatic_ssl_ou
- Standard: "pimatic"
- Beschreibung: Organisationseinheit im Zertifikat (OU im Betreff).
Bereitgestellte Variablen
pimatic_ssl_privkey: Wird bereitgestellt, wenn pimatic_ssl auf true gesetzt ist. Sie können diese Variable in Ihrer pimatic_config_template verwenden, um einen
httpsServer
einzurichten.pimatic_ssl_cert: Wird bereitgestellt, wenn pimatic_ssl auf true gesetzt ist. Sie können diese Variable in Ihrer pimatic_config_template verwenden, um einen
httpsServer
einzurichten.
Beispiel-Playbook
Typische Playbook-Ausführung:
$ ansible-playbook -i inventory pimatic.yml
inventory
[raspberrypi]
pizero ansible_host=192.168.0.101 ansible_user=pi ansible_ssh_pass=raspberry
pimatic.yml
- hosts: raspberrypi
roles:
- pimatic
vars:
pimatic_nodejs_arch: "armv6l"
pimatic_port: 443
pimatic_config_template: "pimatic_config.json.j2"
pimatic_ssl: true
pimatic_admin_password: "verysecret"
templates/pimatic_config.json.j2
{
"settings": {
"httpServer": {
"enabled": false
},
"httpsServer": {
"enabled": true,
"port": {{ pimatic_port }},
"hostname": "",
"keyFile": "{{ pimatic_ssl_privkey }}",
"certFile": "{{ pimatic_ssl_cert }}"
},
"database": {
}
},
"plugins": [
{
"plugin": "cron"
},
{
"plugin": "mobile-frontend"
}
],
"devices": [
],
"rules": [
],
"pages": [
{
"id": "favourite",
"name": "Favoriten",
"devices": []
}
],
"groups": [
],
"users": [
{
"username": "admin",
"password": "{{ pimatic_admin_password }}",
"role": "admin"
}
],
"roles": [
{
"name": "admin",
"permissions": {
"pages": "write",
"rules": "write",
"variables": "write",
"messages": "write",
"events": "write",
"devices": "write",
"groups": "write",
"plugins": "write",
"updates": "write",
"database": "write",
"config": "write",
"controlDevices": true,
"restart": true
}
}
]
}
An Ansible role to install and configure pimatic - a smart home automation software for the Raspberry Pi.
ansible-galaxy install layereight.pimatic