ansible: install & start homeassistant
authorKristof Provost <kp@FreeBSD.org>
Tue, 5 Mar 2024 21:38:13 +0000 (22:38 +0100)
committerKristof Provost <kp@FreeBSD.org>
Tue, 5 Mar 2024 21:38:13 +0000 (22:38 +0100)
ansible/README.txt
ansible/playbook-push.yaml [new file with mode: 0644]
ansible/templates/homeassistant [new file with mode: 0644]

index 2f88182..80e12ec 100644 (file)
@@ -2,3 +2,7 @@ Required packages
 =================
 py39-ansible
 py39-ansible-sysrc
+
+Push
+=====
+ansible-playbook -i inventory.yaml playbook-push.yaml
diff --git a/ansible/playbook-push.yaml b/ansible/playbook-push.yaml
new file mode 100644 (file)
index 0000000..aa97b9e
--- /dev/null
@@ -0,0 +1,59 @@
+- name: Install packages
+  hosts: domoticamachines
+  tasks:
+    - name: create HA user
+      user:
+        name: "domotica"
+        comment: "Home Assistant"
+        system: yes
+        shell: "/sbin/nologin"
+      become: true
+    - name: create HA directory
+      file:
+        path: "/home/domotica/ha/"
+        state: directory
+        mode: 02775
+        owner: "domotica"
+        group: "domotica"
+      become: true
+
+    - name: install required python modules (pre-install)
+      pip:
+        name: "{{ item }}"
+        extra_args: "--upgrade"
+        virtualenv: "/home/domotica/ha/"
+      with_items:
+        - colorlog
+      become: true
+    - name: install defined version of Home Assistant
+      pip:
+        name: homeassistant
+        version: "2024.2.2"
+        virtualenv: "/home/domotica/ha/"
+      when: ha_version is defined
+      become: true
+    - name: install latest version of Home Assistant
+      pip:
+        name: homeassistant
+        extra_args: "--upgrade"
+        virtualenv: "/home/domotica/ha/"
+      when: ha_version is undefined
+      become: true
+    - name: install homeassistant startup script
+      template:
+        src: homeassistant
+        dest: "/usr/local/etc/rc.d/homeassistant"
+        owner: root
+        group: wheel
+        mode: 0755
+      become: true
+    - name: start home assistant
+      community.general.sysrc:
+        name: homeassistant_enable
+        value: "YES"
+      become: true
+    - name: Start homeassistant
+      ansible.builtin.service:
+        name:  homeassistant
+        state: started
+      become: true
diff --git a/ansible/templates/homeassistant b/ansible/templates/homeassistant
new file mode 100644 (file)
index 0000000..ca89697
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+
+# PROVIDE: homeassistant
+# REQUIRE: network
+# BEFORE:  DAEMON
+
+. /etc/rc.subr
+
+name="homeassistant"
+rcvar=${name}_enable
+pidfile=/var/run/${name}.pid
+procname=/home/domotica/ha/bin/hass
+
+command=/usr/sbin/daemon
+command_args=" -f -S -p ${pidfile} -u domotica ${procname} --ignore-os-check"
+
+load_rc_config $name
+run_rc_command $1