/
/
/
Ansible role that deploys a supervised home assistant installation on my homeassistant device.
1---
2- name: Check if Home Assistant Supervisor is already installed
3 ansible.builtin.stat:
4 path: /usr/sbin/hassio-supervisor
5 register: supervisor_installed
6 check_mode: false
7
8- name: Install Home Assistant Supervisor
9 block:
10 - name: Download Home Assistant Supervised package
11 ansible.builtin.get_url:
12 url: "{{ homeassistant_supervisor_deb_url }}"
13 dest: /tmp/homeassistant-supervised.deb
14 mode: '0644'
15 timeout: 120
16 become: true
17
18 - name: Set machine type environment variable
19 ansible.builtin.lineinfile:
20 path: /etc/environment
21 regexp: '^MACHINE_TYPE='
22 line: "MACHINE_TYPE={{ homeassistant_machine_type }}"
23 create: true
24 owner: root
25 group: root
26 mode: '0644'
27 become: true
28
29 - name: Pre-configure debconf for Home Assistant installation
30 ansible.builtin.debconf:
31 name: homeassistant-supervised
32 question: "homeassistant-supervised/machine-type"
33 value: "{{ homeassistant_machine_type }}"
34 vtype: select
35 become: true
36
37 - name: Install Home Assistant Supervised package
38 ansible.builtin.apt:
39 deb: /tmp/homeassistant-supervised.deb
40 state: present
41 environment:
42 MACHINE_TYPE: "{{ homeassistant_machine_type }}"
43 DEBIAN_FRONTEND: noninteractive
44 become: true
45 register: supervisor_install_result
46 notify: restart homeassistant-supervisor
47
48 - name: Clean up Home Assistant Supervised package
49 ansible.builtin.file:
50 path: /tmp/homeassistant-supervised.deb
51 state: absent
52 become: true
53 when: homeassistant_cleanup_downloads | bool
54
55 when:
56 - not supervisor_installed.stat.exists
57 - not ansible_check_mode
58
59- name: Configure Home Assistant Supervisor service
60 block:
61 - name: Enable Home Assistant Supervisor service
62 ansible.builtin.systemd:
63 name: hassio-supervisor
64 enabled: true
65 daemon_reload: true
66 become: true
67
68 - name: Ensure Home Assistant Supervisor is started
69 ansible.builtin.systemd:
70 name: hassio-supervisor
71 state: started
72 become: true
73
74- name: Configure Home Assistant system integration
75 block:
76 - name: Create Home Assistant systemd service override directory
77 ansible.builtin.file:
78 path: /etc/systemd/system/hassio-supervisor.service.d
79 state: directory
80 owner: root
81 group: root
82 mode: '0755'
83 become: true
84
85 - name: Configure Home Assistant service dependencies
86 ansible.builtin.copy:
87 content: |
88 [Unit]
89 Wants=docker.service
90 After=docker.service network-online.target
91
92 [Service]
93 Environment=SUPERVISOR_SHARE={{ homeassistant_data_share }}
94 Environment=SUPERVISOR_NAME=hassio_supervisor
95 Restart=always
96 RestartSec=30
97 dest: /etc/systemd/system/hassio-supervisor.service.d/override.conf
98 owner: root
99 group: root
100 mode: '0644'
101 become: true
102 notify:
103 - reload systemd
104 - restart homeassistant-supervisor
105
106- name: Verify Home Assistant installation directories
107 ansible.builtin.file:
108 path: "{{ item }}"
109 state: directory
110 owner: root
111 group: root
112 mode: '0755'
113 become: true
114 loop:
115 - "{{ homeassistant_data_share }}"
116 - "{{ homeassistant_data_share }}/homeassistant"
117 - "{{ homeassistant_data_share }}/supervisor"
118 - "{{ homeassistant_data_share }}/addons"
119 - "{{ homeassistant_data_share }}/backup"
120