ปัญหา
TLDR: ฉันได้ทำเช่นนี้กับ AutoInstall ส่วนใหญ่แล้ว (ฉันคิดว่า?) แต่มันยังคงแสดงการติดตั้ง GUI หลังจากที่ผ่าน AutoInstall แล้ว กำลังมองหาข้อมูลว่าทำไมมันถึงแสดง GUI ขึ้นมา /TLDR
เวอร์ชันที่ยาวขึ้น: ฉันกำลังพยายามหาวิธีปรับใช้ Ubuntu (และในที่สุด distros อื่น ๆ ) กับ Proxmox โดยใช้ Hashicorp Packer ฉันมีการตั้งค่าและใช้งาน configs ส่วนใหญ่แล้ว... "ปรับใช้" สำเร็จแล้ว แต่ไม่สามารถตั้งค่าเริ่มต้นให้เสร็จสิ้นได้ มันยังคงดำเนินการติดตั้งอัตโนมัติ แต่จากนั้นก็ยังนำการติดตั้ง GUI ขึ้นมา จากการก้าวผ่าน GUI ด้วยตนเอง หลังจากเสร็จสิ้นส่วนการติดตั้งอัตโนมัติแล้ว ดูเหมือนว่าทุกอย่างจะถูกกรอกเรียบร้อยแล้ว (ลบส่วนข้อมูลประจำตัวผู้ใช้ เช่น ชื่อเต็ม/ชื่อผู้ใช้/อื่นๆ) ดูเหมือนว่าไม่จำเป็นต้องหา IP addr ด้วยซ้ำ เช่น เมื่อคุณผ่านแค่ GUI ฉันคิดว่า DHCP ทำงานได้ดีใช่ไหม
ฉันได้ลองดูคำถามที่คล้ายกันสองสามข้อแล้ว แต่วิธีแก้ปัญหาของพวกเขายังไม่ได้ผลสำหรับฉัน (ยัง)
ทฤษฎี
ฉันมีทฤษฎีสองสามทฤษฎี แต่ดูเหมือนว่าไม่มีทฤษฎีใดที่ออกมาถูกต้องเลย หรือฉันไม่แน่ใจว่าจะทดสอบอย่างไร
- ฉันลืมบางอย่างใน
ข้อมูลผู้ใช้
(yaml) และพยายามดึง GUI ขึ้นมาเพราะเหตุนี้
- ฉันไม่มีพารามิเตอร์การกำหนดค่าบางอย่างในไฟล์
.pkr.hcl
ไฟล์ที่จำเป็นสำหรับ proxmox เพื่อตั้งค่า vm อย่างถูกต้องหรือไม่
- มีบางอย่างแปลก ๆ กับเวอร์ชัน Ubuntu ที่ฉันใช้ บางทีฉันอาจต้องการ ISO อื่น แต่เท่าที่อ่านมาบอกว่า. Cloud-init คุณสมบัติเพียงแค่แลกเปลี่ยนมรดก
preseed.cfg
สำหรับ ข้อมูลผู้ใช้
(yaml) ดังนั้นฉันจึงสงสัยเกี่ยวกับทฤษฎีนี้
- ฉันต้องตั้งค่าคุณลักษณะเคอร์เนลบางอย่างหรือไม่ จริง ๆ แล้วไม่แน่ใจว่าจะเริ่มตรงไหนดี ฉันก็ค่อนข้างแน่ใจว่าถ้าเป็นกรณีนี้ ฉันคงได้เห็นบางอย่างเกี่ยวกับมันที่อื่น แต่เดี๋ยวก่อน บางทีฉันอาจจะดูผิดที่รึเปล่า?
- เดอะ
ข้อมูลผู้ใช้
ไม่ได้โหลดไฟล์ลงใน Ubuntu อย่างถูกต้องหรือไม่
ผลลัพธ์ที่คาดหวัง
- หากคุณรู้จักซอสวิเศษโปรดช่วยฉันด้วย :)
- หากคุณรู้วิธีทำให้ Ubuntu 20.04 เปลี่ยนเส้นทางบันทึกบางส่วนระหว่างการติดตั้ง เพื่อให้ฉันสามารถมองลึกลงไปได้ นั่นจะดีมาก! เหมือนกันสำหรับการบันทึก packer ที่ดีขึ้น (นอกเหนือจาก
-debug
ฉันได้ลองแล้ว) ฉันพยายามแล้ว /var/log/ตัวติดตั้ง
แต่ฉันไม่คิดว่าฉันมีความเข้าใจที่ชัดเจนเกี่ยวกับสิ่งที่เกิดขึ้น แต่ฉันไม่เห็นความล้มเหลวใดๆ นอกจากข้อผิดพลาดของคีย์ SSH และฉันไม่เห็นข้อบ่งชี้ใดๆ ข้อมูลผู้ใช้
ดาวน์โหลดหรือดาวน์โหลดไม่สำเร็จ
- หากคุณมีความคิดเห็นเกี่ยวกับวิธีทดสอบทฤษฎีบางอย่างของฉัน หรือทฤษฎีอื่นๆ ฉันชอบที่จะรับฟังพวกเขา!
- หากคุณเห็นว่าฉันทำอะไรผิดในไฟล์ปรับแต่งด้านล่าง โปรดชี้ให้เห็น! ฉันพยายามทำสิ่งนี้ใน SILO มา 2-3 วันแล้ว และกำลังเผชิญกับกำแพง ฉันไม่รู้ว่าจะเอาชนะได้อย่างไร
การอัปเดต (กำลังดำเนินการ)
- พบ
เมล็ดจาก http://192.168.0.144:80/user-data ไม่รองรับโดย DataSourceNoCloud [seed=None][dsmode=net]
ใน /var/log/cloud-init.log
ดูว่าทำไมมันถึงกลับมา คำแนะนำใด ๆ ที่จะได้รับการชื่นชม :)
- โอเค ฉันทราบแล้วว่าทำไมข้อผิดพลาดข้างต้นจึงเกิดขึ้น ดูเหมือนว่าข้อผิดพลาดจะอยู่ในรูปแบบ YAML ไม่ถูกต้อง ฉันเพิ่งทิ้งไฟล์ลงในฟอร์แมตเตอร์ YAML จากนั้นคัดลอกและวางกลับเข้าไปในไฟล์เป้าหมายของฉัน
- ตอนนี้ข้อผิดพลาดคือไฟล์ YAML ที่โหลดว่างเปล่า
/var/lib/cloud/seed/nocloud/user-data
อีกครั้งฉันขอขอบคุณคำแนะนำใด ๆ :)
คำใบ้
หากคุณเจ๋งพอที่จะลองจำลองสิ่งนี้ หรือหากคุณพบสิ่งนี้หลังจากที่ (หวังว่า) ได้รับคำตอบแล้ว ให้ทำให้ชีวิตของคุณง่ายขึ้นโดยใช้ ตัวอย่าง auto.pkrvars.hcl
ไฟล์.
รุ่น
พรอกซ์ม็อกซ์: Proxmox VE 7.1-4
หน้าต่าง: วินโดวส์ 10 โปร : 10.0.19043.0
แพ็คเกอร์: 1.7.10
Example.pkr.hcl
ผู้บรรจุหีบห่อ {
ปลั๊กอินที่จำเป็น {
พร็อกม็อกซ์ = {
รุ่น = " >= 1.0.1"
ที่มา = "github.com/hashicorp/proxmox"
}
}
}
แหล่งที่มา "proxmox-iso" "proxmox-ubuntu-20" {
proxmox_url = "https://proxmox.lan:8006/api2/json"
vm_name = "แพ็คเกอร์อูบุนตู-20"
iso_url = "http://iso.repo.lan/ubuntu-20.04.3-live-server-amd64.iso"
iso_checksum = "f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98"
ชื่อผู้ใช้ = "${var.pm_user}"
รหัสผ่าน = "${var.pm_pass}"
โทเค็น = "${var.pm_token}"
โหนด = "proxmox"
iso_storage_pool = "ในเครื่อง"
ssh_username = "${var.ssh_user}"
ssh_password = "${var.ssh_pass}"
ssh_timeout = "20m"
ssh_pty = จริง
ssh_handshake_attempts = 20
boot_wait = "5 วินาที"
http_directory = "http" # เริ่มเซิร์ฟเวอร์ http ในเครื่อง ให้บริการไฟล์ Preseed
boot_command = [
"<esc><รอ><esc><รอ><f6><รอ><esc><รอ>",
"<bs><bs><bs><bs><bs>",
"ip=${cidrhost("192.168.0.0/24", 9)}::${cidrhost("192.168.0.0/24", 1)}:${cidrnetmask("192.168.0.0/24")}: :::${cidrhost("192.168.0.0/24", 1)} ",
"ติดตั้งอัตโนมัติ ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/",
"---<ป้อน>"
]
ไม่ปลอดภัย_skip_tls_verify = จริง
template_name = "packer-ubuntu-20"
template_description = "packer สร้าง ubuntu-20.04.3-server-amd64"
unmount_iso = จริง
พูล = "แพ็คเกอร์"
หน่วยความจำ = 4096
แกน = 1
ซ็อกเก็ต = 1
ระบบปฏิบัติการ = "l26"
qemu_agent = จริง
cloud_init = จริง
#scsi_controller = "virtio-scsi-pci"
ดิสก์ {
พิมพ์ = "scsi"
disk_size = "30G"
storage_pool = "local-lvm"
storage_pool_type = "lvm"
รูปแบบ = "ดิบ"
}
อะแดปเตอร์เครือข่าย {
บริดจ์ = "vmbr0"
รุ่น = "virtio"
ไฟร์วอลล์ = จริง
#vlan_tag = 1
}
}
สร้าง {
แหล่งที่มา = ["source.proxmox-iso.proxmox-ubuntu-20"]
ผู้จัดเตรียม "เชลล์" {
อินไลน์ = [
"ในขณะที่ [ ! -f /var/lib/cloud/instance/boot-finished ]; ทำ echo 'Waiting for cloud-init...'; sleep 1; done",
"ล/"
]
}
}
vars.pkr.hcl
ตัวแปร "pm_user" {
พิมพ์ = สตริง
คำอธิบาย = "ชื่อผู้ใช้ Proxmox"
ค่าเริ่มต้น = "packer@pam!<api-tag>"
}
ตัวแปร "pm_pass" {
พิมพ์ = สตริง
คำอธิบาย = "รหัสผ่านผู้ใช้ Proxmox"
ค่าเริ่มต้น = "ผู้บรรจุหีบห่อ"
}
ตัวแปร "pm_token" {
พิมพ์ = สตริง
คำอธิบาย = "โทเค็น Proxmox API"
}
ตัวแปร "ssh_user" {
พิมพ์ = สตริง
คำอธิบาย = "ผู้ใช้ SSH"
ค่าเริ่มต้น = "ผู้บรรจุหีบห่อ"
}
ตัวแปร "ssh_pass" {
พิมพ์ = สตริง
คำอธิบาย = "รหัสผ่าน SSH"
ค่าเริ่มต้น = "ผู้บรรจุหีบห่อ"
}
ตัวแปร "vm_name" {
พิมพ์ = สตริง
คำอธิบาย = "ชื่อ VM"
ค่าเริ่มต้น = "packer_hostname"
}
http/ข้อมูลผู้ใช้
ติดตั้งอัตโนมัติ:
รุ่น: 1
ภาษา: en_US.UTF-8
แป้นพิมพ์:
รูปแบบ: th
ตัวแปร: เรา
ตัวตน:
ชื่อโฮสต์: packer-ubuntu-20
รหัสผ่าน: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0" #ubuntu
ชื่อผู้ใช้: อูบุนตู
ชื่อจริง: อูบุนตู
โปรแกรมติดตั้งรีเฟรช:
อัปเดต: เท็จ
ssh:
ติดตั้งเซิร์ฟเวอร์: ใช่
อนุญาต pw: ใช่
แพ็คเกจ:
- qemu-แขก-ตัวแทน
พื้นที่จัดเก็บ:
รูปแบบ:
ชื่อ: โดยตรง
แลกเปลี่ยน:
ขนาด: 0
แหล่งที่มา
https://www.aeralls.eu/posts/ubuntu-server-2004-image-packer-subiquity-for-proxmox/
https://ubuntu.com/server/docs/install/autoinstall-reference
https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html
https://cloudinit.readthedocs.io/en/latest/topics/modules.html#write-files
https://cloudalbania.com/posts/2022-01-homelab-with-proxmox-and-packer/