/
/
This Ansible role installs Home Assistant Supervised on Debian 12+ systems with all required dependencies, networking configuration, and proper validation.
Critical BIOS settings must be configured before installation:
Enable all available CPU virtualization features:
âï¸ Virtualization Technology: ENABLED
âï¸ VT-d/AMD IOMMU: ENABLED
âï¸ UEFI Boot: ENABLED
âï¸ Secure Boot: DISABLED
âï¸ Auto Power On: ENABLED
âï¸ PCIe ASPM: DISABLED
â ï¸ Important: BIOS menu names vary by manufacturer (ASUS, MSI, HP, etc.). Look for similar terms if exact names don't match.
homeassistant_install_supervisor: true # Install Home Assistant Supervised
homeassistant_configure_network: true # Configure networking (NetworkManager)
homeassistant_install_docker: true # Install Docker CE
homeassistant_install_os_agent: true # Install Home Assistant OS-Agent
homeassistant_machine_type: qemux86-64 # Machine type for HA installation
homeassistant_data_share: /usr/share/hassio # Data directory location
Supported Machine Types:
qemux86-64
- Generic x86-64 (recommended for most systems)qemuarm-64
- Generic ARM64generic-x86-64
- Generic x86-64 alternativehomeassistant_os_agent_version: latest # Use 'latest' or specific version
homeassistant_os_agent_arch: amd64 # Auto-detected based on system
homeassistant_docker_install_method: convenience_script # Installation method
Installation Methods:
convenience_script
- Use Docker's get.docker.com script (default)apt_repository
- Use official Docker APT repositoryhomeassistant_manage_networking: true # Enable network configuration
homeassistant_disable_ifupdown: true # Disable traditional networking
homeassistant_enable_systemd_resolved: true # Enable systemd-resolved
homeassistant_validate_installation: true # Run post-install validation
homeassistant_cleanup_downloads: true # Remove downloaded packages
homeassistant_service_start_timeout: 300 # Service startup timeout (seconds)
The role automatically installs these system packages:
network-manager
- Network managementsystemd-resolved
- DNS resolutioncurl
- HTTP client for downloadslsb-release
- Distribution informationudisks2
- Disk managementapparmor
- Security profilesjq
- JSON processingwget
- File downloadsca-certificates
- SSL certificatesgnupg
- Package signing---
- hosts: homeassistant_servers
become: true
roles:
- role: homeassistant
---
- hosts: homeassistant_servers
become: true
roles:
- role: homeassistant
vars:
homeassistant_machine_type: generic-x86-64
homeassistant_os_agent_version: "1.6.0"
homeassistant_docker_install_method: apt_repository
homeassistant_data_share: /opt/homeassistant
---
- hosts: homeassistant_servers
become: true
roles:
- role: homeassistant
vars:
homeassistant_configure_network: false
homeassistant_manage_networking: false
Use tags to run specific parts of the installation:
# Install only prerequisites
ansible-playbook -t homeassistant,prerequisites site.yml
# Configure networking only
ansible-playbook -t homeassistant,network site.yml
# Install Docker only
ansible-playbook -t homeassistant,docker site.yml
# Install OS-Agent only
ansible-playbook -t homeassistant,os-agent site.yml
# Install Supervisor only
ansible-playbook -t homeassistant,supervisor site.yml
# Run validation only
ansible-playbook -t homeassistant,validation site.yml
After successful installation:
http://your-server-ip:8123
journalctl -u hassio-supervisor -f
systemctl status hassio-supervisor
# Check all Home Assistant related services
systemctl status hassio-supervisor docker NetworkManager os-agent
# View Home Assistant logs
journalctl -u hassio-supervisor -f
# Check OS-Agent D-Bus interface
busctl introspect io.hass.os /io/hass/os
# Verify Docker containers
docker ps
# Check Home Assistant CLI
ha help
Web interface not accessible:
ufw allow 8123/tcp
systemctl status hassio-supervisor
Networking issues after installation:
systemctl status NetworkManager
systemd-resolve --status
OS-Agent D-Bus errors:
systemctl restart os-agent
busctl list | grep hass
Docker permission issues:
usermod -aG docker $USER
journalctl -u hassio-supervisor
journalctl -u os-agent
journalctl -u docker
journalctl -u NetworkManager
Architecture | Machine Type | OS-Agent Binary | Supported |
---|---|---|---|
x86_64 (Intel/AMD) | qemux86-64 | amd64 | â |
ARM64 (64-bit ARM) | qemuarm-64 | arm64 | â |
ARM32 (32-bit ARM) | - | arm | â (Not recommended) |
MIT