【问题标题】:using gcloud in Jenkins在 Jenkins 中使用 gcloud
【发布时间】:2020-03-15 05:18:33
【问题描述】:

我使用安装在 GKE 上的 Jenkins。 我安装了 GCloud SDK 插件并使用全局工具配置对其进行了配置。 当我在管道中使用 gcloud 时,我收到“未找到”错误。 我尝试了Executing gcloud command in Jenkins pipeline推荐的解决方案。

pipeline {
   agent any

stages {
    stage('Run gcloud') {

        steps {
            withEnv(['GCLOUD_PATH=/var/jenkins_home/google-cloud-sdk/bin']) {
                sh '$GCLOUD_PATH/gcloud --version'
            }


         }
      }
   }
}  

但我的 /var 目录中没有“jenkins_home”。

+ ls -l /var/
total 36
drwxr-xr-x 2 root root  4096 Jun 26  2018 backups
drwxr-xr-x 1 root root  4096 Oct 29  2018 cache
drwxr-xr-x 1 root root  4096 Oct 16  2018 lib
drwxrwsr-x 2 root staff 4096 Jun 26  2018 local
lrwxrwxrwx 1 root root     9 Oct 11  2018 lock -> /run/lock
drwxr-xr-x 1 root root  4096 Oct 29  2018 log
drwxrwsr-x 2 root mail  4096 Oct 11  2018 mail
drwxr-xr-x 2 root root  4096 Oct 11  2018 opt
lrwxrwxrwx 1 root root     4 Oct 11  2018 run -> /run
drwxr-xr-x 2 root root  4096 Oct 11  2018 spool
drwxrwxrwt 2 root root  4096 Jun 26  2018 tmp 

【问题讨论】:

    标签: jenkins gcloud


    【解决方案1】:

    试试这样的:

    stage('Deploy'){
        steps{
    
            //Deploy to GCP
            sh """
                #!/bin/bash 
                echo "deploy stage";
                curl -o /tmp/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-225.0.0-linux-x86_64.tar.gz;
                tar -xvf /tmp/google-cloud-sdk.tar.gz -C /tmp/;
                /tmp/google-cloud-sdk/install.sh -q;
    
                            source /tmp/google-cloud-sdk/path.bash.inc;
    
    
                 gcloud config set project ${GOOGLE_PROJECT_ID};
                 gcloud components install app-engine-java;
                 gcloud components install app-engine-python;
                 gcloud auth activate-service-account --key-file ${GOOGLE_SERVICE_ACCOUNT_KEY};
    
                 gcloud config list;
                 gcloud app deploy --version=v01;
                             echo "Deployed to GCP"
            """
            }   
    
    }
    

    【讨论】:

    • 是否意味着我必须为每项工作安装 SDK 还是只安装一次?
    • 什么是“源 /tmp/google-cloud-sdk/path.bash.inc;”在你的脚本中?
    • 我的电脑上有一个服务帐户密钥。如何将其上传到 Jenkins?
    • 嘿@BT3,查看this article 了解有关该主题的更多信息
    • 另一种选择是连接到您的一个容器并使用 kubectl exec POD_NAME -c CONTAINER_NAME -- echo $PATH 在容器中定位云 sdk。复制云 SDK 的完整位置并在您的初始解决方案中使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多