Jenkins Free style Job中的权限被拒绝的消息,用于调用ansible-book

时间:2018-11-01 08:16:48

标签: jenkins svn ansible jenkins-pipeline

我的申请

我正在尝试创建一个詹金斯工作来实施CI / CD管道。我正在使用SVN存储库进行版本控制。当我提交到该存储库时,Jenkins中配置的作业需要触发并需要调用一个Ansible Playbook YML文件。我正在使用Ansible剧本配置管道的每个阶段。

我当前的方法

我创建了一个svn存储库,并在hooks目录中配置了提交后的钩子。我创建了一个Ansible剧本。我正在使用此Ansible剧本来构建我所有的流水线舞台。

当我手动运行Ansible剧本时,它可以成功运行。但是,当我创建一个詹金斯工作并使用该工作调用此剧本时,Ansible部分显示“ Red Crossmark”。

我在詹金斯上所做的步骤

  1. 创建了新的詹金斯自由风格项目
  2. 编辑了项目说明
  3. 在源代码管理中选择了“ Subversion”,并添加了SVN存储库URL和凭据
  4. 在“构建触发器”中选中了“轮询SCM””
  5. 在“构建”部分选择了“调用Ansible Playbook”,并添加了Playbook Url。

下图显示了invoke ansible部分,

更新

注意:,其中sudo复选框处于选中状态

enter image description here

错误

当我尝试申请时,它没有显示任何提示。如果我保存并再次从仪表板中取出,则显示“失败”。

enter image description here

更新的控制台输出错误

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命令在E​​C2上进行直接测试的方法

NB:

当我直接在EC2上运行“ $ ansible-playbook ” shell命令命令时,得到相同的错误。但是,当我运行shell命令“ $ sudo ansible-playbook ”时,没有得到错误。因此,我也在这里选中了“ sudo”复选框。但是我变得完全不同了。

如何解决工作失败以及为何无法申请?

1 个答案:

答案 0 :(得分:1)

也许问题出在SVN信息库的权限上?它需要认证吗?

错误为Connection aborted.', error(13, 'Permission deniedsudo: a password is required。根据屏幕截图,您未指定任何用户凭据。当您的构建计算机访问SVN服务器和存储库时,似乎必须提供用户名和密码。如果现在指定凭据,但仍然看到错误,请确保它们正确无误,并确保用户帐户具有对存储库的“读取”权限。