在使用 Ansible 调试器时,可以使用 “bt” 命令 (backtrace 命令的简写) 查看当前堆栈的信息。此命令会显示所有执行的任务及其状态,包括它们是否成功、失败或被跳过。
要重新运行之前的某个任务,只需在堆栈中找到相应的任务并记录下其编号,然后使用 “restart” 命令重启该任务。例如:
进入调试器 ansible-playbook playbook.yml --step --start-at-task="Task name" --debugger
如果要重新运行第 2 个任务,使用以下命令 debugger (checkpoint: Fix something) > bt debugger (checkpoint: Fix something) > restart 2
另外,如果遇到问题可以使用 "debugger" 命令进入调试器交互界面进行排查。以下是一个示例:
运行此 playbook 后,您将看到以下输出:
TASK [Debug task] *********************************************************** ok: [webserver] => { "my_var": "Hello world" } ok: [webserver] => { "inventory_hostname": "webserver" }
您可以使用以下命令启动调试器:
ansible-playbook playbook.yml --start-at-task="Debug task" --step --debugger
在进入调试器后,您可以使用以下命令查看变量的值:
(debugger) p my_var Hello world
您还可以使用以下命令在调试器中更改变量的值:
(debugger) set_fact my_var="New value"
更多详细信息请参阅 Ansible 官方文档。