无法在jenkins管道中运行Kubectl命令,但可以通过命令行正常运行。
我在ec2ubuntu示例上运行了一个管道,在那里我安装了jenkins,最后它将应用程序部署到eks集群(ec2连接到集群)。一切都发生在我的主jenkins安装,我没有使用任何jenkins代理。
我已经在ec2示例上安装了kubectl命令,使用正常的cmd行成功连接到eks集群。我可以从系统中的任何地方运行kubectl命令。但是当我在管道中运行kubectl apply -f .
命令时,它会说
kubectl apply -f deployment.yaml
/var/lib/jenkins/workspace/java-app-ECR@tmp/durable-b43cd65c/script.sh: 4: kubectl: not found
另外,我的jenkins正在使用我用来执行cmd行命令的同一个用户执行命令。当我在pipeline中给予kubectl命令的完整路径时,它说permission denied
/home/ubuntu/bin/kubectl apply -f deployment.yaml
/var/lib/jenkins/workspace/java-app-ECR@tmp/durable-47c860e3/script.sh: 4: /home/ubuntu/bin/kubectl: Permission denied
但我的用户'ubuntu'拥有位于此路径中的文件
ubuntu:~/bin$ pwd
/home/ubuntu/bin
ubuntu:~/bin$ ll
total 43996
drwxrwxr-x 2 ubuntu ubuntu 4096 Jun 20 13:06 ./
drwxr-x--- 12 ubuntu ubuntu 4096 Jun 20 13:06 ../
-rwxrwxr-x 1 777 ubuntu 45039616 Jun 20 13:06 kubectl*
尝试了这个How to setup kubectl within jenkins没有多大帮助请指导
1条答案
按热度按时间uhry853o1#
如果你最近安装了kubectl,请考虑重新启动Jenkins或ec2示例,看看这是否会让Jenkins选择该命令。如果没有,将kubectl bin添加到Jenkins本身的路径中(参见this answer)。
至于第二部分,Jenkins通常会创建自己的用户名为
jenkins
,并且很可能不会使用您的ubuntu
用户。尝试检查您的用户列表,看看是否已创建Jenkins用户。如果有,请将文件权限授予jenkins
用户,然后重试。