【发布时间】:2021-08-21 21:44:16
【问题描述】:
错误信息是:
配置存在一些问题,如下所述。 Terraform 配置必须在初始化之前有效,以便 Terraform 可以确定需要安装哪些模块和提供程序。
这就是我正在做的事情:
-
在 azvm.tf 中编写 terraform 脚本以创建 VM。
-
在 variables.tf 文件中定义变量 resourcegroup、location 和 pub_key,并在 azvm.tf 文件中使用字符串插值语法调用这些变量。
-
创建了具有以下功能的虚拟机:
a) Ubuntu 18.04 服务器 b) VM 名称:任何自定义名称
c) Admin_username:任何自定义名称
d) 禁用密码验证
e) 尺寸:标准 DS1_v2
f) 允许 ssh、http、https
的流量 g) 使用上述步骤中生成的公共 ssh 密钥
在 vi 命令的帮助下,我们创建 variables.tf 文件为:
variable "resourcegroup"
{
default = "user-pbtwiiiuofyu"
}
variable "location"
{
default = ["East US"]
}
variable "pub_key"
{
default = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDH7+uZHdf3SXSfz3Z80FCahr1Bt2t2u+RBlgE/QPN5Qy/CdrpcNH/8oncuDLKW5r+Ie+J5yNVwJz96gdLAQPNMmAYEPGjNct63kQp8hZPlWFdQIEyvHZwwP4YWf5vyRjozQ1PZN/0WyBjqTYmJh3z6haFxqnmIf6a9G8JldjtTPuF2oAnHaUDpqD4qBy/+OSN7CX1Lowny83NLNFoTgmm2npU+RIS2FDYpf1z30tejZSO0V3Z+iT3Xddlzh2NwunzOPv9avzwrLbSSvdbugcXTSPURMLgXwCapH9oHt4RCB/2mgsrRcLQb14FKG9UVBwzh07v2w8fDAHLnv2g4bpnhIyZMpX3zLO9mtQ4ix9DpyqPMqLV7b1uTSyj9t3UEcfprGWRPDJgkpGXEzP0iQgrGlfpctL/6/Hy009123uzb4ugXwndPbuQnPtj45PX2D4zEOFPrlvFBofazuGp65wxdzlzZpGsgqxiZQbdFCU4eQV2Y2kBPj/uv/3DOI2x27ML6i9D/shiVz/sSpryjKRHIl9bU7rU4vClgED/1NuhhTGLk5qPFOjsvvHpIORu5zFKNmeGFHW6e0TJnJMsckszseQuyjqUMkBoFV0NIOyS/mGLrxxzOTpzQyM9duat4T3kGLjjy+ozpHRaahXO79I91pDP66enitmj861kS6G5chQ== root@6badb6ae71d1"]
}
而 vi 命令我们创建了 azvm.tf 文件为
az vm create -n Myuyuuy5Vm -g var.resourcegroup --ssh-key-values var.pub_key
我们还有另一项类似的任务,但相对来说不太容易,即-
-
在 azmonitor.tf 中编写 terraform 脚本以创建存储帐户, 存储容器,用于监控和发送日志报告的存储 blob 每天。
-
在 variables.tf 中定义变量资源组和位置 文件,并使用字符串在 azmonitor.tf 文件中调用这些变量 插值语法
variables.tf as-
variable "resourcegroup"
{
default = "user-pbtwiiiuofyu"
}
variable "location"
{
default = ["East US"]
}
azmonitor.tf 我们创建为-
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = var.resourcegroup
location = var.location
}
resource "azurerm_storage_account" "example" {
name = "sa123321123"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.location
sku = "Standard_LRS"
}
resource "azurerm_storage_container" "example" {
name = "sc123321123"
resource_group_name = azurerm_resource_group.example.name
account_key = azurerm_storage_account.eample.name
public_access = "blob"
}
resource "azurerm_storage_blob" "example" {
name = "sb123321123"
resource_group_name = azurerm_resource_group.example.name
account_key = azurerm_storage_account.eample.name
source = azurerm_storage_container.name
}
【问题讨论】:
-
我认为您的概念有误。因此,您似乎正在混合使用两种不同的方式来创建 VM,第一种是使用 terraform - 这是您的任务,而另一种创建 VM 的方式是使用 Az CLI