CICD疑难杂症汇总


这里主要是为了记录在使用 CICD 的时候遇到的问题及其处理解决方法。

CICD疑难杂症汇总


1. GoCD 执行命令报错

注意在 GoCD 中执行系统命令的方法

  • [问题起因] 需要在 GoCDagent 机器上面,执行 etcd 服务设置对应的键值对,但是通过在 Command 中设置之后,提示了如下报错。提示在系统的 PATH 中并没有找到对应的 etcdctl 命令,但是直接在节点手动执行的话,却是没有问题的。
# 报错信息
# --user=xxx:xxxxxx --endpoints=xxx.xxx.xxx.xxx:xxx
[go] Task: ETCDCTL_API=3 etcdctl put name ${name:0:8}took: 0.24s
Error happened while attempting to execute 'ETCDCTL_API=3 etcdctl put name ${name:0:8}'.
Please make sure [ETCDCTL_API=3 etcdctl put name ${name:0:8}] can be executed on this agent.
[Debug Information] Environment variable PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
[go] Task status: failed, took: 0.24s
[go] Current job status: failed
  • [解决方法] 后来在其 githubissus-810issus-4313 中,找到了解决方法。原来是因为通过 agent 执行的默认 shell 并不是系统常见的 /bin/bash 而是 /bin/sh 的终端,在其 $PATH 中没有找到对应命令的安装路径,所以会提示并没有知道对应的命令。官方开发者建议,如果客户需要大量执行命令的话,可以将其保存到文件中去,然后再进行执行。或者直接通过 bash -c 进行声明式终端执行对应命令。
#!/bin/bash

ETCDCTL_API=3 etcdctl version

CICD疑难杂症汇总 - GoCD执行命令报错


文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录