Score:0

Terraform DataSource DataSourceNone กับ Ubuntu 20.04

ธง fr

ปัญหา

หลังจากสร้างเทมเพลต Ubuntu 20.04 (ลองใช้ 21.04 ด้วย) ด้วย Packer ฉันไม่สามารถตั้งค่าใหม่ได้เมื่อสร้างอินสแตนซ์เทมเพลตด้วย Terraform การกำหนดค่านี้ไม่มีปัญหากับ Debian 10

แพ็คเกอร์

{
    "ผู้สร้าง": [
    {
        "ซีพียู": "{{ผู้ใช้ `vm-cpu-num`}}",
        "RAM": "{{ผู้ใช้ `vm-mem-size`}}",
        "RAM_reserve_all": จริง

        "boot_command": [
        "<esc><esc><esc><esc>จ<รอ>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "<เดล><เดล><เดล><เดล><เดล><เดล><เดล><เดล>",
        "ลินุกซ์ /casper/vmlinuz --- ติดตั้งอัตโนมัติ ds=\"nocloud-net;seedfrom=http://{{.HTTPIP}}:{{.HTTPPort}}/\"<ใส่><รอ>",
        "initrd /casper/initrd<ใส่><รอ>",
        "บูต <ป้อน>",
        "<ใส่><f10><รอ>"
      ]
      "boot_wait": "3 วินาที",
      "boot_order": "ดิสก์,ซีดีรอม",
      "คลัสเตอร์": "{{ผู้ใช้ `คลัสเตอร์`}}",
      "convert_to_template": "จริง",
      "datastore": "{{ผู้ใช้ `datastore`}}",
      "disk_controller_type": "pvscsi",
      "โฟลเดอร์": "{{ผู้ใช้ `โฟลเดอร์`}}",
      "guest_os_type": "ubuntu64Guest",
      "โฮสต์": "{{ผู้ใช้ `โฮสต์`}}",
      "http_directory": "http",
      "http_port_min" : "8000",
      "http_port_max" : "8000",
      "insecure_connection": "จริง",
      "iso_paths": ["{{ผู้ใช้ `iso-paths`}}"],
      "network_adapter": [
      {
          "เครือข่าย": "{{ผู้ใช้ `เครือข่าย`}}",
          "network_card": "vmxnet3"
      }
      ]
      "รหัสผ่าน": "{{ผู้ใช้ `vcenter-password`}}",
      "shutdown_command": "echo '{{user `ssh-username`}}' | sudo -S ปิด -P ทันที",
      "ssh_username": "{{ผู้ใช้ `ssh-ชื่อผู้ใช้`}}",
      "ssh_password": "{{ผู้ใช้ `ssh-password`}}",
      "ssh_timeout": "20 นาที",
      "ssh_handshake_attempts": "50",
      "พื้นที่จัดเก็บ": [
      {
          "disk_size": "{{ผู้ใช้ `vm-disk-1-size`}}",
          "disk_thin_provisioned": จริง
      }
      ]
      "ประเภท": "vsphere-iso",
      "ชื่อผู้ใช้": "{{ผู้ใช้ `vcenter-ชื่อผู้ใช้`}}",
      "vcenter_server": "{{ผู้ใช้ `vcenter-server`}}",
      "vm_name": "{{ผู้ใช้ `ชื่อ vm`}}"
    }
    ]
    "ผู้จัดเตรียม": [
    {
        "ประเภท": "เชลล์",
        "อินไลน์": ["curl -sSL https://raw.githubusercontent.com/vmware/cloud-init-vmware-guestinfo/master/install.sh | sudo sh -"]
    },
    {
        "ประเภท": "เชลล์",
        "อินไลน์": ["mkdir $HOME/.ssh && echo {{ user `ssh-key` }} > $HOME/.ssh/authorized_keys"]
    },
    {
        "ประเภท": "แก้ไขได้",
        "playbook_file": "../../ansible/packer.yml"
    },
    {
        "อินไลน์": [
        "echo 'การสร้างเทมเพลต Packer -- เสร็จสมบูรณ์'"
        ]
        "ประเภท": "เชลล์"
    }
    ]
}

ไฟล์ข้อมูลผู้ใช้ที่แจกจ่ายโดย Packer

