layereight.pimatic
ansible-pimatic 
Un rôle Ansible pour installer et configurer pimatic - un logiciel d'automatisation de maison intelligente pour le Raspberry Pi.
Exigences
- Raspberry Pi avec le système d'exploitation Raspbian
- accès réseau au Raspberry Pi et sshd activé
- un utilisateur avec des permissions sudo
Installer le rôle via Ansible Galaxy
Exécution typique :
$ ansible-galaxy install layereight.pimatic
Si vous souhaitez installer une version spécifique dans une collection avec d'autres rôles en utilisant un fichier de rôle :
$ ansible-galaxy install -r roles.yml
roles.yml
- name: layereight.pimatic
src: layereight.pimatic
version: "2.0.1"
- voir aussi la documentation Ansible Galaxy et l' introduction à Ansible Galaxy
Variables du rôle
obligatoires
- pimatic_nodejs_arch : Doit être défini. Choisissez l'architecture matérielle de node.js, typiquement armv6l (Pi Modèle A, B, B+ ou Zero) ou armv7l (Pi 2 Modèle B ou Pi 3 Modèle B).
optionnelles
pimatic_nodejs_version
- par défaut : "v10.18.1"
- description : "Version de nodejs à installer"
pimatic_app_dir
- par défaut : "pimatic-app"
- description : Nom du répertoire dans le répertoire personnel de l'utilisateur où pimatic doit être installé. Par exemple, avec l'utilisateur
pi
, le répertoire d'installation final sera/home/pi/pimatic-app
.
pimatic_port
- par défaut : 8080
- description : Port sur lequel la section web de pimatic écoutera. Nous attendrons également que pimatic démarre sur ce port. Vous voudrez peut-être le définir à 443 lorsque vous activez pimatic_ssl.
pimatic_config_template
- par défaut : "config.json.j2"
- description : Le rôle est fourni avec la configuration standard de pimatic. Le serveur http de pimatic sera démarré sur pimatic_port. En général, vous voudrez fournir votre propre modèle de configuration pimatic. Par exemple, définissez pimatic_config_template sur pimatic_config.json.j2
et créez un fichier de ce nom dans le répertoire
templates
par rapport à votre playbook ansible.
pimatic_waitfor_startup
- par défaut : true
- description : Configurez si le rôle attend que pimatic démarre. Selon le matériel sur lequel nous fonctionnons et selon les plugins configurés, cela peut prendre jusqu'à 1 heure.
pimatic_ssl
- par défaut : false
- description : Configurez si nous devons générer des certificats ssl auto-signés. Si défini sur true, le rôle fournira les variables pimatic_ssl_privkey et pimatic_ssl_cert avec les chemins d'accès à la clé privée ssl générée et au certificat.
pimatic_ssl_cn
- par défaut : "{{ ansible_fqdn }}"
- description : Nom commun dans le certificat (CN dans le sujet).
pimatic_ssl_c
- par défaut : "DE"
- description : Pays dans le certificat (C dans le sujet).
pimatic_ssl_st
- par défaut : "Berlin"
- description : État dans le certificat (ST dans le sujet).
pimatic_ssl_l
- par défaut : "Berlin"
- description : Localisation dans le certificat (L dans le sujet).
pimatic_ssl_o
- par défaut : "pimatic"
- description : Organisation dans le certificat (O dans le sujet).
pimatic_ssl_ou
- par défaut : "pimatic"
- description : Unité organisationnelle dans le certificat (OU dans le sujet).
fournis
pimatic_ssl_privkey : Fournie si pimatic_ssl est défini sur true. Vous pourriez vouloir utiliser cette variable dans votre pimatic_config_template pour configurer un
httpsServer
.pimatic_ssl_cert : Fournie si pimatic_ssl est défini sur true. Vous pourriez vouloir utiliser cette variable dans votre pimatic_config_template pour configurer un
httpsServer
.
Exemple de Playbook
Exécution typique d'un playbook :
$ 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: "trèssecret"
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": "Favoris",
"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