Ansible:如何将公钥从节点复制到本地?
如何将SSH公钥从每个节点复制到ansible服务器 换句话说,make:ssh copy iduser@ansible_server? 我想让它自动使用playbook文件 我提出了一些解决办法:Ansible:如何将公钥从节点复制到本地?,ansible,Ansible,如何将SSH公钥从每个节点复制到ansible服务器 换句话说,make:ssh copy iduser@ansible_server? 我想让它自动使用playbook文件 我提出了一些解决办法: - name: ssh-copy-id hosts: builder become: true tasks: - name: generate ssh keys on node user: name: user generate_ssh
- name: ssh-copy-id
hosts: builder
become: true
tasks:
- name: generate ssh keys on node
user:
name: user
generate_ssh_key: yes
ssh_key_bits: 2048
ssh_key_file: .ssh/id_rsa
- name: get content of public key (node)
shell: cat "/home/user/.ssh/id_rsa.pub"
changed_when: false
register: public_key
- name: append public key from node to local authorized_keys
lineinfile:
line: "{{ public_key.stdout }}"
insertafter: EOF
dest: /local
delegate_to: 127.0.0.1
如果在同一剧本中生成ssh密钥,只需捕获结果并使用它:
- name: generate ssh keys on node
user:
name: user
generate_ssh_key: yes
ssh_key_bits: 2048
ssh_key_file: .ssh/id_rsa
register: user_res
- name: append public key from node to local authorized_keys
lineinfile:
line: "{{ user_res.ssh_public_key }}"
insertafter: EOF
dest: /local
delegate_to: 127.0.0.1
首先。但老实说,你的任务有点奇怪。为什么需要远程节点的公钥?为什么要这样做?要使用节点的rsync(将日志复制到服务器),但它不起作用,因为ssh copy id也会生成文件:known_hostsy您可以始终添加
ssh keyscan
任务。