#cloud-config
ติดตั้งอัตโนมัติ:
  รุ่น: 1
  ภาษา: en_US
  แพ็คเกจ:
    - เครื่องมือ open-vm
    - หลามเป็นงูหลาม3
    - คลาวด์เริ่มต้น
  แป้นพิมพ์:
    รูปแบบ: th
    ตัวแปร: เรา
  เครือข่าย:
    เครือข่าย:
      รุ่น: 2
      อีเธอร์เน็ต:
        ens192:
          dhcp4: จริง
          ตัวระบุ dhcp: mac
  พื้นที่จัดเก็บ:
    รูปแบบ:
      ชื่อ: lvm
  ตัวตน:
    ชื่อโฮสต์: อูบุนตู
    ชื่อผู้ใช้: อูบุนตู
    รหัสผ่าน: $6$rounds=4096$8dkK1P/oE$2DGKKt0wLlTVJ7USY.0jN9du8FetmEr51yjPyeiR.zKE3DGFcitNL/nF1l62BLJNR87lQZixObuXYny.Mf17K1
  ssh:
    ติดตั้งเซิร์ฟเวอร์: ใช่
  ข้อมูลผู้ใช้:
    ปิดการใช้งาน_root: เท็จ
  คำสั่งล่าช้า:
    - 'sed -i "s/dhcp4: true/&\n dhcp-identifier: mac/" /target/etc/netplan/00-installer-config.yaml'
    - echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu

สคริปต์การล้างข้อมูลที่เรียกใช้โดย Ansible allocationner

#!/bin/sh

ตั้ง -e

# cloud init: ย้ายไฟล์และเปลี่ยนสิทธิ์
#mv /tmp/cloud-init/* /etc/cloud/cloud.cfg.d/
chown -R root:root /etc/cloud/cloud.cfg.d/

# ล้างข้อมูล cloud-init
rm -rf /var/lib/cloud/*

ln -s /var/lib/cloud/instances /var/lib/cloud/instance.ln -s /var/lib/cloud/instances /var/lib/cloud/

# ล้างบันทึก cloud-init
rm -rf /var/log/cloud-init*

# ล้างไฟล์ tmp
rm -rf /tmp/cloud-init

truncate -s 0 /etc/machine-id

rm /var/lib/dbus/รหัสเครื่อง

ln -s /etc/machine-id /var/lib/dbus/machine-id

เทอร์ราฟอร์ม

main.tf

ทรัพยากร "vsphere_virtual_machine" "vm" {
  ชื่อ = "${var.hostname}"
  #resource_pool_id = "${data.vsphere_compute_cluster.cluster.resource_pool_id}"
  resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
  datastore_id = "${data.vsphere_datastore.datastore.id}"

  num_cpus = var.vm_cpus
  หน่วยความจำ = var.vm_ram

  guest_id = "${data.vsphere_virtual_machine.template.guest_id}"
  scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}"

  เชื่อมต่อเครือข่าย {
    network_id = "${data.vsphere_network.network.id}"
    adapter_type = "${data.vsphere_virtual_machine.template.network_interface_types[0]}"
  }

  ดิสก์ {
    ป้าย = "disk0"
    size = "${var.os_disk_size}"
    eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
    thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
  }

  "ดิสก์" แบบไดนามิก {
    for_each = var.data_disk ? [1] :[]
    เนื้อหา {
      #ฟิลด์ทั้งหมดในทรัพยากร vsphere_virtual_disk ไม่สามารถเปลี่ยนรูปได้ในขณะนี้ และบังคับให้มีทรัพยากรใหม่หากมีการเปลี่ยนแปลง
      ป้ายชื่อ = "disk1"
      แนบ = จริง
      เส้นทาง = "${vsphere_virtual_disk.data-disk[0].vmdk_path}"
      unit_number = 1
      datastore_id = "${data.vsphere_datastore.datastore.id}"
    }
  }

  extra_config = {
    "guestinfo.metadata" = base64gzip(templatefile("${path.module}/templates/metadata.tmpl", { ชื่อโฮสต์ = var.hostname }))
    "guestinfo.metadata.encoding" = "ฐาน 64"
    "guestinfo.userdata" = base64gzip(templatefile("${path.module}/templates/userdata.tmpl", {
        ชื่อโฮสต์ = var.ชื่อโฮสต์
        โดเมน = var.domain
    }))
    "guestinfo.userdata.encoding" = "ฐาน 64"
  }

  โคลน {
    template_uuid = "${data.vsphere_virtual_machine.template.id}"
  }
}

userdata.tmpl

#cloud-config

preserv_hostname: เท็จ
Manage_etc_hosts: จริง
prefer_fqdn_over_hostname: จริง
fqdn: "${ชื่อโฮสต์}.${โดเมน}"

เรียกใช้ cmd:
  - echo สวัสดี > /root/hello
  - แตะ /root/lol
Cloud-init v. 21.2-3-g899bfaa9-0ubuntu2~21.04.1 เสร็จสิ้นเมื่อวันอังคารที่ 28 กันยายน 2021 15:55:02 +0000 แหล่งข้อมูล DataSourceNone ขึ้น 19.12 วินาที
2021-09-28 15:55:02,449 - cc_final_message.py[คำเตือน]: ใช้แหล่งข้อมูลทางเลือก
Score:0
ธง fr

ปัญหาเฉพาะสำหรับ วีเอ็มแวร์ วีสเฟียร์. ในการแก้ไข:

rm -rf /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
rm -rf /etc/cloud/cloud.cfg.d/99-installer.cfg

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา