Ansible automation to provision Ubuntu VMs with Hermes Agent from NousResearch.
- Creates a dedicated
hermesuser with passwordless sudo - Adds your SSH public key to the user's
authorized_keys - Hardens SSH: disables password auth and root login, enforces pubkey-only
- Installs Hermes Agent via the official install script
- Ansible installed on your local machine
- A target Ubuntu VM reachable over SSH
- An SSH key already authorized on the VM for the bootstrap user (e.g.
ubuntu)
- Add your VM to the inventory:
# inventory/hosts.yml
all:
children:
hermes_servers:
hosts:
hermes-vm:
ansible_host: 192.168.1.100
ansible_user: ubuntu
vars:
ansible_python_interpreter: /usr/bin/python3- Run the playbook:
ansible-playbook -i inventory/hosts.yml playbooks/hermes.ymlVariables are defined in roles/hermes/defaults/main.yml. Override them in your inventory or with -e at runtime.
| Variable | Default | Purpose |
|---|---|---|
hermes_user |
hermes |
User created on the VM |
hermes_user_shell |
/bin/bash |
Login shell |
hermes_user_groups |
[sudo] |
Supplemental groups |
hermes_ssh_public_keys |
keys from this machine's authorized_keys |
Keys added to authorized_keys |
hermes_install_script |
https://hermes-agent.nousresearch.com/install.sh |
Installer URL |
- Installed via official one-liner; handles Python 3.11, Node.js 22, uv, ripgrep, ffmpeg
- Binary lands at
~/.local/bin/hermes - Post-install: run
hermes modelto select an LLM provider,hermes gateway setupfor messaging - Data dir:
~/.hermes/(override withHERMES_HOME) - Docs: https://hermes-agent.nousresearch.com/docs