layereight.pimatic

ansible-pimatic 构建状态

这是一个Ansible角色,用于安装和配置pimatic - 一款针对Raspberry Pi的智能家居自动化软件。

需求

  • Raspberry Pi与Raspbian操作系统
  • 能够访问Raspberry Pi的网络和启用sshd
  • 具有sudo权限的用户

通过Ansible Galaxy安装角色

一般运行命令:

$ ansible-galaxy install layereight.pimatic

如果想在包含其他角色的集合中安装特定版本,可以使用角色文件:

$ ansible-galaxy install -r roles.yml

roles.yml

- name: layereight.pimatic
  src: layereight.pimatic
  version: "2.0.1"

角色变量

必填项

  • pimatic_nodejs_arch: 必须设置。选择node.js硬件架构,通常选择armv6l(Pi Model A, B, B+或Zero)或armv7l(Pi 2 Model B或Pi 3 Model B)。

选填项

  • pimatic_nodejs_version

    • 默认: "v10.18.1"
    • 描述: "要安装的nodejs版本"
  • pimatic_app_dir

    • 默认: "pimatic-app"
    • 描述: 用户主目录下用于安装pimatic的目录名。例如,用户pi的最终安装目录将变为/home/pi/pimatic-app
  • pimatic_port

    • 默认: 8080
    • 描述: pimatic的网页前端监听的端口。我们也会在这个端口等待pimatic启动。如果启用pimatic_ssl,你可能想将其设置为443
  • pimatic_config_template

    • 默认: "config.json.j2"
    • 描述: 此角色包含pimatic的标准配置。pimatic的httpServer将在pimatic_port上启动。通常,你想提供自己的pimatic配置模板。例如,将pimatic_config_template设置为pimatic_config.json.j2,并在相对于你的ansible剧本的templates目录中创建一个同名的文件。
  • pimatic_waitfor_startup

    • 默认: true
    • 描述: 配置角色是否等待pimatic启动。根据我们运行的硬件和配置的插件,这可能需要长达1小时。
  • pimatic_ssl

    • 默认: false
    • 描述: 配置是否生成自签名的ssl证书。如果设置为true,角色将提供变量pimatic_ssl_privkeypimatic_ssl_cert,用于生成的ssl私钥和证书的路径。
  • pimatic_ssl_cn

    • 默认: "{{ ansible_fqdn }}"
    • 描述: 证书中的通用名称(CN)。
  • pimatic_ssl_c

    • 默认: "DE"
    • 描述: 证书中的国家(C)。
  • pimatic_ssl_st

    • 默认: "Berlin"
    • 描述: 证书中的州(ST)。
  • pimatic_ssl_l

    • 默认: "Berlin"
    • 描述: 证书中的位置(L)。
  • pimatic_ssl_o

    • 默认: "pimatic"
    • 描述: 证书中的组织(O)。
  • pimatic_ssl_ou

    • 默认: "pimatic"
    • 描述: 证书中的组织单位(OU)。

提供的变量

  • pimatic_ssl_privkey: 如果pimatic_ssl设置为true,将提供此变量。你可能想在你的pimatic_config_template中使用此变量来设置httpsServer

  • pimatic_ssl_cert: 如果pimatic_ssl设置为true,将提供此变量。你可能想在你的pimatic_config_template中使用此变量来设置httpsServer

示例剧本

典型的剧本运行:

$ 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": "Favourites",
      "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
许可证
Unknown
下载
98
拥有者