【.com快译】Ansible是个排一种功能很强大的工具,可以跨服务器、查技云、个排网络和容器等更多系统自动化管理各种平台。查技
您常常只需重用现有的个排角色和集合,就可以自动执行想要完成的查技操作。还有许多模块可供选择,个排可以在剧本中使用它们。查技
但是个排当您开始开发和测试更复杂的剧本时,最终需要一些故障排查方法。查技比如检查Ansible任务流、个排确认变量的查技数据类型,甚至在某个特定点暂停以检查它们的个排值。
本文讨论的查技一些技巧仅适用于通过命令行执行Ansible。其他技巧从Ansible Tower运行时也适用。个排
如果您需要分析为什么某内容在剧本中没有按预期运行,最好先检查您的Ansible环境。
您在运行Ansible二进制文件和Python的云南idc服务商哪些版本和路径?
如果您添加了剧本所需的操作系统包或Python模块,Ansible解释器会“看到”它们吗?
可以通过多种不同的方式获取这些基本信息。从命令行运行ansible --version命令。
> ansible --version ansible 2.9.10 config file = /etc/ansible/ansible.cfg configured module search path = [/home/admin/.ansible/plugins/modules, /usr/share/ansible/plugins/modules] ansible python module location = /usr/lib/python3.6/site-packages/ansible executable location = /usr/bin/ansible python version = 3.6.8 (default, Mar 18 2021, 08:58:41) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]可以通过运行其他Ansible命令来获取同样的信息,比如使用--version选项的ansible-playbook或ansible-config。
在Ansible Tower中,如果使用VERBOSITY 2(更详细)或更高版本执行作业模板,可显示该信息。
除了Ansible和Python二进制文件的版本和位置之外,仔细检查用于模块的路径总是好事,包括执行是否使用了不是默认的ansible.cfg文件(即不是/etc/ansible /ansible.cfg)。
要调查来自自定义ansible.cfg文件的选项,可以从命令行执行以下操作:
> ansible-config dump --only-changed DEFAULT_BECOME(/home/admin/ansible/ansible.cfg) = True DEFAULT_BECOME_USER(/home/admin/ansible/ansible.cfg) = root DEFAULT_FORKS(/home/admin/ansible/ansible.cfg) = 10 DEFAULT_HOST_LIST(/home/admin/ansible/ansible.cfg) = [/home/admin/ansible/inventory] DEFAULT_ROLES_PATH(/home/admin/ansible/ansible.cfg) = [/home/admin/ansible/roles] HOST_KEY_CHECKING(/home/admin/ansible/ansible.cfg) = False顾名思义,这将列出与默认参数不同的参数。
下一步是云服务器在调试模式下运行剧本,以获取有关任务和变量中所发生情况的更多详细信息。
您可以从命令行添加-v(或-vv、-vvv、-vvvv、-vvvvv)。最高的详细级别有时可能含有太多信息,因此最好在多次执行中逐渐增加详细级别,直至获得所需信息。
排查连接问题时级别4有所帮助,级别5适用于排查WinRM问题。
在Tower中,您可以从作业模板定义中选择VERBOSITY级别。
注意:记得在解决问题后禁用调试模式,因为详细信息仅对排查故障有用。
此外,在调试模式下,除非您在任务中使用no_log选项,否则会显示某些变量(比如密码)的值,因此完成后删除输出。
如果您很清楚问题可能出在哪里,可以使用更精准的方法:仅显示您需要查看的变量。
(...) - name: Display the value of the counter debug: msg: "Counter={ { counter }} / Data type={ { counter | type_debug }}" (...) TASK [Display the value of the counter] 云服务器提供商