GitHub Actions中使用Linode LKE时Terraform plan挂起问题咨询
问题原因与修复方案
核心原因
- 你没有将
LINODE_TOKEN注入到GitHub Actions的运行环境中,Linode Provider执行plan操作时需要读取该凭证完成身份校验,拿不到有效凭证时会持续等待输入,因此出现无响应挂起。 - 你猜测的
terraform init产物无法被后续步骤访问的问题不存在:同一个job内的所有步骤共享runner的工作目录,init生成的.terraform缓存、配置文件天然可被后续的plan、apply步骤直接读取。
修复步骤
- 首先确认你已经在GitHub仓库的Secrets中正确存储了拥有LKE操作权限的
LINODE_TOKEN。 - 修改你的GitHub Actions工作流配置,给Terraform相关步骤注入
LINODE_TOKEN环境变量,同时给命令加上-input=false参数禁止交互式输入,避免异常挂起:
init-terraform: runs-on: ubuntu-latest # 全局配置环境变量,所有步骤都可读取 env: LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }} steps: - name: Checkout code uses: actions/checkout@v2 with: ref: 'some-branch' - name: Setup Terraform uses: hashicorp/setup-terraform@v1 with: cli_config_credentials_token: ${{ secrets.TERRAFORM_API_TOKEN }} - name: Terraform Init run: terraform init -input=false - name: Terraform Plan run: terraform plan -input=false - name: Terraform Apply run: terraform apply -auto-approve -input=false
- 如果修改后依然报错,你可以给命令加上
-v参数开启debug日志,快速定位具体错误点。
内容的提问来源于stack exchange,提问作者shadyhill
相关产品推荐
相关产品推荐

