roles/homeassistant: Deploy Home Assistant
This commit introduces a *homeassistant* role that installs and sets up Home Assistant using `pip`.jenkins-master
parent
f002da86ef
commit
960528c001
|
@ -0,0 +1,13 @@
|
|||
- hosts: home-assistant
|
||||
roles:
|
||||
- apache
|
||||
- homeassistant
|
||||
tasks:
|
||||
- name: ensure homeassistant is running
|
||||
service:
|
||||
name: homeassistant
|
||||
state: started
|
||||
- name: ensure apache is running
|
||||
service:
|
||||
name: httpd
|
||||
state: started
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
exec /var/lib/homeassistant/.local/bin/hass
|
|
@ -0,0 +1,12 @@
|
|||
# vim: set ft=systemd :
|
||||
[Unit]
|
||||
Description=Home Assistant
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/hass
|
||||
User=homeassistant
|
||||
UMask=0077
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1,10 @@
|
|||
- name: reload systemd
|
||||
command: systemctl daemon-reload
|
||||
- name: restart homeassistant
|
||||
service:
|
||||
name: homeassistant
|
||||
state: restarted
|
||||
- name: restart httpd
|
||||
service:
|
||||
name: homeassistant
|
||||
state: restarted
|
|
@ -0,0 +1,54 @@
|
|||
- name: ensure system dependencies are installed
|
||||
package:
|
||||
name:
|
||||
- python3-pip
|
||||
state: present
|
||||
tags:
|
||||
- install
|
||||
|
||||
- name: ensure homeassistant user exists
|
||||
user:
|
||||
name: homeassistant
|
||||
system: true
|
||||
home: /var/lib/homeassistant
|
||||
|
||||
- name: ensure homeassistant is installed
|
||||
become: true
|
||||
become_user: homeassistant
|
||||
pip:
|
||||
name: homeassistant
|
||||
extra_args: >-
|
||||
--user
|
||||
|
||||
- name: ensure homeassistant entry point is installed
|
||||
copy:
|
||||
src: hass.sh
|
||||
dest: /usr/local/bin/hass
|
||||
mode: '0755'
|
||||
notify:
|
||||
- restart homeassistant
|
||||
- name: ensure homeassistant systemd unit is installed
|
||||
copy:
|
||||
src: homeassistant.service
|
||||
dest: /etc/systemd/system/homeassistant.service
|
||||
mode: '0644'
|
||||
notify:
|
||||
- reload systemd
|
||||
- restart homeassistant
|
||||
- name: ensure homeassistant starts at boot
|
||||
service:
|
||||
name: homeassistant
|
||||
enabled: true
|
||||
|
||||
- name: ensure apache is configured to proxy for homeassistant
|
||||
template:
|
||||
src: homeassistant.httpd.conf.j2
|
||||
dest: /etc/httpd/conf.d/homeassistant.conf
|
||||
mode: '0644'
|
||||
notify:
|
||||
- restart httpd
|
||||
- name: ensure selinux allows apache to proxy
|
||||
seboolean:
|
||||
name: httpd_can_network_connect
|
||||
state: true
|
||||
persistent: true
|
|
@ -0,0 +1,37 @@
|
|||
homeassistant:
|
||||
# Name of the location where Home Assistant is running
|
||||
name: Home
|
||||
# Location required to calculate the time the sun rises and sets
|
||||
latitude: 38.9568
|
||||
longitude: -94.6832
|
||||
# Impacts weather/sunrise data (altitude above sea level in meters)
|
||||
elevation: 0
|
||||
# metric for Metric, imperial for Imperial
|
||||
unit_system: imperial
|
||||
# Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
time_zone: America/Chicago
|
||||
# Customization file
|
||||
customize: !include customize.yaml
|
||||
|
||||
# Configure a default setup of Home Assistant (frontend, api, etc)
|
||||
default_config:
|
||||
|
||||
# Show the introduction message on startup.
|
||||
introduction:
|
||||
|
||||
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
|
||||
# http:
|
||||
# base_url: example.duckdns.org:8123
|
||||
http:
|
||||
server_host: '::1'
|
||||
|
||||
# Sensors
|
||||
sensor: !include sensors.yaml
|
||||
|
||||
# Text to speech
|
||||
tts:
|
||||
- platform: google
|
||||
|
||||
group: !include groups.yaml
|
||||
automation: !include automations.yaml
|
||||
script: !include scripts.yaml
|
|
@ -0,0 +1,13 @@
|
|||
ProxyPreserveHost On
|
||||
ProxyRequests Off
|
||||
|
||||
ProxyPass /api/websocket ws://localhost:8123/api/websocket
|
||||
ProxyPassReverse /api/websocket ws://localhost:8123/api/websocket
|
||||
ProxyPass / http://localhost:8123/
|
||||
ProxyPassReverse / http://localhost:8123/
|
||||
|
||||
RewriteEngine on
|
||||
RewriteCond %{HTTP:Upgrade} =websocket [NC]
|
||||
RewriteRule /(.*) ws://localhost:8123/$1 [P,L]
|
||||
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
|
||||
RewriteRule /(.*) http://localhost:8123/$1 [P,L]
|
Loading…
Reference in New Issue