在一个清单中将不同的SSH密钥分配给不同的主机

时间:2019-04-06 16:23:29

标签: ansible ssh-keys ansible-2.x

我有一个包含几个主机的清单。我想通过Ansible分发SSH密钥的公共部分。每个主机都有一个自己的密钥。到目前为止,我发现module authorized_keys可以完成一般工作。但是我无法弄清楚如何分配不同的密钥。

我的.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') }}"

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

1 个答案:

答案 0 :(得分:1)

如果每个密钥都以您的问题提示的主机名命名,则可以执行以下操作:

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