Packer
Hashicorp Packer
Mit diesem Tool werden Images unterschiedlichster Art gebaut: Docker, AMI, VMWare, Virtualbox, ...
Getting Started
Packer besteht - Hashicorp typisch - nur aus einzigen Executable - somit keine Library-Abhängigkeiten - download, unzip and ready to use :-)
Ich verwende hier einen Windows-Rechner mit installiertem VirtualBox.
Mit dieser Beschreibung in der Datei ubuntu-14.04.json (hier findet man Ubuntu-Images)
{
"builders": [
{
"type": "virtualbox-iso",
"guest_os_type": "Ubuntu_64",
"iso_checksum": "946a6077af6f5f95a51f82fdc44051c7aa19f9cfc5f737954845a6050543d7c2",
"iso_url": "http://old-releases.ubuntu.com/releases/14.04.1/ubuntu-14.04.1-server-amd64.iso",
"iso_checksum_type": "sha256",
"output_directory": "output-ubuntu-14.04",
"vm_name": "ubuntu-14.04",
"disk_size": 15000,
"headless": "true",
"http_directory": "http",
"boot_wait": "10s",
"boot_command": [
"<esc><wait>",
"<esc><wait>",
"<enter><wait>",
"/install/vmlinuz<wait>",
" initrd=/install/initrd.gz",
" auto-install/enable=true",
" debconf/priority=critical",
" preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg<wait>",
" -- <wait>",
"<enter><wait>"
],
"ssh_timeout": "60m",
"ssh_username": "ubuntu",
"ssh_password": "ubuntu",
"shutdown_command": "sudo systemctl poweroff",
"vboxmanage": [
["modifyvm", "{{.Name}}", "--memory", 512],
["modifyvm", "{{.Name}}", "--cpus", 1]
]
}
],
"provisioners": [
]
} ```
und der Datei `preseed.cfg` im Unterverzeichnis `http` mit folgendem InhaltPreseeding only locale sets language, country and locale.
d-i debian-installer/locale string en_US
Keyboard selection.
d-i console-setup/ask_detect boolean false d-i keyboard-configuration/xkb-keymap select us
choose-mirror-bin mirror/http/proxy string
Clock and time zone setup
d-i clock-setup/utc boolean true d-i time/zone string UTC
Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note
This is fairly safe to set, it makes grub install automatically to the MBR
if no other operating system is detected on the machine.
d-i grub-installer/only_debian boolean true
This one makes grub-installer install to the MBR if it also finds some other
OS, which is less safe as it might not be able to boot that other OS.
d-i grub-installer/with_other_os boolean true
Mirror settings
If you select ftp, the mirror/country string does not need to be set.
d-i mirror/country string manual d-i mirror/http/directory string /ubuntu/ d-i mirror/http/hostname string archive.ubuntu.com d-i mirror/http/proxy string
Partitioning
d-i partman-auto/method string lvm
This makes partman automatically partition without confirmation.
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
Account setup
d-i passwd/user-fullname string vagrant d-i passwd/user-uid string 1000 d-i passwd/user-password password vagrant d-i passwd/user-password-again password vagrant d-i passwd/username string vagrant
The installer will warn about weak passwords. If you are sure you know
what you're doing and want to override it, uncomment this.
d-i user-setup/allow-password-weak boolean true d-i user-setup/encrypt-home boolean false
Package selection
tasksel tasksel/first standard d-i pkgsel/include string openssh-server build-essential d-i pkgsel/install-language-support boolean false
disable automatic package updates
d-i pkgsel/update-policy select none d-i pkgsel/upgrade select full-upgrade
packer build ubuntu-14.04.json
Last updated
Was this helpful?