【发布时间】:2015-06-07 15:40:33
【问题描述】:
我正在学习 Puppet,我对整个范例的最大挫败感是我用来构建功能性 Puppet 代码的尝试/运行/修复开发过程。我的背景是 Java,我很自然地习惯于调试我的代码以查找错误,而不是仅仅运行程序来查看它在哪里炸弹,从而使开发速度更快,但我似乎找不到使用 Puppet 和 Eclipse 的方法.我知道为 Puppet 编写调试器需要一些创造力,但我认为这是社区可以真正受益的东西。
我已经编写了调试器并且知道 Eclipse SDK,但不幸的是它并没有清晰地映射到 Puppet 架构,这有点尴尬,因为它的运行时堆栈和执行流程不是按自然顺序发生的,而且事实上运行时需要目标机器来应用更改。
我很好奇社区是否已经完成了任何开发工作,试图创建某种可以单步执行代码的调试器。为了写这篇文章,我认为使用新的 Puppet 调试配置类型扩展 Eclipse 是有意义的,您可以在其中指定目标沙箱主机来测试您的代码以及要调试的工作区中的 puppet 项目(利用现有的 Gepetto 工具)。然后,当您启动一个新的 Puppet 调试会话时,Eclipse 可以连接到远程主机,使用一些额外的调试参数执行 puppet apply,并以某种方式从运行时提供有关当前正在执行的代码行的反馈。
这仍然可能很尴尬,但可以让 puppet 开发人员快速看到类似 oh duh 之类的东西。我无法创建这个目录,因为父路径不存在,等等……为什么这个 if 语句不会像这样我计划了,哦,我在这里看到 Puppet 在单引号或双引号上不是很清楚,或者现在我明白为什么这会失败,因为这个类没有首先执行等等等等。
相反,我们得到的只是代理控制台上的一个非常丑陋的输出,是的,它可以让我们深入了解错误,但不能将异常清晰地映射到我们的代码,在我看来,这显示了 Puppet 的潜在痛苦和弱点,你至少可以给我一个堆栈跟踪和行号,以便我知道去哪里看?不,谢谢。
不要误会我的意思,我喜欢 Puppet 如何让我在整个工作周内看起来非常高效,而我所做的只是在我的经理尚未弄清楚但我认为 Puppet 的新机器上运行 Puppet真正有用的是,缺乏调试支持是需要解决的问题。
其他人有这种痛苦吗? - 邓肯·克雷布斯
【问题讨论】:
标签: eclipse debugging puppet remote-debugging