我的申请
我正在尝试创建一个詹金斯工作来实施CI / CD管道。我正在使用SVN存储库进行版本控制。当我提交到该存储库时,Jenkins中配置的作业需要触发并需要调用一个Ansible Playbook YML文件。我正在使用Ansible剧本配置管道的每个阶段。
我当前的方法
我创建了一个svn存储库,并在hooks目录中配置了提交后的钩子。我创建了一个Ansible剧本。我正在使用此Ansible剧本来构建我所有的流水线舞台。
当我手动运行Ansible剧本时,它可以成功运行。但是,当我创建一个詹金斯工作并使用该工作调用此剧本时,Ansible部分显示“ Red Crossmark”。
我在詹金斯上所做的步骤
下图显示了invoke ansible部分,
更新
注意:,其中sudo复选框处于选中状态
错误
当我尝试申请时,它没有显示任何提示。如果我保存并再次从仪表板中取出,则显示“失败”。
更新的控制台输出错误
TASK [Gathering Facts] *********************************************************
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
to retry, use: --limit @/home/spacestudy/pipelinesite.retry
PLAY RECAP *********************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1
通过取消选中sudo复选框来更新尝试
TASK [pipelinerole : login into dockerhub] *************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', error(13, 'Permission denied'))"}
to retry, use: --limit @/home/spacestudy/pipelinesite.retry
Shell命令在EC2上进行直接测试的方法
NB:
当我直接在EC2上运行“ $ ansible-playbook ” shell命令命令时,得到相同的错误。但是,当我运行shell命令“ $ sudo ansible-playbook ”时,没有得到错误。因此,我也在这里选中了“ sudo”复选框。但是我变得完全不同了。
如何解决工作失败以及为何无法申请?
答案 0 :(得分:1)
也许问题出在SVN信息库的权限上?它需要认证吗?
错误为Connection aborted.', error(13, 'Permission denied
和sudo: a password is required
。根据屏幕截图,您未指定任何用户凭据。当您的构建计算机访问SVN服务器和存储库时,似乎必须提供用户名和密码。如果现在指定凭据,但仍然看到错误,请确保它们正确无误,并确保用户帐户具有对存储库的“读取”权限。