layereight.pimatic

ansible-pimatic Statut de construction

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"

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
      }
    }
  ]
}
À propos du projet

An Ansible role to install and configure pimatic - a smart home automation software for the Raspberry Pi.

Installer
ansible-galaxy install layereight.pimatic
Licence
Unknown
Téléchargements
98
Propriétaire