Add home-assistant
This commit is contained in:
parent
e5cbae81f4
commit
93b4bef05d
5 changed files with 86 additions and 0 deletions
|
@ -29,6 +29,7 @@
|
||||||
- hosts: intersect
|
- hosts: intersect
|
||||||
roles:
|
roles:
|
||||||
- netdata
|
- netdata
|
||||||
|
- home-assistant
|
||||||
- intersect-docker
|
- intersect-docker
|
||||||
|
|
||||||
- hosts: grimes
|
- hosts: grimes
|
||||||
|
|
15
ansible/roles/home-assistant/files/configuration.yml
Normal file
15
ansible/roles/home-assistant/files/configuration.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# Configure a default setup of Home Assistant (frontend, api, etc)
|
||||||
|
default_config:
|
||||||
|
|
||||||
|
# Text to speech
|
||||||
|
tts:
|
||||||
|
- platform: google_translate
|
||||||
|
|
||||||
|
group: !include groups.yaml
|
||||||
|
automation: !include automations.yaml
|
||||||
|
script: !include scripts.yaml
|
||||||
|
scene: !include scenes.yaml
|
||||||
|
|
||||||
|
homeassistant:
|
||||||
|
auth_mfa_modules:
|
||||||
|
- type: totp
|
17
ansible/roles/home-assistant/files/docker-compose.yml
Normal file
17
ansible/roles/home-assistant/files/docker-compose.yml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
version: "2.3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
homeassistant:
|
||||||
|
image: homeassistant/home-assistant:stable
|
||||||
|
container_name: home-assistant
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- ./config:/config
|
||||||
|
environment:
|
||||||
|
- TZ=Europe/London
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.homeassistant.rule=Host(`homeassistant.jakehoward.tech`)
|
||||||
|
- traefik.http.routers.homeassistant.tls.certresolver=le
|
||||||
|
- traefik.http.services.home-assistant-homeassistant.loadbalancer.server.port=8123
|
45
ansible/roles/home-assistant/tasks/main.yml
Normal file
45
ansible/roles/home-assistant/tasks/main.yml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
- name: Create home-assistant directory
|
||||||
|
file:
|
||||||
|
path: /opt/home-assistant
|
||||||
|
state: directory
|
||||||
|
owner: "{{ docker_user.name }}"
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create config directory
|
||||||
|
file:
|
||||||
|
path: /opt/home-assistant/config
|
||||||
|
state: directory
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install home-assistant compose file
|
||||||
|
template:
|
||||||
|
src: files/docker-compose.yml
|
||||||
|
dest: /opt/home-assistant/docker-compose.yml
|
||||||
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
|
owner: "{{ docker_user.name }}"
|
||||||
|
validate: /usr/bin/docker-compose -f %s config
|
||||||
|
register: compose_file
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install config
|
||||||
|
template:
|
||||||
|
src: files/configuration.yml
|
||||||
|
dest: /opt/home-assistant/config/configuration.yaml
|
||||||
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
|
owner: "{{ docker_user.name }}"
|
||||||
|
register: config_file
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Cycle home-assistant container
|
||||||
|
docker_compose:
|
||||||
|
project_src: /opt/home-assistant
|
||||||
|
pull: true
|
||||||
|
remove_orphans: true
|
||||||
|
remove_volumes: true
|
||||||
|
state: "{{ item }}"
|
||||||
|
when: compose_file.changed or config_file.changed
|
||||||
|
loop:
|
||||||
|
- absent
|
||||||
|
- present
|
|
@ -131,3 +131,11 @@ resource "cloudflare_record" "jakehowardtech_calibre" {
|
||||||
type = "A"
|
type = "A"
|
||||||
ttl = 1
|
ttl = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "cloudflare_record" "jakehowardtech_homeassistant" {
|
||||||
|
zone_id = cloudflare_zone.jakehowardtech.id
|
||||||
|
name = "homeassistant"
|
||||||
|
value = vultr_server.casey.main_ip
|
||||||
|
type = "A"
|
||||||
|
ttl = 1
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue