【问题标题】:Ansible silently skipping tasks/debugAnsible 静默跳过任务/调试
【发布时间】:2017-10-04 03:34:29
【问题描述】:

我不是 Ansible 新手,但我开始觉得自己是 Ansible 新手。我已经编写了一个自定义模块,这是我以前做过的事情,并且正在尝试在我正在为常规 Ansible 使用之外的应用程序开发的一组剧本中使用它(重要一点)。

当我运行包含使用自定义模块的任务的剧本时,该任务会被静默地“忽略”。意思是,根本没有输出,它们没有被“跳过”,它们不会导致错误,什么都没有。我已经打开了详细信息,可以看到 Ansible 从同一个文件中的任务处理其他模块,但不是我的新模块,就像它甚至不在文件中一样(是的,我已经验证我正在修改正确的通过更改文件中的其他任务并观察我的更改来创建文件)。

为了检查我的理智,我在文件中添加了“调试”任务,它们也被默默地忽略,就像它们不在文件中一样。

我很确定模块正在库文件夹中“被发现”,如果我将任务中的模块名称更改为与真实模块名称不同,我会收到错误消息。

我很确定该模块工作正常,它又小又简单,我已经使用 Ansible 的测试模块对其进行了测试;我已经成功地写了其他人喜欢它。它只是没有被使用。

完全没有输出(好坏),包括无法执行调试任务,导致调试困难,

我在想,几年前我在我常用的 ansible.cfg 文件中设置了一些我缺少的配置(在此上下文中未使用)。我看过了,但没有什么明显的弹出。

关于如何进行的任何建议?

为什么调试任务会被静默忽略(是的,我使用了详细设置)?

Ansible 版本 2.2.2.0-rc1 6791061

谢谢, 丹

【问题讨论】:

  • 没有任何代码很难帮助你...你可以通过--list-tasks检查你的剧本,并确保你不会通过设置标签来跳过你的任务。

标签: ansible task silent


【解决方案1】:

找到了。一旦我弄清楚了就很明显,但当一个人盯着“应该可以工作”的东西时就不那么明显了。正如 Konstantin 建议的那样,该任务被标签设置过滤掉了。发现它变得更加困难,因为剧本是通过两级间接调用(Eclipse 启动配置->Shell 脚本),所以它不是直接显而易见的。其他标签(有效)有标签,我添加的新标签是为了尝试新模块,但与调试任务一样,没有标签,这是清晰可见的,但仍然不是很明显。一切都解释了,但问题的症状起初令人费解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多