gpt4 book ai didi

ansible - Ansible 可以只部署一次询问密码的公共(public) SSH key 吗?

转载 作者:行者123 更新时间:2023-12-04 01:58:32 30 4
gpt4 key购买 nike

我想知道如何使用 Ansible 将我的 SSH 公钥复制到许多主机。

第一次尝试:

ansible all -i inventory -m local_action -a "ssh-copy-id {{ inventory_hostname }}" --ask-pass

但我有错误 The module local_action was not found in configured module paths .

使用剧本的第二次尝试:
- hosts: all
become: no
tasks:
- local_action: command ssh-copy-id {{ inventory_hostname }}

最后,我为每个托管主机输入了密码:
ansible all -i inventory --list-hosts | while read h ; do ssh-copy-id "$h" ; done

如何在将公共(public) SSH key 部署到多个主机时只填写一次密码?



编辑:我已使用 Konstantin Suvorov's answer 中的以下剧本成功地将我的 SSH 公钥复制到多个远程主机。 .
- hosts: all
tasks:
- authorized_key:
key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

字段 user根据 documentation 应该是强制性的但它似乎没有工作。因此,当与此命令行一起使用时,上述通用 playbook 可用于任何用户:
ansible-playbook -i inventory authorized_key.yml -u "$USER" -k

最佳答案

为什么不使用 authorized_key模块?

- hosts: all
tasks:
- authorized_key:
user: remote_user_name
state: present
key: "{{ lookup('file', '/local/path/.ssh/id_rsa.pub') }}"

并使用 -u remote_user_name -k 运行剧本

关于ansible - Ansible 可以只部署一次询问密码的公共(public) SSH key 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44708068/

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