ImportError: No module named syslog, ansible, edison

ImportError: No module named syslog, ansible, edison

我正在编写一个脚本,通过 ansible 将代码重新部署到 intel edison 上。当 运行 以下命令出现错误时。如果可能的话,我想知道如何在本地找到导致此问题的文件。我认为在服务器上引发错误的文件“/home/root/.ansible/tmp/ansible-tmp-1444631867.66-245111051532005/setup”可能是从本地存储库中的文件生成的。

但是,我似乎无法在本地的ansible中找到这个设置文件,ansible在抛出错误后从服务器(edison)中删除了这个文件。

$ ansible-playbook -i inventory.yml provision_edison.yml

failed: [192.168.1.196] => {"failed": true, "parsed": false}
Traceback (most recent call last):
  File "/home/root/.ansible/tmp/ansible-tmp-1444631867.66-245111051532005/setup", line 196, in <module>
import syslog
ImportError: No module named syslog
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

我的库存文件inventory.yml

[edisons]
192.168.1.196

我的 provision_edison.yml 文件

 ---
 - hosts: edisons
   remote_user: root
   tasks:
     - name: "test if stuff is working"
       shell: uname -a

我将此识别为服务器上发生的 python 导入错误。我试着查看服务器抛出的行号 196 是否对应于我本地的文件,但没有成功。

 root@edison-01:/usr/bin# ./python
 Python 2.7.3 (default, Aug 15 2014, 22:34:09) 
 [GCC 4.8.2] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import syslog
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ImportError: No module named syslog

关于您的 Python 环境的某些东西必须关闭。 syslog 至少从 2.6 开始就是标准库的一部分。这是基于 unix 的机器吗?这是 Python 的全新安装吗?我会检查您的 Python 路径之类的东西,以及看看您是否可以在那个盒子上导入其他标准库。

许多一次性 Python 构建不包括 syslog 库,即使它在技术上是核心的一部分。此问题应通过以下提交在 Ansible 2.0 中修复:https://github.com/ansible/ansible/commit/c57200925f7fc3c77da9a0b671ef7328cad15d8d