собственно ничего не мешает вам это сделать, нужно изменить описание ключей в
roles/authorized_keys/vars/main.yml примерно так:
ssh_users:
- name: pupkin
key: "{{ lookup('file', 'roles/authorized_keys/vars/pupkin.pub') }}"
servers:
- host1
- host2
state: present
- name: root
key: "{{ lookup('file', 'roles/authorized_keys/vars/guru.pub') }}"
servers:
- host1
- host2
state: present
- name: root
key: "{{ lookup('file', 'roles/authorized_keys/vars/user.pub') }}"
servers:
- host3
- host4
state: absent
и добавить условие в
roles/authorized_keys/tasks/main.yml:
- name: Add ssh key.
authorized_key: user="{{ item.name }}" key="{{ item.key }}" state="{{ item.state }}"
when: "inventory_hostname in item.servers"
with_items: "{{ ssh_users }}"
при этом само собой имена перечисленные в servers должны совпадать с тем что написано в inventory