configpolicy/roles/homeassistant/tasks/main.yml

107 lines
2.2 KiB
YAML

- name: load architecture-specific values
include_vars: '{{ item }}'
with_first_found:
- '{{ ansible_architecture }}.yml'
- defaults.yml
tags:
- always
- name: ensure podman is installed
package:
name: '{{ homeassistant_podman_packages }}'
state: present
tags:
- install
- name: ensure homeassistant user exists
user:
name: homeassistant
system: true
home: /var/lib/homeassistant
createhome: false
register: homeassistant_user
tags:
- user
- name: ensure homeassistant home directory exists
file:
path: /var/lib/homeassistant
owner: homeassistant
group: homeassistant
mode: '0755'
state: directory
tags:
- datadir
- name: ensure stub home assistant configuration is set
copy:
src: '{{ item }}'
dest: /var/lib/homeassistant/{{ item|basename }}
owner: homeassistant
group: homeassistant
mode: '0644'
force: false
with_fileglob:
- 'stubs/*.yaml'
tags:
- config
- name: ensure home assistant proxy settings are configured
copy:
src: http.yaml
dest: /var/lib/homeassistant/http.yaml
owner: homeassistant
group: homeassistant
mode: '0644'
notify:
- restart homeassistant
tags:
- config
- name: ensure homeassistant container image is available
podman_image:
name: ghcr.io/home-assistant/{{ homeassistant_image_name }}
tag: stable
state: present
force: '{{ homeassistant_update|d|bool }}'
notify:
- restart homeassistant
tags:
- container-image
- container
- name: ensure homeassistant systemd unit is installed
template:
src: homeassistant.service.j2
dest: /etc/systemd/system/homeassistant.service
mode: '0644'
notify:
- reload systemd
- restart homeassistant
tags:
- service
- systemd
- name: ensure homeassistant starts at boot
service:
name: homeassistant
enabled: true
tags:
- service
- 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:
- reload httpd
tags:
- proxy-config
- name: ensure selinux allows apache to proxy
seboolean:
name: httpd_can_network_connect
state: true
persistent: true
tags:
- selinux
- apache