linux Ansible安裝完畢後,測試報連接主機顯示報錯

一、問題描述

  1. 當安裝完畢Ansible之後,一般需要以SSH的方式連接到需要進行管理的目標主機進行測試。但是報了以下問題:
[root@inmshgis24 ~]# ansible 10.130.0.33 -m ping 
10.130.0.33 | UNREACHABLE! => {

"changed": false, 
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", 
"unreachable": true

}

二、 原因分析

  1. 當我們將10.130.0.33主機作爲管理主機,但在管理主機上並未添加目標節點(即需要管理的節點)的ssh認證信息。

三、解決步驟

  1. 管理主機節點生成SSH-KEY
[root@inmshgis24 ~]# ssh-keygen

注意:檢查~.ssh/目錄下是否出現生成的ssh密鑰文件:id_rsa及id_rsa.pub

  1. 添加目標主機節點的SSH認證信息
[root@inmshgis24 ~]# ssh-copy-id root@目標節點IP

說明:
(1)root:是在目標節點上登錄的用戶;
(2)@:符號後面接目標節點IP即可;
(3)提示:輸入目標節點root用戶密碼,輸入即可;
(4)添加認證信息後,目標節點主機的~/.ssh/目錄下將會出現一個authorized_keys文件,裏面包含了ansible管理主機節點的公鑰信息,可以檢查一下是否存在。

  1. 確定目標主機節點的SSH認證信息都已正確添加
  2. 目標主機節點的~/.ssh/目錄下存在管理節點的公鑰信息後,再執行之前出錯的ansible ping指令:
[root@inmshgis24 ~]# vi/etc/ansible/hosts
[test]
10.130.0.33
[root@inmshgis24 ~]# ansible 10.130.0.33 -m ping  

在這裏插入圖片描述
補充:

  1. 期間報了這個錯誤:
    Traceback (most recent call last): File “/usr/bin/ansible”, line 197, in (runner, results) = cli.run(options, args) File “/usr/bin/ansible”, line 163, in run extra_vars=extra_vars, File “/usr/lib/python2.6/site-packages/ansible/runner/init.py”, line 233, in init cmd = subprocess.Popen([‘ssh’,’-o’,‘ControlPersist’], stdout=subprocess.PIPE, stderr=subprocess.PIPE) File “/usr/lib64/python2.6/subprocess.py”, line 639, in init errread, errwrite) File “/usr/lib64/python2.6/subprocess.py”, line 1228, in _execute_child raise child_exceptionOSError: [Errno 2] No such file or directory

  2. 解決如下:

[root@inmshgis24 ~]# yum install openssh-clients 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章