diff --git a/roles/homeassistant/handlers/main.yml b/roles/homeassistant/handlers/main.yml index 8cb9a93..69cfebc 100644 --- a/roles/homeassistant/handlers/main.yml +++ b/roles/homeassistant/handlers/main.yml @@ -4,3 +4,8 @@ ansible.builtin.service: name: postgresql state: restarted + +- name: Restart homeassistant + ansible.builtin.service: + name: home-assistant + state: restarted diff --git a/roles/homeassistant/tasks/installation.yml b/roles/homeassistant/tasks/installation.yml new file mode 100644 index 0000000..64d88af --- /dev/null +++ b/roles/homeassistant/tasks/installation.yml @@ -0,0 +1,33 @@ +--- + +- name: Install defined version of Home Assistant + ansible.builtin.pip: + name: + - wheel + - psycopg2 + - packaging + - uv + - netifaces + - homeassistant=={{ ha_version }} + virtualenv: '{{ ha_venv_dir }}' + virtualenv_command: 'python{{ ha_python_version }} -m venv' + when: ha_version is defined + become: true + become_user: "{{ ha_user }}" + notify: Restart homeassistant + +- name: Install latest version of Home Assistant + ansible.builtin.pip: + name: + - wheel + - psycopg2 + - packaging + - uv + - homeassistant + extra_args: "--upgrade" + virtualenv: "{{ ha_venv_dir }}" + virtualenv_command: 'python{{ ha_python_version }} -m venv' + when: ha_version is undefined + become: true + become_user: "{{ ha_user }}" + notify: Restart homeassistant diff --git a/roles/homeassistant/tasks/main.yml b/roles/homeassistant/tasks/main.yml index ee248b2..b200556 100644 --- a/roles/homeassistant/tasks/main.yml +++ b/roles/homeassistant/tasks/main.yml @@ -9,3 +9,5 @@ loop: - preparation.yml - postgres.yml + - systemd.yml + - installation.yml diff --git a/roles/homeassistant/tasks/systemd.yml b/roles/homeassistant/tasks/systemd.yml new file mode 100644 index 0000000..2c6c63f --- /dev/null +++ b/roles/homeassistant/tasks/systemd.yml @@ -0,0 +1,17 @@ +--- + +- name: Install systemd unit file + ansible.builtin.template: + src: home-assistant.service.j2 + dest: "/etc/systemd/system/home-assistant.service" + owner: root + group: root + mode: "0644" + notify: Restart homeassistant + +- name: Enable home assistant service + ansible.builtin.systemd: + name: home-assistant + daemon_reload: true + enabled: true + notify: Restart homeassistant \ No newline at end of file diff --git a/roles/homeassistant/templates/home-assistant.service.j2 b/roles/homeassistant/templates/home-assistant.service.j2 new file mode 100644 index 0000000..fc6caff --- /dev/null +++ b/roles/homeassistant/templates/home-assistant.service.j2 @@ -0,0 +1,14 @@ +[Unit] +Description=Home Assistant +After=network.target postgresql.service + +[Service] +Type=simple +User={{ ha_user }} +Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:{{ ha_venv_dir }}/bin" +ExecStart={{ ha_venv_dir }}/bin/hass --config {{ ha_conf_dir }} +Restart=always +RestartSec=3 + +[Install] +WantedBy=multi-user.target