我正在使用 terraform 部署 eks 集群,为了启动 eks 托管节点组的节点,我定义了一个 user_data.tpl 文件。
eks_managed_node_groups = {
"${var.cluster_name}_managed_node_group" = {
ami_release_version = var.ami_version
create_launch_template = true
launch_template_name = var.launch_template_name
user_data_template_path = "./user_data.tpl"
...
在 user_data 文件中,我尝试从 artifactorycloud 下载 .zip 文件,为此我需要传递用户名和密码: sudo wget --http-user=${USERNAME} --http-password=${PASSWORD} https://artifactorycloud.mypage.com/artifactory/l-generic-agent-binaries/splunk-agent/aws/latest /AWS_NIX_latest_UF.zip
我已经创建了这些变量并为它们添加了值。
variable "USERNAME" {
description = "Username for artifactorycloud"
type = string
}
variable "PASSWORD" {
description = "Password for artifactorycloud"
type = string
}
但似乎这些值并未在 user_data.tpl 中被获取
我怎样才能做到这一点? 我将不胜感激您的帮助。
正如 Chris Doyle 在他的评论中所写,您可能应该使用
templatefile
内置函数。但是,看起来这些是环境变量。如果需要以相同的方式引用它们,则需要在前面使用双 $
符号:
sudo wget --http-user=$${USERNAME} --http-password=$${PASSWORD} https://artifactorycloud.mypage.com/artifactory/l-generic-agent-binaries/splunk-agent/aws/latest/AWS_NIX_latest_UF.zip
如果您决定使用
templatefile
函数,该部分代码应类似于:
eks_managed_node_groups = {
"${var.cluster_name}_managed_node_group" = {
ami_release_version = var.ami_version
create_launch_template = true
launch_template_name = var.launch_template_name
user_data_template_path = templatefile("${path.root}/user_data.tpl", {
USERNAME = var.USERNAME
PASSWORD = var.PASSWORD
})
...