使用来自主机的文件作为 lineinfile 模块的输入

使用来自主机的文件作为 lineinfile 模块的输入

我目前正在使用 ansible 设置一个系统,并希望尽可能地实现其自动化。

因此,我在我的 ansible 机器上创建公钥并将其复制到主机,以便我可以从外部尽可能地控制主机。

现在我需要通过公钥设置主机之间的连接。我正在使用模块lineinfile来确保密钥存在于authorized_keysknown_hosts文件中。有没有办法读取文件的内容(在运行 ansible 的机器上)并将其用作模块的输入lineinfile

答案1

正如 Mxx 在评论中指出的那样,lookup这就是答案。此外,我不建议使用lineinfile添加 authorized_keys。已经有一个专门用于此的 Ansible 模块,它不太可能给你带来麻烦。这是一个示例游戏。它将从本地公钥中抓取,并正确确保它对于目标用户存在。

tasks: - name: Install SSH authorized key authorized_key: > user=root key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}" state=present

相关内容