执行ansible-playbook提示找不到playbook但文件存在如何排查
问题原因
配置参数使用错误。ansible.cfg中[defaults]段的library参数作用是指定自定义Ansible模块的搜索目录,和playbook文件的查找逻辑完全无关。
Ansible执行ansible-playbook命令时,如果你传入的是相对路径的playbook文件名,只会在你执行命令时的当前工作目录下查找对应文件。你当前执行命令的路径是/home/t95bm75/demo/ansible/,但目标playbook存放在/home/t95bm75/demo/ansible/OracleDBAwithAnsible/目录下,当前目录不存在该文件,因此触发找不到playbook的报错。
你贴出的目录校验结果已经证明文件本身存在、权限正常,问题纯粹是路径查找逻辑不符合预期。
解决方法
任选以下一种方式即可修复:
- 执行命令时直接传入playbook的绝对路径,不需要切换工作目录:
ansible-playbook /home/t95bm75/demo/ansible/OracleDBAwithAnsible/oracle19c_rdbmsinstall.yml --step --ask-pass - 先切换到playbook所在的目录,再执行原命令:
cd /home/t95bm75/demo/ansible/OracleDBAwithAnsible/ ansible-playbook oracle19c_rdbmsinstall.yml --step --ask-pass
注意:不存在可以配置playbook默认搜索路径的ansible.cfg参数,不要尝试通过修改
library、roles_path等其他参数实现playbook自动查找,这类参数都有各自专属的作用范围,不会影响playbook的路径匹配逻辑。
内容的提问来源于stack exchange,提问作者Refoel
相关产品推荐
相关产品推荐

