azure - 如何使用 Terraform Azure CAF 部署 Windows VM?
问题描述
我想使用 Terraform部署带有Azure 云采用框架(CAF) 的 Windows VM。在 configuration.tfvars 的示例中,所有配置都已完成。但我找不到正确的 terraform 代码来部署此 tfvars 配置。
windows vm 模块在这里。
到目前为止,我已经编写了以下代码:
module "caf_virtual_machine" {
source = "aztfmod/caf/azurerm//modules/compute/virtual_machine"
version = "5.0.0"
# belows are the 7 required variables
base_tags = var.tags
client_config =
global_settings = var.global_settings
location = var.location
resource_group_name = var.resource_group_name
settings =
vnets = var.vnets
}
所以这些vnets, global_settings, resource_group_name
变量已经存在于 configuration.tfvars 中。我已在 configuration.tfvars 中添加tags
和location
变量。
但是我应该输入什么settings
变量client_config
?
解决方案
虚拟机是一个私有模块。您应该通过调用基本 CAF 模块来使用它。
terraform 注册表的自述文件解释了如何利用核心 CAF 模块 - https://registry.terraform.io/modules/aztfmod/caf/azurerm/latest/submodules/virtual_machine
您有一个配置文件库示例,展示了如何部署虚拟机
https://github.com/aztfmod/terraform-azurerm-caf/tree/master/examples/compute/virtual_machine
module "caf" {
source = "aztfmod/caf/azurerm"
version = "5.0.0"
global_settings = var.global_settings
tags = var.tags
resource_groups = var.resource_groups
storage_accounts = var.storage_accounts
keyvaults = var.keyvaults
managed_identities = var.managed_identities
role_mapping = var.role_mapping
diagnostics = {
# Get the diagnostics settings of services to create
diagnostic_log_analytics = var.diagnostic_log_analytics
diagnostic_storage_accounts = var.diagnostic_storage_accounts
}
compute = {
virtual_machines = var.virtual_machines
}
networking = {
vnets = var.vnets
network_security_group_definition = var.network_security_group_definition
public_ip_addresses = var.public_ip_addresses
}
security = {
dynamic_keyvault_secrets = var.dynamic_keyvault_secrets
}
}
注意 - 建议利用源存储库中提供的 VScode devcontainer 来执行 terraform 部署。devcontainer 包括部署 Azure 解决方案所需的工具。
推荐阅读
- wordpress - Styles for current item with anchor links with absolute path in Wordpress menu
- jmeter - Jmeter run test plan from command line with external link to properties
- javascript - 在 React 和 Redux 中使用 setTimeout
- c++ - 什么时候在类中检查函数的定义?
- php - multi language website by codeigniter with language in link
- bluetooth - Android 与自定义 USB 蓝牙适配器配对
- python - Matplotlib - MatplotlibDeprecationWarning
- c++ - 如何将参数传递给已经开始运行的线程
- linux - 从输入(sshpass?)在多个本地服务器上执行 SSH 远程 cmd exec
- vue.js - 计算属性需要等待异步数据