我有一个包含几个主机的清单。我想通过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') }}"
但是如何为不同的主机执行此操作?
答案 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)) }}"