当前位置: 首页 > 知识库问答 >
问题:

Terraform在jenkins中不被视为内部或外部命令

崔博延
2023-03-14

我在本地windows机器中安装了jenkins。然后我安装了terraform插件,并在jenkins中的全局工具配置中更改了配置,但当我运行jenkin管道时,我得到“terraform”无法识别为内部或外部命令、可操作程序或批处理文件。

代码

pipeline {
   agent any

   stages {
      stage('Hello') {
         steps {
            bat 'terraform --version'
            echo 'Hello World'
         }
      }
   }
}

你能帮我在这方面做错了什么吗?

Started by user admin
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in C:\Program Files (x86)\Jenkins\workspace\actimize2
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Hello)
[Pipeline] script
[Pipeline] {
[Pipeline] tool
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: No tool named terraform found
Finished: FAILURE

共有1个答案

淳于健
2023-03-14

您需要使用工具命令获取地形主页,然后将其添加到Path环境变量中,以便bat调用的shell解释器可以找到地形命令:

def tfHome = tool name: 'Terraform', type: 'com.cloudbees.jenkins.plugins.customtools.CustomTool'
env.Path = "${tfHome};${env.Path}"

在您的管道中,这看起来像:

pipeline {
   agent any

   stages {
      stage('Hello') {
         steps {
            def tfHome = tool name: 'Terraform', type: 'com.cloudbees.jenkins.plugins.customtools.CustomTool'
            env.Path = "${tfHome};${env.Path}"
            bat 'terraform --version'
            echo 'Hello World'
         }
      }
   }
}

您也可以直接在bat命令中使用该工具(这是我经常使用Jenkins时所做的):

pipeline {
   agent any

   stages {
      stage('Hello') {
         steps {
            bat "${tool name: 'Terraform', type: 'com.cloudbees.jenkins.plugins.customtools.CustomTool'}\terraform --version"
            echo 'Hello World'
         }
      }
   }
}

你可以在这篇关于Jenkins自动化地形项目的文章中看到一个成功的例子。

 类似资料:
  • 当jenkins试图构建我的程序时,jenkins构建失败,错误不被识别为内部或外部命令。以下是詹金斯的运作: 谢谢,问候

  • 问题内容: 键入命令时出现以下错误: 无法将“ mvn”识别为内部或外部命令,可操作程序或批处理文件。 我也遵循了这个步骤,但是仍然无法完成工作。 当我键入此命令时,我得到的路径打印为 当我键入“ echo%M2%”时,我的路径打印为 环境 : 问题答案: 确保在路径中设置了maven bin目录,并设置了JAVA_HOME属性

  • 问题内容: 我在安装react-flux-starter-kit-windows时出错。我在使用以下命令时已经安装了最新的node.js和npm:npm install -g react-flux-starter-kit它给了我以下错误 问题答案: 似乎需要安装Bash。如果您使用的是Windows,则可以使用以下方式之一进行安装: https://git-for-windows.github.i

  • 问题内容: 我尝试安装此软件。为此,需要Python。 我从这里name安装了Python 。 我正在Windows 7上工作。 之后,我做 当我运行任何Python文件时,它显示 python无法识别为内部或外部命令,可操作程序或批处理文件。无法创建vc项目文件。 我该如何解决? 问题答案: 您要追加到字符串,而不是scripts文件夹。基本上,您希望路径上带有实际二进制文件的文件夹。

  • 我将环境变量设置为: 和 以及将它们添加到路径,调用: 但是从命令调用仍然会产生错误: 这个问题的原因是什么?

  • 我从VSCode 0.10.6更新到0.10.8,并第一次尝试使用Typescript。不幸的是,当我告诉VSCode构建时,我得到了错误: 我根据VS代码说明创建了一个新的“HelloWorld”项目。这包括: 我为一个新的package.json运行了 我运行,因为我想要本地安装,而不是全局安装。 我创建了一个launch.json来定义Node.js项目。 我创建了tasks.json文件,