将 Terraform 变量中的数字传递给 Ansible Playbook

Posted

技术标签:

【中文标题】将 Terraform 变量中的数字传递给 Ansible Playbook【英文标题】:Passing a number in Terraform Variables to Ansible Playbook 【发布时间】:2020-06-17 07:13:26 【问题描述】:

想知道如何将数字传递给 Terraform -> Ansible 流中的 jinja2 模板文件?

在我的 tfvars json 中,我有:


   "Users": 100

在我的 main.tf 中,我在启动我的 ec2 实例并运行时调用 ansible playbook:

  - sudo ansible-playbook /PostServerConfiguration.yml --extra-vars '$jsonencode("lic_users"=var.Users)'  

ansible 中的那个变量应该去一个 jinja2 模板文件,但我需要它作为一个 int 而不是一个字符串。有人会碰巧知道通过 int 的解决方案吗?在我的 variables.tf 中,我还将用户的类型设置为数字

【问题讨论】:

【参考方案1】:

我找到了答案:)

首先,我通过在 ansible-playbook 中运行调试任务以在运行时输出 lic_users 进行测试。它是 100 作为 int,因此将 Terraform 作为罪魁祸首。

我最终在我的 j2 模板中使用了“ lic_users | int ”,它成功了。谢谢大家!

【讨论】:

以上是关于将 Terraform 变量中的数字传递给 Ansible Playbook的主要内容,如果未能解决你的问题,请参考以下文章

Terraform - 无法将字符串变量传递给子模块

Terraform:如何将变量传递给 user_data 初始化脚本

如何在 Terraform 变量中连接 S3 存储桶名称并将其传递给主 tf 文件

如何将变量传递给 heml.tf 中的 yaml 文件?

如何将使用 cidrsubnets 的子网的 CIDR 范围传递给 Terraform 版本 0.14 中的 VPC 模块

如何将数据源从一个模块引用到另一个模块并将其作为变量传递给根模块?