如何解决Terraform DSC配置中的Azure自动化与节点配置 背景问题
背景
我正在尝试使用Azure自动化将某些Azure Windows VM配置为DNS服务器。
我想使用Terraform来配置自动化帐户,DSC配置和DSC节点配置,但是我仍然停留在DSC节点配置上。
我具有以下功能,但仅当我通过单击门户网站手动编译时才有效:
resource "azurerm_automation_dsc_configuration" "configuration" {
name = "DNSConfig"
resource_group_name = "my_rg"
location = "uksouth"
automation_account_name = "my_aa_account"
content_embedded = <<-CONTENT
Configuration DNSConfig
{
Node 'localhost'
{
WindowsFeature DNS
{
Ensure = 'Present'
Name = 'DNS'
}
# plus some more stuff
}
}
CONTENT
}
我想使编译自动化,所以我尝试了:
resource "azurerm_automation_dsc_nodeconfiguration" "node" {
automation_account_name = "my_aa_account"
resource_group_name = "my_rg"
name = "DNSConfig.localhost"
content_embedded = "# what goes here?"
}
问题
我对此没有很深的背景,所以不确定我是否正确理解它。我不知道content_embedded
的{{1}}应该包含什么。
是否应该从nodeconfiguration
中删除Node
块并将其移到dsc_configuration
中?还是节点块的内容(即排除dsc_nodeconfiguration
包装器)?
(我不太确定“ localhost”对于该节点表示的名字是否很好)。
例如,类似:
Node 'localhost' {}
或
resource "azurerm_automation_dsc_nodeconfiguration" "node" {
content_embedded = "Node 'localhost' { WindowsFeature DNS {...} }"
...
}
还是其他?
我感觉我已经尝试了其中一些选项,但是反馈循环非常慢,因此我调试时可能会遇到正确的答案并被另一个错误绊倒!
请问有人有可行的示例吗?或者也许可以解释它的工作原理?
解决方法
您应在content_embedded
内包含MOF文件的内容,请参见azurerm_automation_dsc_nodeconfiguration
文档中的an example。
或者,您可以使用terraform file function加载MOF内容并在脚本中使用它。请记住,必须以Unicode或UTF-8格式对MOF内容进行编码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。