diff --git a/http/msvsphere-9-gencloud.aarch64.ks b/http/msvsphere-9-gencloud.aarch64.ks new file mode 100644 index 0000000..b8139df --- /dev/null +++ b/http/msvsphere-9-gencloud.aarch64.ks @@ -0,0 +1,76 @@ +# MSVSphere 9 Generic Cloud image kickstart file + +url --url https://rsync.inferitos.ru/msvsphere/9.5/BaseOS/aarch64/kickstart/ +repo --name=BaseOS --baseurl=https://rsync.inferitos.ru/msvsphere/9.5/BaseOS/aarch64/os/ +repo --name=AppStream --baseurl=https://rsync.inferitos.ru/msvsphere/9.5/AppStream/aarch64/os/ + +text +skipx +eula --agreed +firstboot --disabled + +lang C.UTF-8 +keyboard us +timezone UTC --utc + +network --bootproto=dhcp +firewall --enabled --service=ssh +services --disabled="kdump" --enabled="chronyd,rsyslog,sshd" +selinux --enforcing + +bootloader --timeout=1 --location=mbr --append="console=tty0 console=ttyS0,115200n8 no_timer_check crashkernel=auto net.ifnames=0" + +%pre --erroronfail + +parted -s -a optimal /dev/sda -- mklabel gpt +parted -s -a optimal /dev/sda -- mkpart biosboot 1MiB 2MiB set 1 bios_grub on +parted -s -a optimal /dev/sda -- mkpart '"EFI System Partition"' fat32 2MiB 202MiB set 2 esp on +parted -s -a optimal /dev/sda -- mkpart boot ext4 202MiB 714MiB +parted -s -a optimal /dev/sda -- mkpart root ext4 714MiB 100% + +%end + +part biosboot --fstype=biosboot --onpart=sda1 +part /boot/efi --fstype=efi --onpart=sda2 +part /boot --fstype=ext4 --onpart=sda3 +part / --fstype=ext4 --onpart=sda4 + +rootpw --plaintext msvsphere + +reboot --eject + + +%packages --inst-langs=en +@core +dracut-config-generic +usermode +-biosdevname +-dnf-plugin-spacewalk +-dracut-config-rescue +-iprutils +-iwl*-firmware +-langpacks-* +-mdadm +-open-vm-tools +-plymouth +-rhn* +-nfs-utils +-rpcbind +sphere-release-identity-server +sphere-release-server +sphere-release +%end + + +# disable kdump service +%addon com_redhat_kdump --disable +%end + +%post --erroronfail + +grub2-install --target=i386-pc /dev/sda + +# permit root login via SSH with password authetication +echo "PermitRootLogin yes" > /etc/ssh/sshd_config.d/01-permitrootlogin.conf + +%end diff --git a/msvsphere-9-gencloud.pkr.hcl b/msvsphere-9-gencloud.pkr.hcl index 723291b..2f275ce 100644 --- a/msvsphere-9-gencloud.pkr.hcl +++ b/msvsphere-9-gencloud.pkr.hcl @@ -37,10 +37,45 @@ source "qemu" "msvsphere-9-gencloud-x86_64" { ] } +source "qemu" "msvsphere-9-gencloud-aarch64" { + iso_url = var.iso_url_9_aarch64 + iso_checksum = var.iso_checksum_9_aarch64 + http_directory = var.http_directory + shutdown_command = var.root_shutdown_command + ssh_username = var.gencloud_ssh_username + ssh_password = var.gencloud_ssh_password + ssh_timeout = var.ssh_timeout + boot_command = var.gencloud_boot_cmd_9_aarch64_uefi + boot_wait = var.boot_wait + accelerator = "kvm" + firmware = var.aavmf_code + use_pflash = false + disk_interface = "virtio-scsi" + disk_size = var.gencloud_disk_size + disk_cache = "unsafe" + disk_discard = "unmap" + disk_detect_zeroes = "unmap" + disk_compression = true + format = "qcow2" + headless = var.headless + machine_type = "virt,gic-version=max" + memory = var.memory_aarch64 + net_device = "virtio-net" + qemu_binary = var.qemu_binary + vm_name = "MSVSphere-${var.os_version_9}-${formatdate("YYYYMMDD", timestamp())}.gencloud.aarch64.qcow2" + cpu_model = "host" + cpus = var.cpus + qemuargs = [ + ["-boot", "strict=on"], + ["-monitor", "none"], + ] +} + build { sources = [ - "qemu.msvsphere-9-gencloud-x86_64" + "qemu.msvsphere-9-gencloud-x86_64", + "qemu.msvsphere-9-gencloud-aarch64" ] provisioner "ansible" { diff --git a/variables.pkr.hcl b/variables.pkr.hcl index a0b6e18..8de6b08 100644 --- a/variables.pkr.hcl +++ b/variables.pkr.hcl @@ -39,6 +39,12 @@ variable "iso_url_9_x86_64" { default = "https://repo1.msvsphere-os.ru/msvsphere/9/isos/x86_64/MSVSphere-9.5-x86_64-netinstall.iso" } +variable "iso_url_9_aarch64" { + description = "MSVSphere 9 aarch64 installation ISO URL" + type = string + default = "https://repo1.msvsphere-os.ru/msvsphere/9/isos/aarch64/MSVSphere-9.5-aarch64-netinstall.iso" +} + variable "iso_url_8_x86_64" { description = "MSVSphere 8 x86_64 installation ISO URL" type = string @@ -63,6 +69,12 @@ variable "iso_checksum_9_x86_64" { default = "file:https://repo1.msvsphere-os.ru/msvsphere/9/isos/x86_64/MSVSphere-9.5-x86_64-netinstall.iso.CHECKSUM" } +variable "iso_checksum_9_aarch64" { + description = "MSVSphere 9 aarch64 installation ISO checksum" + type = string + default = "file:https://repo1.msvsphere-os.ru/msvsphere/9/isos/aarch64/MSVSphere-9.5-aarch64-netinstall.iso.CHECKSUM" +} + variable "iso_checksum_8_x86_64" { description = "MSVSphere 8 x86_64 installation ISO checksum" type = string @@ -313,6 +325,27 @@ variable "gencloud_boot_cmd_9_x86_64_uefi" { ] } +variable "gencloud_boot_cmd_9_aarch64_uefi" { + description = "The boot command for aarch64 VMs in UEFI mode" + + type = list(string) + + default = [ + "e", + "", + "e", + "", + "biosdevname=0", + "", + "net.ifnames=0", + "", + "inst.text", + "", + " inst.ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/msvsphere-9-gencloud.aarch64.ks", + "x", + ] +} + variable "gencloud_boot_cmd_8_x86_64_uefi" { description = "The boot command for x86_64 VMs in UEFI mode" type = list(string)