2015-02-07 41 views
10

錯誤而執行ansible平模塊錯誤:ansible需要一個JSON模塊,沒有發現

bash ~ ansible webservers -i inventory -m ping -k -u root -vvvv 
SSH password: 
<~> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO ~ 
<my-lnx> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO my-lnx 
~ | FAILED => FAILED: [Errno 8] nodename nor servname provided, or not known 
<my-lnx> REMOTE_MODULE ping 
<my-lnx> EXEC /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582 && echo $HOME/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582' 
<my-lnx> PUT /var/folders/8n/fftvnbbs51q834y16vfvb1q00000gn/T/tmpP6zwZj TO /root/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582/ping 
<my-lnx> EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /root/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582/ping; rm -rf /root/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582/ >/dev/null 2>&1' 
my-lnx | FAILED >> { 
    "failed": true, 
    "msg": "Error: ansible requires a json module, none found!", 
    "parsed": false 
} 

這是我的庫存文件

bash ~ cat inventory 
[webservers] 
my-lnx ansible_ssh_host=my-lnx ansible_ssh_port=22 

我已經安裝了simplejosn模塊也是在客戶端以及遠程機器

bash ~ pip list | grep json 
simple-json (1.1) 
simplejson (3.6.5) 
+0

可能的複製[Ansible + 10.11.6(http://stackoverflow.com/questions/3879 9807/ansible-10-11-6) – zabeltech 2016-11-19 10:20:07

回答

15

我想你需要安裝python-simplejson模塊。

嘗試先運行此命令,然後你想要的命令:

ansible webservers -i inventory -m raw -a "sudo yum install -y python-simplejson" -k -u root -vvvv 

我假設它的舊的Red Hat/CentOS系統。

9

如果你不想或者不能在遠程服務器上安裝python-simplejson模塊,你可以簡單地請求原始輸出,而不是:

> ansible webservers -i inventory -m ping -m raw 

或者像我一樣,把它添加到我的〜 /.bash_profile

alias ansible="ansible -m raw" 

# And then simply running: 
> ansible webservers -i inventory -m ping 
1

in centos 5. *版本沒有python-simple json可用於repo下載和安裝。你可以簡單的使用下面提到的方法。

確保源和目標都應該被訪問密碼較少,並且從源到目標也較少密碼。

使用ssh-凱基-t RSA生成密鑰 的ssh-copy-id命令的用戶@ host_ip

「--- - 主機:(ansible主機) 變成:是 REMOTE_USER:根 gather_facts:假 任務: - 名稱:複製複製臨時工 殼:SSH(源)& &的rsync -parv /根/溫度/ * @根(目的地):/根/溫度/或」