2015-05-04 67 views
2

第一天帶着可靠的,我正在按照入門文檔。ansible 101:不能ping通沒有sudo的主機

http://docs.ansible.com/intro_getting_started.html

我創作的「在/ etc/ansible /主機的文件中有一臺主機。

命令'sudo ansible all -m ping -vvvv'正常工作。

當我把我須藤得到...

02.my_first_host.com | FAILED => SSH錯誤:權限被拒絕(publickey,gssapi-with-mic,密碼)。 連接到xx.xx.xx.xx時:22 使用-vvvv重新運行命令有時會很有用,它會輸出SSH調試輸出以幫助診斷問題。

這是/ etc/ansible/hosts文件的權限問題嗎?我將/ etc /所有權以遞歸方式更改爲我的用戶,但沒有運氣。

Thx提前!

+0

你能直接ssh到遠程主機的W/O須藤?你在'.ssh/config'中有沒有特殊的配置?您是否通過私鑰或密碼使用身份驗證? – udondan

+0

是的,私人密鑰cPanel CentOS系統到根或任何其他用戶acct我添加了我的密鑰。沒有〜/ .ssh/config文件。只有id_rsa,id_rsa.pub和known_hosts – sixst

+0

查看-vvvv標誌的輸出。 sudo正在爲用戶建立連接:root,而沒有sudo它只是在嘗試我的用戶。實際上我的服務器上沒有與我的Mac上的用戶相匹配的用戶。 我試過'ansible all -m ping -vvvv -u root'但是得到了'FAILED => SSH錯誤:ssh_exchange_identification:連接關閉時連接' – sixst

回答

2

您可以通過behavioral parameters在清單文件中定義用戶。但是,像你一樣,-u應該具有相同的結果。

可能Ansible沒有使用您的私鑰,因爲您沒有.ssh/config。 (瘋狂猜測!)您可以明確地將路徑傳遞給您的密鑰--private-key或再次將其設置爲庫存或組/主變量中的行爲參數。

通過盤點:

[all:vars] 
user=root 
ansible_ssh_private_key_file=/path/to/file 

通過group_vars,保存爲group_vars/all相對於你的劇本:

... 

user: root 
ansible_ssh_private_key_file: /path/to/file 

--- 
+1

的遠程主機連接看起來像是這樣做的.... thx! 'ansible all -m ping -vvvv --private-key .ssh/id_rsa -u root' – sixst

+0

再次,這對我來說是可行的101,但我想發佈以防萬一它幫助別人。我沒有一個的〜/ .ssh/config文件,所以我增加了一個具有以下 '主機01 主機名01.mydomain.com 端口22 用戶root' 然後我更新的/ etc/ansible與主機'01'。我回去了,無需指定私鑰的路徑,也無需指定root用戶即可成功執行ping操作。 'ansible all -m ping' 自己工作。 – sixst

相關問題