Было обсуждение, но кто-то удалил, там предложили решение:
Melkij оставил комментарий к ответу на вопрос Ansible и `uname -r` или $(uname -r) отрабатывает на локальном хосте. Почему?
емнип, модуль apt вообще не вызывает bash и подстановка через обратные кавычки работать не будет. Можно дёрнуть через raw команду (command тоже вряд ли сработает, хотя можно попробовать). Можно сделать нормальный плейбук: глянуть в facts, может версия ядра уже собирается и так. Через command дёрнуть uname и register в переменную. Затем дёрнуть apt с конкатенацией имени пакета с этой переменной.
В итоге получилось сделать так:
ansible a-install -m raw -s -a "apt install -y linux-headers-$(uname\ -r)"