簡體   English   中英

如何調試 Python 中的自定義 Ansible 模塊?

[英]How to debug custom Ansible module in Python?

我們使用 Ansible 劇本調用在 AWX/Centos 上運行的自定義 Python 模塊。 我需要對模塊進行一些更改,並希望在我的開發環境 windows 中本地運行它們。 我希望能夠單步執行代碼而不是遠程運行(不過 WSL 很好)。

我不能直接在 Windows 中運行模塊,因為 pip 安裝 Ansible 和 Z62AD1C2A46C5298F3E2C95D3C 都認為安裝失敗)

我能夠在 WSL 中使用 AnsibleRunner 啟動我的劇本,但它掛起(我認為它試圖通過 ssh 連接到 localhost)。 即使它運行劇本/模塊,我懷疑它不會在我的斷點處停止。 現在我在wsl中直接運行我的模塊(ex module.run_module()),我可以進入它,但在調用以下命令后它永遠不會返回:

module = AnsibleModule(
    argument_spec=module_args,
    supports_check_mode=True
)

有什么想法為什么會停在這里? 不會生成日志或錯誤。 還有其他建議嗎? 我希望能夠進行代碼更改並輕松地測試/單步執行它們。 我已經使用其他技術進行了遠程調試,但它很糟糕,所以我想避免它。

我想通了,它被阻塞了,因為 AnsibleModule 試圖通過從標准輸入讀取來填充 _ANSIBLE_ARGS。 通過檢查代碼,我意識到如果第一個 arg 是有效文件,它將使用文件。

因此,我現在可以通過 WSL/Ubuntu 單步執行從 Windows 上的 VSCode 中運行的測試程序調用的自定義模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM