Terraform Cloud配置的local_file资源未在指定路径生成文件问题咨询
解决方案
1. 确认文件生成的默认路径
path.module 指向的是当前资源代码所在的目录,你这段local_file代码写在module/local/test.tf中,因此${path.module}对应的路径为./module/local/,sample.txt会生成在该目录下,而非main.tf所在的项目根目录,请优先到该路径下查找文件。
2. 打印实际路径确认定位
可以在配置中增加output块,执行apply后直接输出文件的绝对生成路径,避免路径查找错误:
output "sample_file_actual_path" { value = local_file.sample.filename }
执行terraform apply后,控制台会直接输出该文件的完整路径,按照输出路径查找即可。
3. GitLab流水线场景特殊处理
如果是在GitLab流水线中无法找到文件,需注意两个点:
- 生成文件的步骤和查找文件的步骤需在同一个CI job中,不同job的运行环境相互独立,文件不会跨job留存
- 如果需要跨job使用该文件,需要将其配置为CI制品,在流水线配置中增加制品留存规则即可。
4. 异常场景排查
如果按照上述路径依旧无法找到文件,可执行以下命令校验资源状态:
terraform state show local_file.sample
查看输出的filename字段确认实际写入路径,同时检查项目所在目录的读写权限:Windows环境下如果项目放在需要管理员权限的目录(如C:\Program Files、系统根目录等),可能出现无写入权限但资源状态标记成功的问题,可将项目迁移到普通用户目录(如桌面、个人文档目录)后重新执行apply测试。
内容的提问来源于stack exchange,提问作者Lavanya
相关产品推荐
相关产品推荐

