Attempting to use installerconfig for FreeBSD 15
This commit is contained in:
@@ -14,57 +14,12 @@ source "proxmox-iso" "freebsd-15" {
|
|||||||
vm_id = "210"
|
vm_id = "210"
|
||||||
boot_wait = "5s"
|
boot_wait = "5s"
|
||||||
boot_key_interval = "200ms"
|
boot_key_interval = "200ms"
|
||||||
boot_command = ["<enter>",
|
boot_command = ["2<wait10s>", # boot to single-user mode
|
||||||
"<wait10s>", # wait for boot to finish
|
"/bin/sh<enter><wait2s>", # open a shell
|
||||||
"<enter><wait1s>", # begin installation
|
"mdmfs -s 100m md /tmp<enter><wait2s>", # mount a writable /tmp memory disk
|
||||||
"<enter><wait1s>", # keymap
|
"dhclient vtnet0<enter><wait5>", # bring up network (adjust interface: em0, vtnet0, etc.)
|
||||||
"freebsd<enter><wait1s>", # hostname
|
"fetch -o /tmp/installerconfig http://{{ .HTTPIP }}:{{ .HTTPPort }}/freebsd-15-installerconfig<enter><wait5s>", # grab the installerconfig
|
||||||
"<enter><wait1s>",
|
"bsdinstall script /tmp/installerconfig<enter>" # execute bsdinstall with fetched config
|
||||||
"<enter><wait1s>",
|
|
||||||
"<enter><wait1s>",
|
|
||||||
"<enter><wait15s>", # wait for network to come up
|
|
||||||
"<enter><wait3s>", # wait for disk detection
|
|
||||||
"<enter><wait1s>",
|
|
||||||
"<enter><wait1s>",
|
|
||||||
" <wait1s><enter><wait1s>", # select disk
|
|
||||||
"<left><enter><wait5s>", # confirm disk destroy
|
|
||||||
"<enter><wait120s>", # install base system
|
|
||||||
"packer<tab>packer<enter><wait3s>", # root password
|
|
||||||
"<down><down><enter><wait1s>", # timezone region
|
|
||||||
"95<up><enter><wait10s>", # timezone selection
|
|
||||||
"<enter><wait10s>",
|
|
||||||
"<enter><wait10s>",
|
|
||||||
"<enter><wait10s>",
|
|
||||||
"<enter><wait10s>",
|
|
||||||
"<down><down><down> <enter><wait1s>",
|
|
||||||
"<down><down><down><down><down><down><down><down> <enter><wait1s>",
|
|
||||||
"<enter><wait2s>",
|
|
||||||
"<enter><wait1s>",
|
|
||||||
"xadmin<enter>", # break-glass username
|
|
||||||
"Remote admin user<enter>", # break-glass name
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"wheel<enter>", # break-glass group (wheel
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"packer<enter>", # break-glass password
|
|
||||||
"packer<enter>", # break-glass password confirm
|
|
||||||
"<enter>",
|
|
||||||
"<enter>",
|
|
||||||
"<enter><wait1s>",
|
|
||||||
"<enter><wait1s>",
|
|
||||||
"<left><enter><wait1s>", # open post-install shell
|
|
||||||
"pkg install -y qemu-guest-agent sudo<enter><wait30s>", # install qemu-guest-agent package for Proxmox
|
|
||||||
"echo 'xadmin ALL=(ALL:ALL) NOPASSWD:ALL' > /usr/local/etc/sudoers.d/xadmin<enter><wait1s>", # allow xadmin to sudo
|
|
||||||
"sysrc qemu_guest_agent_enable=YES<enter><wait1s>", # enable QEMU guest agent
|
|
||||||
"exit<enter><wait1s>", # exit shell
|
|
||||||
"<enter>" # reboot
|
|
||||||
]
|
]
|
||||||
|
|
||||||
os = "other"
|
os = "other"
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
# ==============================================================================
|
||||||
|
# FreeBSD bsdinstall Scripting Configuration
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
# 1. System & Partitioning Defaults
|
||||||
|
KEYMAP="us.kbd"
|
||||||
|
HOSTNAME="freebsd"
|
||||||
|
DISTRIBUTIONS="kernel.txz base.txz"
|
||||||
|
|
||||||
|
# Guided ZFS Installation Parameters
|
||||||
|
# Note: Adjust 'da0' below if your hypervisor uses vtbd0 or ada0!
|
||||||
|
ZFSBOOT_DISKS="da0"
|
||||||
|
ZFSBOOT_VDEV_TYPE="stripe"
|
||||||
|
ZFSBOOT_CONFIRM_POOL_CREATE="YES"
|
||||||
|
|
||||||
|
# Timezone Configuration (US/Eastern)
|
||||||
|
TIMEZONE="America/New_York"
|
||||||
|
|
||||||
|
# Enabling Services (local_unbound, sshd, etc.)
|
||||||
|
# Maps to your service choices during setup
|
||||||
|
bsdinstall_services="sshd local_unbound"
|
||||||
|
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Post-Installation Shell Script (Runs automatically in chroot)
|
||||||
|
# ==============================================================================
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Network configuration for the installed system
|
||||||
|
echo 'ifconfig_DEFAULT="DHCP"' >> /etc/rc.conf
|
||||||
|
|
||||||
|
# Set Root Password ('packer')
|
||||||
|
echo "packer" | pw usermod root -h 0
|
||||||
|
|
||||||
|
# Create 'xadmin' user in 'wheel' group with password 'packer'
|
||||||
|
echo "packer" | pw useradd xadmin \
|
||||||
|
-c "Remote admin user" \
|
||||||
|
-g wheel \
|
||||||
|
-m \
|
||||||
|
-s /bin/sh \
|
||||||
|
-h 0
|
||||||
|
|
||||||
|
# Install Packages (qemu-guest-agent, sudo)
|
||||||
|
# ASSUMPTION: The system has internet access during post-install
|
||||||
|
env ASSUME_ALWAYS_YES=YES pkg install -y qemu-guest-agent sudo
|
||||||
|
|
||||||
|
# Sudoers configuration for xadmin
|
||||||
|
mkdir -p /usr/local/etc/sudoers.d
|
||||||
|
echo 'xadmin ALL=(ALL:ALL) NOPASSWD:ALL' > /usr/local/etc/sudoers.d/xadmin
|
||||||
|
chmod 0440 /usr/local/etc/sudoers.d/xadmin
|
||||||
|
|
||||||
|
# Enable QEMU Guest Agent service
|
||||||
|
sysrc qemu_guest_agent_enable="YES"
|
||||||
|
|
||||||
|
# Finalize and reboot system
|
||||||
|
reboot
|
||||||
Reference in New Issue
Block a user