zoukankan      html  css  js  c++  java
  • crontab中运行ansible命令

    之前安装了ansible,只是想用ansible进行基本的点检,比如通过ansible执行uptime查看托管节点,然后把输入到ansible主机的文本文件中。手动执行是OK的,但放到crontab中就不行,错误输出如下:

    Trackback (most recent call last):

       File “/root/ansible/bin/ansible”,line 40,in <module>

         from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError

    ImportError: No module named ansible.errors

    image

    根据这报错,我总是感觉是ansible缺少显示这个错误的模块。

    很是奇怪,我想手动执行可以正常应该就没问题了,放到crontab里就出错,我CAO,难道ansible不支持,必须写playbook?太TMD吓人了,我是个思维简单的人,你让我去写playbook,我直接放弃了。去百度搜ansible crontab关键字,都是关于ansible的crontab模块的,这个我知道呀,不是我要的结果。

    后来就想变通的方法,在ansible主机上创建托管节点上的crontab,然后把结果输出到托管节点的文本中,然后用fetch命令取回到ansible主机。但是取回来格式太长,比如托管节点输出的文本路径/tmp/20181026.txt,假设托管节点的IP为10.10.10.10,fetch到ansible的/tmp下,就会是/tmp/10.10.10.10/tmp/20181026.txt,托管节点少还好说,托管节点多查看也麻烦。再者定时去fetch,同样要用到crontab,绕了一大圈死路一条啊。当然让我熟悉了下copy和fetch的区别。

    正好有红帽的账号(领导提醒,让我问问红帽),红帽给的思路就是,在crontab中执行date命令看能不能成功,这个当然是成功的。让我搜sosreport,结果不能搜,报错

    Trackback (most recent call last):

      File “/usr/sbin/sosreport”, line 20,in <module>

        from sos.sosreport import main

    ImportError: No module named sos.sosreport

    image

    竟然这么雷同

    红帽给的回复大概是以下几个原因:

    1.PATH变量设置的不对

    2.Python存在多个版本,Python版本不是系统自带的

    3.ansible不是正常安装的(忘记怎么说了)

    4.忘记了

    除了第一条,其他几条我的环境都满足

    我装ansible时,安装了python 2.7.8,系统自带的2.6

    ansible我是通过git clone从github上装的

    后来我再问红帽怎么继续排查时,红帽就说是python的问题,ansible没有订阅。大概就是哥只能帮你到这了,此case我关闭了。

    只好自己捉急了

    反正就是ansible python crontab module关键字,搜呗,这样会搜到不少相关的。至少比我一开始搜crontab ansible module有用,这个搜的都是ansible的crontab模块

    大概就是crontab调用系统自带的python

    而我的ansible用其他版本的python

    我就把要放到crontab里的ansible脚本中加入了export PYTHONPATH=/root/ansible/lib

    奇迹出现了,脚本正常运行,完美~~

  • 相关阅读:
    背水一战 Windows 10 (26)
    背水一战 Windows 10 (25)
    背水一战 Windows 10 (24)
    背水一战 Windows 10 (23)
    背水一战 Windows 10 (22)
    背水一战 Windows 10 (21)
    背水一战 Windows 10 (20)
    背水一战 Windows 10 (19)
    背水一战 Windows 10 (18)
    背水一战 Windows 10 (17)
  • 原文地址:https://www.cnblogs.com/cnmarkao/p/9859314.html
Copyright © 2011-2022 走看看