【Ansible】Ansible 連線主機顯示報錯的處理方案
一、在ansible安裝完畢後一般需要以SSH的方式連線到需要進行管理的目標主機,一開始遇到了如下問題:
192.168.15.4 | 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 } 192.168.15.55 | 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
原因分析:
沒有在ansible管理節點(即安裝ansible的節點)上新增目標節點(即需要管理的節點)的ssh認證資訊。
解決步驟:
1:管理節點生成SSH-KEY
#ssh-keygen
成功後在~/.ssh/路徑下將生成ssh金鑰檔案:id_rsa及id_rsa.pub
2:新增目標節點的SSH認證資訊
#ssh-copy-id root@目標節點IP
這裡root是在目標節點上登入的使用者,@符號後面接目標節點IP即可,之後會提示輸入目標節點root使用者密碼,輸入即可。
新增認證資訊後,目標節點主機的~/.ssh/目錄下將會出現一個authorized_keys檔案,裡面包含了ansible管理節點的公鑰資訊,可以檢查一下是否存在。
3:在確定目標主機的SSH認證資訊都已正確新增且目標主機的~/.ssh/目錄都存在管理節點的公鑰資訊後,再執行之前出錯的ansible ping指令:
#ansible -m ping all 192.168.15.4 | SUCCES對之前未連線的主機進行連結時報錯如下:S => { "changed": false, "ping": "pong" } 192.168.15.55 | SUCCESS => { "changed": false, "ping": "pong" }
二、對之前未連線的主機進行連結時報錯如下:
[root@puppet ~]# ansible webservers -m command -a 'ls ~' -k SSH password: 192.168.15.10 | FAILED | rc=0 >> 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.cfg檔案
vi /etc/ansible/ansible.cfg
找到以下行,讓host_key_checking=False這行生效
# uncomment this to disable SSH key host checking host_key_checking = Fals
三、ansible requires a json module, none found!
SSH password:192.168.15.123 | FAILED >> { "failed": true, "msg": "Error: ansible requires a json module, nonefound!", "parsed": false
解決步驟:
python版本過低,要不升級python要不就升級安裝python-simplejson。yum install -y python-simplejson
四、第一次系統初始化執行生成本機ansible使用者key時報錯
failed: [127.0.0.1] =>{"checksum": "f5f2f20fc0774be961fffb951a50023e31abe920","failed": true}msg: Aborting, target uses selinux but pythonbindings (libselinux-python) aren't installed!FATAL: all hosts have already failed –aborting
解放步驟:
yum install libselinux-python -y
五、使用命令報錯
·····Traceback (most recent call last): File "/usr/bin/ansible", line 197, in <module> (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
解決步驟:
yum install openssh-clients
原文地址
Ansible 連線主機顯示報錯的處理方案
(出處: 樂維_一站式運維監控管理平臺)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561206/viewspace-2285108/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下使用Ansible處理批量操作Linux
- ansible/ansible
- Ansible與Ansible部署
- Ansible批量更新遠端主機使用者密碼 (包括Ansible批量做ssh互信)密碼
- 離線安裝ansible
- Ansible 學習筆記 - 定位主機和組的模式筆記模式
- Ansible6--------ansible中的角色使用
- 如何使用ANSIBLE在遠端主機上建立RabbitMQMQ
- ansible
- 【Ansible】ansible任務失敗控制
- imac可以當顯示器用嗎2022 imac可以連線windows主機當顯示器嗎MacWindows
- ansible高階應用ansible-vault
- 【Ansible】ansible容器學習環境搭建
- vsphere報錯: 連線到虛擬機器控制檯失敗並顯示錯誤:VMRC 控制檯的連線已斷開。正在嘗試重新連線虛擬機
- rpm方式離線安裝ansible
- ansible register
- Ansible教程
- ansible template
- Ansible Playbook
- ansible中的hostvars
- Linux架構31 ansible roles角色, ansible galaxyLinux架構
- pymysql 處理 連線超時最好的解決方案MySql
- ansible部署配置
- ansible jenkins warJenkins
- Ansible——模組
- ansible模組
- ansible執行playbook報Host Key checking
- Ansible的原理與配置
- Could not find or access '/etc/ansible/bin/cfssljson /etc/ansible/bin/cfsslJSON
- 遠端連線錯誤程式碼及處理
- Ansible 持續整合Anolis、Ubuntu基線配置Ubuntu
- 【MySQL】Novicat 連線mysql 報錯1251的問題處理,Novicat12 破解方法MySql
- win10圖示錯誤顯示怎麼改回來_win10電腦圖示顯示錯誤處理方法Win10
- 開啟網頁顯示資料庫連線出錯網頁資料庫
- Ansible awx 快速上手
- 使用Ansible管理WindowsWindows
- Ansible 學習指北
- yum安裝ansible