gpt4 book ai didi

linux - 将 rsa token 复制到组内的远程主机

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:49 25 4
gpt4 key购买 nike

我正在尝试创建 rsa 并复制到其他远程机器,以便 test[0] 能够通过 ssh 进入 test[1] 和 test[2]

我的库存文件

[ test ]
10.100.0.1
10.100.0.2
10.100.0.3

我想以 root 用户身份在 10.100.0.1 上创建一个 rsa token ,并将公钥复制到/home/centos/.ssh/authorized_keys 以 root 用户身份复制到 10.100.0.2 和 10.100.0.3。

如何使用 ansible 实现这一点。所有 3 个实例都是 AWS -ec2 centos 7 机器。我希望代码是动态的而不是硬编码的 ips。

我无法继续进行。

- name: Generate /etc/ssh RSA host key
command: ssh-keygen -q -t rsa -f /root/.ssh/id_rsa -N ""
args:
creates: /root/.ssh/vid_rsa
run_once: True

最佳答案

理想情况下,您希望将“主”实例与其余实例分开,因为并非所有的[test] 机器都是相似的,但值得庆幸的是,可以使用数组表示法来指示第一台机器。

然后,您只想将公钥作为“事实”注入(inject)到 test 的第一个成员中,然后在 test 的所有成员中检索该事实>.

- hosts: test[0]
tasks:
- name: generate ssh key
command: ssh-keygen etc etc
- name: grab the public key
command: cat /root/.ssh/id_rsa.pub
register: the_pub_key

- hosts: test
tasks:
- name: install the public key
authorized_key:
key: '{{ hostvars[test0].the_pub_key }}'
user: root # or whatever
vars:
test0: '{{ groups.test[0] }}'

如果您希望省略 test[0] 本身的 authorized_key,您可以使用适当的 when: 子句来跳过它。

研究来源 kubespray将出现像这样的各种技巧。

关于linux - 将 rsa token 复制到组内的远程主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55594698/

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