|
|
|
# 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.
|