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"
- также см. документацию Ansible Galaxy и введение в Ansible Galaxy
Переменные роли
обязательные
- 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 запустится на этом порту. Вы можете установить его на 443, если включите pimatic_ssl.
pimatic_config_template
- по умолчанию: "config.json.j2"
- описание: Роль поставляется со стандартной конфигурацией pimatic. HTTP-сервер pimatic будет запущен на pimatic_port.
Обычно вы хотите предоставить свою собственную конфигурацию pimatic. Например, установите pimatic_config_template на pimatic_config.json.j2
и создайте файл с таким именем в каталоге
templates
, относительно вашего плейбука ansible.
pimatic_waitfor_startup
- по умолчанию: true
- описание: Настройте, должно ли ожидать роль, пока pimatic запустится. В зависимости от аппаратного обеспечения и настроенных плагинов это может занять до 1 часа.
pimatic_ssl
- по умолчанию: false
- описание: Настройте, нужно ли генерировать самоподписанные ssl-сертификаты. Если установить в true, роль предоставит переменные pimatic_ssl_privkey и pimatic_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": "Избранное",
"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/ansible-pimatic