背景:

刚装完系统后,需要使用ansible统一管理服务器,但是必须的上传ssh 公钥到被管理系统,如何解决呢,请看以下步骤。

一、安装sshpass

dnf install epel-release
dnf install sshpass

二、编写playbook 文件ssh-key.yml

---
  - hosts: k8s
    remote_user: root
    vars:
      ansible_ssh_user: "root"
      ansible_ssh_pass: "123456"
    tasks:
      - name: Auth
        authorized_key:
          user: root
          key: "{{ lookup('file','~/.ssh/id_rsa.pub') }}"

三、在ansible节点生成公钥,一路回车

ssh-keygen

四、执行ansible-playbook ssh-key.yml 命令,返回结果如下:

fatal: [192.168.100.51]: FAILED! => {"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."}
fatal: [192.168.100.53]: FAILED! => {"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."}

因为ansible默认已开启密钥检查,所有出现此问题,解决办法如下:

在ansible.cfg 文件中添加 host_key_checking = False

五、重新执行ansible-playbook ssh-key.yml ,结果如下:


PLAY [k8s] ***********************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************************
ok: [192.168.100.52]
ok: [192.168.100.51]
ok: [192.168.100.53]

TASK [Auth] **********************************************************************************************************************************************************************************************
ok: [192.168.100.52]
changed: [192.168.100.51]
changed: [192.168.100.53]

PLAY RECAP ***********************************************************************************************************************************************************************************************
192.168.100.51             : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.100.52             : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.100.53             : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