将 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:如何将变量传递给 user_data 初始化脚本
如何在 Terraform 变量中连接 S3 存储桶名称并将其传递给主 tf 文件
如何将使用 cidrsubnets 的子网的 CIDR 范围传递给 Terraform 版本 0.14 中的 VPC 模块