如何从 BASH 脚本中选择 vars.tf 中的变量

Con*_*Man 1 bash terraform

我使用 Terraform 配置 EC2 实例。它还有一个启动脚本。我有 vars.tf,我在其中指定了所有变量。在我的 bash.sh 脚本中,它应该从 vars.tf 中获取一个变量

是否可以从 bash 脚本引用 vars.tf 中的变量?以下是我的用例。

bash

#!/bin/bash

docker login -u username -p token docker.io
Run Code Online (Sandbox Code Playgroud)

变量.tf

variable "username" {
  default = "myuser"
}

variable "token" {
  default = "mytoken"
}
Run Code Online (Sandbox Code Playgroud)

我的 bash 脚本应该从 vars.tf 中选择变量

如果这不可能,有什么解决方法吗?

Erv*_*gyi 5

为了向脚本提供 Terraform 变量,我们可以使用templatefile函数。此函数读取模板文件的内容,并在模板语法 ( ${ ... }) 标记的位置注入 Terraform 变量。

首先,我们要使用 bash 脚本创建一个模板文件并将其另存为init.tftpl

#!/bin/bash

docker login -u ${username} -p ${token} docker.io
Run Code Online (Sandbox Code Playgroud)

创建实例时,我们可以使用templatefile提供渲染脚本作为用户数据:

#!/bin/bash

docker login -u ${username} -p ${token} docker.io
Run Code Online (Sandbox Code Playgroud)