所以我有一個奇怪的問題:我正在使用打包程式在 VirtualBox 中自動安裝 Ubuntu Server 20.04。我正在遵循這個例子: https://nickcharlton.net/posts/automating-ubuntu-2004-installs-with-packer.html
昨天,當我第一次嘗試它時,它就像一個魅力,打包程式甚至能夠透過 SSH 連接到安裝後創建的虛擬機器。然後我又嘗試了一次(稍作改變),它就停止工作了。從那以後我就無法讓它再次工作了。使用者資料不再加載,安裝程式使用 GUI 運行,詢問問題,就好像沒有運行自動安裝一樣。我已經確認(透過中止安裝然後 Alt+F2 ->curl -lshttp://10.0.2.2:Packerport)虛擬機器可以存取加殼程式的 http 目錄,並且那裡有使用者資料和元資料檔案。
怎麼可能曾經有效,然後就失效了呢?我勒個去?我使用與範例中相同的引導命令。我已確認在 vm-boot-up 期間正確設定了 bootcommand。我的用戶資料包含以下內容:
#cloud-config
autoinstall:
version: 1
identity:
hostname: test_vm
password: $6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0
username: testmann
locale: de_DE.UTF-8
keyboard:
layout: de
early-commands:
# otherwise packer tries to connect and exceed max attempts:
- systemctl stop ssh
ssh:
install-server: true
答案1
我終於能夠透過向引導命令提供以下附加語句來修復它:
cloud-config-url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/user-data
我現在的整個啟動命令是:
boot_command = [
"<enter><wait><enter><f6><esc><wait> ",
"autoinstall<wait>",
" cloud-config-url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/user-data<wait>",
" ds='nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/'",
"<wait5><enter>"
]