我使用 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 中选择变量
如果这不可能,有什么解决方法吗?
为了向脚本提供 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)