roles/hassdb: Deploy Home Assistant database

Normally, Home Assistant uses a SQLite database for storing state
history.  On a Raspberry Pi with only an SD card for storage like
*hass1.pyrocufflink.blue*, this can become extremely slow, especially
for large data sets.  To speed up features like history and logbook,
Home Assistant supports using an external database engine such as
PostgreSQL or MariaDB.

The *hassdb* role and corresponding `hassdb.yml` playbook deploys a
PostgreSQL server for Home Assistant to use.  It needs only to create
the role and database, as Home Assistant manages its own schema.
jenkins-master
Dustin 2020-07-14 11:35:17 -05:00
parent a614f7b5c7
commit f1b4598601
3 changed files with 28 additions and 0 deletions

5
hassdb.yml Normal file
View File

@ -0,0 +1,5 @@
- hosts: hassdb
vars_files:
- vault/hassdb/{{ inventory_hostname }}
roles:
- hassdb

2
hosts
View File

@ -40,6 +40,8 @@ file0.pyrocufflink.blue
[gitea] [gitea]
git0.pyrocufflink.blue git0.pyrocufflink.blue
[hassdb]
[home-assistant] [home-assistant]
hass1.pyrocufflink.blue hass1.pyrocufflink.blue

View File

@ -0,0 +1,21 @@
- name: ensure psycopg2 is installed
package:
name: python-psycopg2
state: present
tags: install
- name: ensure homeassistant postgresql user exists
become: true
become_user: postgres
postgresql_user:
name: homeassistant
password: '{{ hassdb_password }}'
tags: pg-user
- name: ensure homeassistant postgresql database exists
become: true
become_user: postgres
postgresql_db:
name: homeassistant
owner: homeassistant
tags: pg-db