gpt4 book ai didi

ssh - 使用 ansible 添加多个 SSH key

转载 作者:行者123 更新时间:2023-12-04 10:37:40 25 4
gpt4 key购买 nike

我编写了一个 ansible 脚本来从远程服务器中删除 SSH key :

---
- name: "Add keys to the authorized_keys of the user ubuntu"
user: ubuntu
hosts: www
tasks:
- name: "Remove key #1"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_file:
- id_rsa_number_one.pub
- name: "Remove key #2"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_file:
- id_rsa_number_two.pub
...

将每个文件添加为不同的任务是荒谬的,所以我尝试使用 with_fileglob :

  - name: "Remove all keys at once"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_fileglob:
- /Users/adamatan/ansible/id_rsa*.pub

但这失败了,如下所示:

failed: [www.example.com] => (item=/Users/adamatan/ansible/id_rsa_one.pub) => {"failed": true, "item": "/Users/adamatan/ansible/id_rsa_one.pub"} msg: invalid key specified: /Users/adamatan/ansible/id_rsa_one.pub



使用唯一任务成功删除了相同的 key 文件,但当它是 fileglob 的一部分时会失败.

如何使用 ansible 批量添加或删除 SSH key ?

最佳答案

我相信您只能使用 with_fileglob 获取文件名, 但是 with_file检索文件的内容。并且 authorized_key 模块需要实际的 key 。

所以你仍然应该使用 with_fileglob 循环。 ,但不要将文件名发送到“key=”参数,您应该使用 file lookup plugin )。

- name: "Remove all keys at once"
authorized_key: user=ubuntu key="{{ lookup('file', item) }}" state=absent
with_fileglob:
- /Users/adamatan/ansible/id_rsa*.pub

关于ssh - 使用 ansible 添加多个 SSH key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26203345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com