amazon-web-services - 使用Jenkins管道无法识别aws eks命令

标签 amazon-web-services jenkins kubernetes

我创建了一个EC2实例,其中Jenkins正在运行并连接到我的GitHub帐户。以下是我的Jenkins流程的两个步骤:

pipeline {
    agent any
    stages {
        stage('Kubernetes cluster') {
            steps {
                withAWS(region:'us-west-2', credentials:'aws-kubernetes') {
                    sh '''
                    if [ ! aws cloudformation describe-stacks --region us-west-2 --stack-name eksctl-EmaJarK8sCluster-cluster ] ; then

                        if [ ! aws cloudformation describe-stacks --region us-west-2 --stack-name eksctl-EmaJarK8sCluster-nodegroup-standard-workers ] ; then

                            eksctl create cluster \
                            --name EmaJarK8sCluster \
                            --version 1.13 \
                            --nodegroup-name standard-workers \
                            --node-type t2.small \
                            --nodes 2 \
                            --nodes-min 1 \
                            --nodes-max 3 \
                            --node-ami auto \
                            --region us-west-2 \
                            --zones us-west-2a \
                            --zones us-west-2b \
                            --zones us-west-2c \

                        fi

                    fi
                    '''
                }
            }
        }

        stage('Configuration file cluster') {
            steps {
                withAWS(region:'us-west-2', credentials:'aws-kubernetes') {
                    sh '''
                        aws eks --region us-west-2 update-kubeconfig --name EmaJarK8sCluster
                    '''
                }
            }
        }
    }
}

第一步创建一个Kubernetes集群(如果不存在),第二步为该集群创建一个配置文件。此步骤效果很好,并创建了两个cloudformation堆栈和运行Kubernetes集群的一台EC2计算机。

第二阶段失败,并显示以下错误:
Invalid choice: 'eks', maybe you meant:

  * es

阅读一些教程后,我发现我需要将awscli更新为1.18.57版本,以便可以使用eks命令。因此,我已经登录到我的Jenkins机器(不是专用于k8s集群的机器),并且更新了awscli
不幸的是,这还不够。我仍然遇到相同的错误。我可以在Jenkins机器中手动运行该命令,但是由于某种原因,我无法通过Jenkins管道运行该命令。

有人可以帮我解决这个问题吗?

提前致谢。

最佳答案

您可以提供aws命令的完整路径吗?还将which awsaws --version添加到第二阶段脚本中,并确认该输出。

上面应该突出显示命令的实际路径以及当前版本。根据需要更正您的配置。

关于amazon-web-services - 使用Jenkins管道无法识别aws eks命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61750512/

相关文章:

Kubernetes Secret 与 ConfigMap

Docker Windows 10 - 如何运行 Jenkins,在 d 驱动器上绑定(bind)卷而不会出现权限错误

java - 安装Chronix

mongodb - Azure 虚拟机磁盘 IOPS 性能与 AWS

amazon-web-services - CloudFormation - 无法创建 SQS 策略

grails - 持续部署 grails 应用程序

apache-spark - 线程 "main"org.apache.spark.SparkException : Must specify the driver container image 中的异常

kubernetes - Minikube driver=podman,有没有人能够让它工作?

amazon-web-services - 有没有办法将我的 cloudformation 堆栈中的 ec2 用户数据创建的资源用于堆栈中的另一个资源?

java - Amazon Simple Workflow - 给定工作流程ID 列出所有执行