Windows 上の HashiCorp Packer で Ubuntu Server と Preseed
By takagiwa on Tuesday, February 8 2022, 21:18 - Linux - Permalink
動いた。Ubuntu(というか Xubuntu)Desktop では動かせていないものの、Ubuntu Server では素直に動いた。
ubuntuserver18.04.1.pkr.hcl
variable "build_directory" { default = "./build" } variable "boot_wait" { default = "10s" } variable "cpus" { default = 1 } variable "disk_size" { default = 50000 } variable "headless" { default = false } variable "http_directory" { default = "./http" } variable "iso_url" { type = string } variable "iso_checksum" { type = string } variable "memory" { default = 1024 } variable "username" { default = "vagrant" } variable "vm_name" { type = string } variable "provider_name" { default = "virtualbox" } variable "ssh_timeout" { default = "45m" } source "virtualbox-iso" "ubuntuserver18041" { boot_command = [ "<enter><wait>", "<esc><wait>", "<enter><wait>", "/install/vmlinuz<wait>", " file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz", " auto-install/enable=true", " debconf/priority=critical", " preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ubuntuserver18.04.1.cfg", " --- <wait>", "<enter><wait>" ] boot_wait = var.boot_wait cpus = var.cpus disk_size = var.disk_size guest_os_type = "Ubuntu_64" hard_drive_interface = "sata" headless = var.headless http_directory = var.http_directory iso_url = var.iso_url iso_checksum = var.iso_checksum memory = var.memory output_directory = "${var.build_directory}/packer-${var.provider_name}" shutdown_command = "echo '${var.username}' | sudo -S shutdown -P now" ssh_timeout = var.ssh_timeout ssh_username = var.username ssh_password = var.username vm_name = var.vm_name } build { sources = ["sources.virtualbox-iso.ubuntuserver18041"] }
ubuntuserver18.04.1.pkrvars.hcl
iso_url="file://f:/iso/ubuntu-18.04.1-server-amd64.iso" iso_checksum="md5:e8264fa4c417216f4304079bd94f895e" vm_name="UbuntuServer18.04.1" username="vagrant"
ubuntuserver18.04.1.cfg (仮)
d-i debian-installer/locale string en_US d-i console-setup/ask_detect boolean false d-i keyboard-configuration/xkb-keymap select us d-i netcfg/choose_interface select auto d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain d-i netcfg/wireless_wep string d-i mirror/country string manual d-i mirror/http/hostname string archive.ubuntu.com d-i mirror/http/directory string /ubuntu d-i mirror/http/proxy string d-i passwd/user-fullname string vagrant d-i passwd/username string vagrant d-i passwd/user-password password vagrant d-i passwd/user-password-again password vagrant d-i passwd/user-uid string 1000 d-i user-setup/allow-password-weak boolean true d-i user-setup/encrypt-home boolean false d-i clock-setup/utc boolean true d-i time/zone string US/Eastern d-i partman-auto/method string lvm d-i partman-lvm/device_remove_lvm boolean true d-i partman-md/device_remove_md boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true d-i partman-auto/choose_recipe select atomic d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true d-i partman-md/confirm boolean true d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true tasksel tasksel/first standard d-i pkgsel/include string openssh-server build-essential d-i pkgsel/update-policy select none d-i pkgsel/install-language-support boolean false d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i finish-install/reboot_in_progress note
cfg ファイルを http フォルダにおいて、
packer build --force -var-file=ubuntuserver18.04.1.pkrvars.hcl ubuntuserver18.04.1.pkr.hcl
で動いてくれた。内容とか適当で、言語とキーボードの選択がまだ残ってたのでいろいろと調整が必要。
インストールが終わると build フォルダに vmware 用のが出力されたので、この辺ももう少し調査がいるか。