Skip to content

Commit

Permalink
feat(supervised_install): Install new OS Agent prerequisite software
Browse files Browse the repository at this point in the history
* Install new OS Agent prerequisite software

* Add exclusions for new lint errors

* Fixes #20 - Unsupported install due to missing OS Agent
  • Loading branch information
jhampson-dbre authored Oct 9, 2021
1 parent f6dffa3 commit ff4511c
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 17 deletions.
2 changes: 2 additions & 0 deletions .ansible-lint
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
skip_list:
- risky-shell-pipe
10 changes: 5 additions & 5 deletions roles/supervised_install/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ prefix: /usr
sysconfdir: /etc
data_share: "{{ prefix }}/share/hassio"
config: "{{ sysconfdir }}/hassio.json"
HASSIO_CONFIG: "/etc/hassio.json"
HASSIO_CONFIG: "/etc/hassio.json" # noqa var-naming
machine: raspberrypi4-64
docker_repo: homeassistant
binary_docker: /usr/bin/docker
BINARY_DOCKER: "/usr/bin/docker"
BINARY_DOCKER: "/usr/bin/docker" # noqa var-naming
service_docker: "docker.service"
SERVICE_DOCKER: "docker.service"
HASSIO_APPARMOR_BINARY: "/usr/sbin/hassio-apparmor"
BINARY_HASSIO: "/usr/sbin/hassio-supervisor"
SERVICE_DOCKER: "docker.service" # noqa var-naming
HASSIO_APPARMOR_BINARY: "/usr/sbin/hassio-apparmor" # noqa var-naming
BINARY_HASSIO: "/usr/sbin/hassio-supervisor" # noqa var-naming
39 changes: 28 additions & 11 deletions roles/supervised_install/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,20 @@
file:
path: /etc/docker
state: directory
mode: '0755'
mode: "0755"

- name: Set up docker config file
copy:
src: "{{ temp_config_dir.path }}/docker_daemon.json"
dest: /etc/docker/daemon.json
mode: '0644'
mode: "0644"
notify:
- restart docker

- name: Fix kernel dmesg restriction
sysctl:
name: kernel.dmesg_restrict
value: '0'
value: "0"
sysctl_set: yes
state: present
reload: yes
Expand All @@ -80,7 +80,7 @@
copy:
src: "{{ networkmanager_file['source'] }}"
dest: "{{ networkmanager_file['target'] }}"
mode: '0644'
mode: "0644"
loop:
- source: "{{ temp_config_dir.path }}/NetworkManager.conf"
target: /etc/NetworkManager/NetworkManager.conf
Expand All @@ -96,24 +96,41 @@
copy:
src: "{{ temp_config_dir.path }}/interfaces"
dest: /etc/network/interfaces
mode: '0644'
mode: "0644"
notify:
- restart networkmanager

- name: Ensure all changed service are restarted
meta: flush_handlers

- name: Get download url for latest os-agent .deb release
shell: |
curl -s https://api.github.com/repos/home-assistant/os-agent/releases/latest \
| grep "browser_download_url.*{{ arch[ansible_architecture]['os_agent'] }}.deb" \
| cut -d : -f 2,3 \
| tr -d \"
register: os_agent_latest_url
failed_when: os_agent_latest_url.stdout is not search('os-agent_.*_linux_.*.deb')
changed_when: false
check_mode: no
args:
warn: false

- name: Install os-agent
apt:
deb: "{{ os_agent_latest_url.stdout|trim }}"

- name: Init folders
file:
path: "{{ data_share }}"
state: directory
mode: '0755'
mode: "0755"

- name: Write config
template:
src: hassio.j2
dest: "{{ config }}"
mode: '0644'
mode: "0644"

- name: Read version infos from web
uri:
Expand Down Expand Up @@ -179,7 +196,7 @@
template:
src: "{{ temp_config_dir.path }}/hassio-supervisor.service"
dest: "{{ sysconfdir }}/systemd/system/hassio-supervisor.service"
mode: '0644'
mode: "0644"
variable_start_string: "%%"
variable_end_string: "%%"

Expand All @@ -192,7 +209,7 @@
file:
path: "{{ data_share }}/apparmor"
state: directory
mode: '0755'
mode: "0755"

- name: Install AppArmor startup script
template:
Expand All @@ -206,15 +223,15 @@
template:
src: "{{ temp_config_dir.path }}/hassio-apparmor.service"
dest: "{{ sysconfdir }}/systemd/system/hassio-apparmor.service"
mode: '0644'
mode: "0644"
variable_start_string: "%%"
variable_end_string: "%%"

- name: Download AppArmor profile
get_url:
url: https://version.home-assistant.io/apparmor.txt
dest: "{{ data_share }}/apparmor/hassio-supervisor"
mode: '0644'
mode: "0644"

- name: Enable and start AppArmor service
service:
Expand Down
9 changes: 8 additions & 1 deletion roles/supervised_install/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,25 @@
arch:
"i386":
hassio_docker: "{{ docker_repo }}/i386-hassio-supervisor"
os_agent: "i386"
"i686":
hassio_docker: "{{ docker_repo }}/i386-hassio-supervisor"
os_agent: "none"
"x86_64":
hassio_docker: "{{ docker_repo }}/amd64-hassio-supervisor"
os_agent: "x86_64"
"arm":
hassio_docker: "{{ docker_repo }}/armhf-hassio-supervisor"
os_agent: "armv5"
"armv6l":
hassio_docker: "{{ docker_repo }}/armhf-hassio-supervisor"
os_agent: "none"
"armv7l":
hassio_docker: "{{ docker_repo }}/armv7-hassio-supervisor"
os_agent: "armv7"
"aarch64":
hassio_docker: "{{ docker_repo }}/aarch64-hassio-supervisor"
os_agent: "aarch64"

# for geerlingguy.docker
docker_apt_arch: arm64
docker_apt_arch: arm64

0 comments on commit ff4511c

Please sign in to comment.