layereight.pimatic
ansible-pimatic 
Un rol de Ansible para instalar y configurar pimatic - un software de automatización del hogar para el Raspberry Pi.
Requisitos
- Raspberry Pi con Raspbian OS
- acceso a la red del Raspberry Pi y sshd habilitado
- un usuario con permisos de sudo
Instalar el rol a través de Ansible Galaxy
Ejemplo típico:
$ ansible-galaxy install layereight.pimatic
Si deseas instalar una versión específica en una colección con otros roles usando un archivo de roles:
$ ansible-galaxy install -r roles.yml
roles.yml
- name: layereight.pimatic
src: layereight.pimatic
version: "2.0.1"
- también consulta la documentación de Ansible Galaxy y la introducción a Ansible Galaxy
Variables del Rol
obligatorias
- pimatic_nodejs_arch: Debe ser configurado. Elige la arquitectura de hardware de node.js, típicamente armv6l (Pi Model A, B, B+ o Zero) o armv7l (Pi 2 Model B o Pi 3 Model B).
opcionales
pimatic_nodejs_version
- por defecto: "v10.18.1"
- descripción: "Versión de nodejs a instalar"
pimatic_app_dir
- por defecto: "pimatic-app"
- descripción: Nombre del directorio en el directorio home del usuario donde pimatic debe ser instalado. Por ejemplo, con el usuario
pi
, el directorio de instalación final será/home/pi/pimatic-app
.
pimatic_port
- por defecto: 8080
- descripción: Puerto donde la interfaz web de pimatic escuchará. También esperamos que pimatic inicie en ese puerto. Puede que desees configurarlo a 443 cuando habilites pimatic_ssl.
pimatic_config_template
- por defecto: "config.json.j2"
- descripción: El rol viene con la configuración estándar de pimatic. El httpServer de pimatic se iniciará en pimatic_port.
Normalmente querrás proporcionar tu propia plantilla de configuración de pimatic. Por ejemplo, establece pimatic_config_template a pimatic_config.json.j2
y crea un archivo con ese nombre en el directorio
templates
relativo a tu playbook de ansible.
pimatic_waitfor_startup
- por defecto: true
- descripción: Configurar si el rol espera que pimatic inicie. Dependiendo del hardware en el que estamos ejecutando y de los plugins configurados, esto puede tardar hasta 1 hora.
pimatic_ssl
- por defecto: false
- descripción: Configura si debemos generar certificados ssl autofirmados. Si se establece en true, el rol proporcionará las variables pimatic_ssl_privkey y pimatic_ssl_cert con las rutas a la clave privada ssl generada y al certificado.
pimatic_ssl_cn
- por defecto: "{{ ansible_fqdn }}"
- descripción: Nombre Común en el certificado (CN en el sujeto).
pimatic_ssl_c
- por defecto: "DE"
- descripción: País en el certificado (C en el sujeto).
pimatic_ssl_st
- por defecto: "Berlín"
- descripción: Estado en el certificado (ST en el sujeto).
pimatic_ssl_l
- por defecto: "Berlín"
- descripción: Localización en el certificado (L en el sujeto).
pimatic_ssl_o
- por defecto: "pimatic"
- descripción: Organización en el certificado (O en el sujeto).
pimatic_ssl_ou
- por defecto: "pimatic"
- descripción: Unidad Organizativa en el certificado (OU en el sujeto).
proporcionadas
pimatic_ssl_privkey: Proporcionada si pimatic_ssl está configurado a true. Puede que desees usar esta variable en tu pimatic_config_template para configurar un
httpsServer
.pimatic_ssl_cert: Proporcionada si pimatic_ssl está configurado a true. Puede que desees usar esta variable en tu pimatic_config_template para configurar un
httpsServer
.
Ejemplo de Playbook
Ejemplo típico de ejecución del playbook:
$ ansible-playbook -i inventory pimatic.yml
inventario
[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": "Favoritos",
"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