# MSVSphere Cloud Images [Packer](https://www.packer.io/) templates and configuration files for building MSVSphere images for various cloud platforms. ## Build environment configuration Supported operating systems: * MSVSphere 9 and other EL9-compatible distributions * Fedora Follow the Packer installation [instructions](https://developer.hashicorp.com/packer/downloads?product_intent=packer). Alternatively, you can install a Packer binary from a Yandex [mirror](https://hashicorp-releases.yandexcloud.net/packer/): just download a latest version archive and unzip it somewhere in PATH (e.g. `~/.local/bin`). Verify that Packer works: ```shell $ packer version Packer v1.9.1 ``` In order to install required Packer plugins run the following command in the project root: ```shell $ packer init -upgrade . ``` Dependently on your network configuration, you may also need to open the 8000-9000 TCP port range so that Packer can serve kickstart files to VMs: ```shell $ firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent $ firewall-cmd --reload ``` You will also need to install either QEMU/KVM or VirtualBox or VMWare Workstation, depending on what types of images you are going to build. For VirtualBox and VMWare Workstation just follow the official site instructions. The QEMU/KVM installation instructions are provided below: ```shell $ dnf install @virtualization $ dnf install edk2-ovmf ``` ## Building images In order to build an image use the following command syntax: ```shell $ packer build -only=${BUILDER}.${CONFIGURATION} . ``` where `${BUILDER}` is a Packer builder (e.g. `virtualbox-iso`) and `${CONFIGURATION}` is an image configuration name (e.g. `msvsphere-9-vagrant-x86_64`). A graphical VM console is disabled by default, but you can enable it for debugging purposes by setting the `headless` variable to `false`: ```shell $ packer build -only=vmware-iso.msvsphere-9-vagrant-x86_64 \ -var headless=false . ``` See the [variables.pkr.hcl](variables.pkr.hcl) file for other supported variables. ### Building Generic Cloud images Generic Cloud image build command: ```shell $ packer build -only=qemu.msvsphere-9-gencloud-x86_64 . ``` ### Building Vagrant boxes VirtualBox Vagrant box build command: ```shell $ packer build -only=virtualbox-iso.msvsphere-9-vagrant-x86_64 . ``` VMWare Vagrant box build command: ```shell $ packer build -only=vmware-iso.msvsphere-9-vagrant-x86_64 . ``` ## License Licensed under the MIT license, see the [LICENSE](LICENSE) file for details.