使用默认的无配置文件

时间:2020-03-09 10:47:41

标签: jenkins ansible centos7

我正在尝试使用Ansible自动化我的部署。一切正常。但是当我运行ansible-playbook ./test-playbook.yml -v时,使用詹金斯,我会收到以下消息:

[Pipeline] sh
+ ansible-playbook ./test-playbook.yml -v
No config file found; using defaults
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
ERROR! the role 'spring' was not found in /var/lib/jenkins/workspace/g_root_web-provisionning_develop/roles:/var/lib/jenkins/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/var/lib/jenkins/workspace/g_root_web-provisionning_develop

The error appears to be in '/var/lib/jenkins/workspace/g_root_web-provisionning_develop/test-playbook.yml': line 11, column 7, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  roles:
    - spring
      ^ here

当我直接在系统上运行同一命令时,它可以正常工作。详细模式显示未找到配置文件。有人可以帮我吗

致谢

1 个答案:

答案 0 :(得分:0)

您正在使用清单来列出Ansible可以使用的服务器。通常,人们将自己的清单保留在git本地(例如-i myinv.yaml),但在您的情况下,您似乎正在使用全局(系统或用户)清单。它驻留在您的计算机上,并且没有存储在git repo中,因此,您的CI无法访问它。

找到您的计算机上正在使用的清单文件(ansible-playbook ... -vv),然后将其复制到CI(坏主意)或将其合并到git repo中。在以后的情况下,您需要显式提供清单(-i)。

其他说明:敏感信息(密码,令牌等)要小心-通常,您不想将它们存储在git repo中的文件中。