homeassistant: Initial version of role
This commit is contained in:
parent
f3fc1b3f63
commit
810e64dde7
6 changed files with 108 additions and 0 deletions
2
roles/homeassistant/defaults/main.yml
Normal file
2
roles/homeassistant/defaults/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
homeassistant_version: stable
|
8
roles/homeassistant/files/auth-command.sh
Executable file
8
roles/homeassistant/files/auth-command.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
curl -sf -X POST -H "Content-Type: application/json" -d @- \
|
||||||
|
https://id.foo.sh/authcheck <<EOF
|
||||||
|
{"username": "${username}", "password": "${password}", "group": "foosh"}
|
||||||
|
EOF
|
5
roles/homeassistant/handlers/main.yml
Normal file
5
roles/homeassistant/handlers/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- name: Restart homeassistant
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: homeassistant-container
|
||||||
|
state: restarted
|
4
roles/homeassistant/meta/main.yml
Normal file
4
roles/homeassistant/meta/main.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- {role: nginx}
|
||||||
|
- {role: podman}
|
71
roles/homeassistant/tasks/main.yml
Normal file
71
roles/homeassistant/tasks/main.yml
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
---
|
||||||
|
- name: Create group
|
||||||
|
ansible.builtin.group:
|
||||||
|
name: ha
|
||||||
|
|
||||||
|
- name: Create user
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: ha
|
||||||
|
comment: Podman HomeAssistant
|
||||||
|
group: ha
|
||||||
|
shell: /sbin/nologin
|
||||||
|
|
||||||
|
- name: Fix SELinux contexts from config directory
|
||||||
|
community.general.sefcontext:
|
||||||
|
path: /export/homeassistant(/.*)?
|
||||||
|
setype: container_file_t
|
||||||
|
when: ansible_selinux_python_present
|
||||||
|
|
||||||
|
- name: Create config directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /export/homeassistant
|
||||||
|
state: directory
|
||||||
|
mode: 0700
|
||||||
|
owner: ha
|
||||||
|
group: ha
|
||||||
|
setype: _default
|
||||||
|
|
||||||
|
- name: Link config directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
dest: /srv/homeassistant
|
||||||
|
src: /export/homeassistant
|
||||||
|
state: link
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
follow: false
|
||||||
|
|
||||||
|
- name: Copy authentication command
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /srv/homeassistant/auth-command.sh
|
||||||
|
src: auth-command.sh
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
setype: _default
|
||||||
|
|
||||||
|
- name: Create service file
|
||||||
|
ansible.builtin.template:
|
||||||
|
dest: /etc/systemd/system/homeassistant-container.service
|
||||||
|
src: homeassistant-container.service.j2
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
notify: Restart homeassistant
|
||||||
|
|
||||||
|
- name: Enable service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: homeassistant-container
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: Copy nginx config
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "/etc/nginx/conf.d/{{ inventory_hostname }}/homeassistant.conf"
|
||||||
|
content: |
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:8001;
|
||||||
|
}
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
notify: Restart nginx
|
|
@ -0,0 +1,18 @@
|
||||||
|
[Unit]
|
||||||
|
Description=HomeAssistant Container
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=ha
|
||||||
|
ExecStart=/usr/bin/podman run \
|
||||||
|
--rm -p 127.0.0.1:8001:8123 \
|
||||||
|
--name homeassistant \
|
||||||
|
--env TZ=Europe/Helsinki \
|
||||||
|
--volume /srv/homeassistant:/config:rw \
|
||||||
|
docker.io/homeassistant/home-assistant:{{ homeassistant_version }}
|
||||||
|
ExecStop=/usr/bin/podman stop --ignore homeassistant
|
||||||
|
ExecStopPost=/usr/bin/podman rm -f --ignore homeassistant
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Add table
Add a link
Reference in a new issue