我需要使用terraform脚本在AWS上启动很少的实例,我正在使用jenkis自动化整个过程,
pipeline{
agent any
tools {
terraform 'terraform'
}
stages{
stage('Git Checkout'){
steps{
git branch: 'main', credentialsId: 'gitlab id', url: 'https://gitlab.com/ndey1/kafka-infra'
}
}
stage('Terraform init'){
steps{
sh 'terraform init'
}
}
stage('Terraform apply'){
steps{
sh 'terraform apply --auto-approve'
}
}
}
}前2级可以,但在第3阶段得到误差。
+ terraform apply --auto-approve
[31m╷[0m[0m
[31m│[0m [0m[1m[31mError: [0m[0m[1mNo configuration files[0m
[31m│[0m [0m
[31m│[0m [0m[0mApply requires configuration to be present. Applying without a
[31m│[0m [0mconfiguration would mark everything for destruction, which is normally not
[31m│[0m [0mwhat is desired. If you would like to destroy everything, run 'terraform
[31m│[0m [0mdestroy' instead.
[31m╵[0m[0m
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE但是,当从本地应用代码时,它甚至在terraform阶段也是完全工作的,在它的工作阶段,但是在terraform阶段,它应用它的失败。
当我在/var/lib/jenkins/workspace/infra-kaka/terraform-aws-ec2-with-vpc.中应用ls -ltra时这是输出
total 60
-rw-r--r-- 1 jenkins jenkins 1036 Aug 11 14:58 vpc.tf
-rw-r--r-- 1 jenkins jenkins 1710 Aug 11 14:58 variables.tf
-rw-r--r-- 1 jenkins jenkins 1551 Aug 11 14:58 security_group.tf
-rw-r--r-- 1 jenkins jenkins 68 Aug 11 14:58 provider.tf
-rw-r--r-- 1 jenkins jenkins 420 Aug 11 14:58 output.tf
-rw-r--r-- 1 jenkins jenkins 1674 Aug 11 14:58 oregonkeypair.pem
-rw-r--r-- 1 jenkins jenkins 235 Aug 11 14:58 kafka.config
-rw-r--r-- 1 jenkins jenkins 1732 Aug 11 14:58 instance.tf
-rw-r--r-- 1 jenkins jenkins 630 Aug 11 14:58 hosts.yml
-rw-r--r-- 1 jenkins jenkins 6658 Aug 11 14:58 hosts-ssl.yml
-rw-r--r-- 1 jenkins jenkins 94 Aug 11 14:58 ansible.cfg
-rw-r--r-- 1 jenkins jenkins 630 Aug 11 14:58 all.yml
-rw-r--r-- 1 jenkins jenkins 0 Aug 11 14:58 .gitkeep
drwxr-xr-x 2 jenkins jenkins 4096 Aug 11 14:58 .
drwxr-xr-x 5 jenkins jenkins 4096 Aug 16 12:35 ..发布于 2021-08-11 17:01:28
拟议问题
我会根据你对我的评论的反应来编辑这个。
我确信问题是terraform apply命令找不到您的配置文件。要解决这个问题,我建议您在ls -ltra命令之上运行一个terraform apply,以查看terraform配置文件是否存在于运行命令的同一个目录中,其中包含tf文件。
样本代码#1
--这假设当前目录中有一个terraform/目录,其中包含tf文件
可以将包含tf文件的目录的相对路径添加到apply命令的末尾,如下所示:
terraform apply terraform/样本代码#2
这段代码还假设在存储库的根目录中有一个包含tf文件的terraform/目录
此选项通过将当前目录更改为terraform/目录来执行这些命令
dir('terraform') {
terraform init
terraform apply --auto-approve
}显然,您需要相应地更新目录路径。如前所述,您可以运行pwd来查看您所在的位置,运行ls -ltra来查看当前目录中的文件。
https://stackoverflow.com/questions/68744894
复制相似问题