Ansible 将不同的SSH密钥分发到一个资源清册中的不同主机

Ansible 将不同的SSH密钥分发到一个资源清册中的不同主机,ansible,ssh-keys,ansible-2.x,Ansible,Ssh Keys,Ansible 2.x,我有一个包含几个主机的清单。我想通过Ansible分发SSH密钥的公共部分。每个主机都有自己的密钥。到目前为止,我找到了可以做一般工作的方法。然而,我不知道如何分配不同的密钥 我的.ssh目录如下: ls .ssh hostA hostA.pub hostB hostB.pub hostC hostC.pub 对于一个主机,我可以写: - name: Set authorized key taken from file authorized_key: user: joeuser

我有一个包含几个主机的清单。我想通过Ansible分发SSH密钥的公共部分。每个主机都有自己的密钥。到目前为止,我找到了可以做一般工作的方法。然而,我不知道如何分配不同的密钥

我的
.ssh
目录如下:

ls .ssh
hostA hostA.pub
hostB hostB.pub
hostC hostC.pub
对于一个主机,我可以写:

- name: Set authorized key taken from file
  authorized_key:
    user: joeuser
    state: present
    key: "{{ lookup('file', '/home/joeuser/.ssh/hostA.pub') }}"

但是如何为不同的主机执行此操作?

如果每个键都是以主机名命名的,正如您的问题所建议的,您可以执行以下操作:

- name: Set authorized key taken from file
  authorized_key:
    user: joeuser
    state: present
    key: "{{ lookup('file', '/home/joeuser/.ssh/{}.pub'.format(inventory_hostname)) }}"