我正在嘗試通過在 terraform 組態檔中傳遞它來運行 cloudinit 檔案。terraform apply 命令創建所有資源。但是當我啟動虛擬機時,在虛擬機中看不到來自 cloudinit 的任何更改。
這是擴展名為 .tpl 的 Cloudinit 檔案:
users:
- name: ansible
gecos: Ansible
sudo: ALL=(ALL) NOPASSWD:ALL
groups: [users, admin]
shell: /bin/bash
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1.......
這是 main.tf 檔案:
data "template_file" "users_data" {
template = file("./sshPass.tpl")
}
data "template_cloudinit_config" "config" {
gzip = true
base64_encode = true
part {
content_type = "text/cloud-config"
content = data.template_file.users_data.rendered
}
resource "azurerm_linux_virtual_machine" "poc-vm" {
name = var.vm_name
resource_group_name = azurerm_resource_group.poc_rg.name
location = azurerm_resource_group.poc_rg.location
size = var.virtual_machine_size
admin_username = var.vm_username
network_interface_ids = [azurerm_network_interface.poc_nic_1.id]
admin_ssh_key {
username = var.vm_username
public_key = tls_private_key.poc_key.public_key_openssh
}
os_disk {
caching = var.disk_caching
storage_account_type = var.storage_type
}
source_image_reference {
publisher = var.image_publisher
offer = var.image_offer
sku = var.image_sku
version = var.image_version
}
user_data = data.template_cloudinit_config.config.rendered
}
uj5u.com熱心網友回復:
嘗試這個:
data "template_cloudinit_config" "config" {
gzip = true
base64_encode = true
part {
content_type = "text/cloud-config"
content = "${data.template_file.users_data.rendered}"
}
在此示例中,我將這一行更改content = data.template_file.users_data.rendered為這一行content = "${data.template_file.users_data.rendered}"
希望這可以幫助!
uj5u.com熱心網友回復:
發現錯誤。將擴展名更改為“.cfg.”。添加了“custom_data”而不是 user_data。在檔案的第一行添加了“#cloud-config”。確保我洗掉了 ssh 密鑰末尾的所有空格。而且還覺得我一直在使用錯誤的 ssh 密鑰登錄。但無論如何,這些東西幫助了我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/517855.html
