Virtual machine
In this section, we describe how to create a virtual machine (VM) in Open Virtual Appliance (OVA) format with the Wazuh server, dashboard, and indexer components pre-installed. The wazuh-virtual-machines/ova/generate_ova.sh
script automates the creation of the VM. The VM works with any hypervisor, allowing quick setup of a single-node Wazuh deployment.
Requirements
You need a system with a minimum of 4 CPU cores and 8 GB of RAM to build the virtual machine. Ensure that these dependencies are installed on the system:
Creating the Wazuh VM
Follow the steps below to create the Wazuh virtual machine:
Clone the wazuh-virtual-machines repository and navigate to the
ova/
directory. Select the version, for example,v4.12.0
.$ git clone https://github.com/wazuh/wazuh-virtual-machines && cd wazuh-virtual-machines/ova/ && git checkout v4.12.0
Execute the
generate_ova.sh
script to create the VM.$ ./generate_ova.sh
. . . Exporting ova 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Successfully exported 1 machine(s). ==> default: Destroying VM and associated drives... wazuh-4.11.1.ovf wazuh-4.11.1-disk001.vmdk Setting up ova for VMware ESXi Standardizing OVA Setting OVA to default wazuh-4.11.1.ovf wazuh-4.11.1-disk001.vmdk OVF extracted mv: '/home/ubuntu/wazuh-virtual-machines/ova/new-ova/wazuh-4.11.1.ovf' and '/home/ubuntu/wazuh-virtual-machines/ova/new-ova/wazuh-4.11.1.ovf' are the same file Files renamed OVF Version changed OVF Size changed Manifest changed wazuh-4.11.1.ovf wazuh-4.11.1-disk-1.vmdk wazuh-4.11.1.mf New OVA created Cleaned temporary directory Process finished . . .
The above command builds a VM with Wazuh central components. It uses production packages by default. If you are building a pre-release version, you must select the development package dev
instead.
$ ./generate_ova.sh -r dev
The -r
or --repository
option selects the stage to use for the packages. For example:
prod
: Packages released for production environments.dev
: Pre-release packages for testing and development purposes.
The generated virtual machine can be found in the /wazuh-virtual-machines/ova/output
directory in .ova
format.
Run the following command to check all available options:
$ ./generate_ova.sh -h
Usage: packages/generate_package.sh [OPTIONS]
-b, --branch <branch> [Optional] Select Git branch.
-t, --target <target> [Required] Target package to build: manager or agent.
-a, --architecture <arch> [Optional] Target architecture of the package [amd64/i386/ppc64le/arm64/armhf].
-j, --jobs <number> [Optional] Change number of parallel jobs when compiling the manager or agent. By default: 2.
-r, --revision <rev> [Optional] Package revision. By default: 0.
-s, --store <path> [Optional] Set the destination path of package. By default, an output folder will be created.
-p, --path <path> [Optional] Installation path for the package. By default: /var/ossec.
-d, --debug [Optional] Build the binaries with debug symbols. By default: no.
-c, --checksum [Optional] Generate checksum on the same directory than the package. By default: no.
-l, --legacy [Optional only for RPM] Build package for CentOS 5.
--dont-build-docker [Optional] Locally built docker image will be used instead of generating a new one.
--tag [Optional] Tag to use with the docker image.
--sources <path> [Optional] Absolute path containing wazuh source code. This option will use local source code instead of downloading it from GitHub. By default use the script path.
--is_stage [Optional] Use release name in package.
--system [Optional] Select Package OS [rpm, deb]. By default is 'deb'.
--src [Optional] Generate the source package in the destination directory.
--future [Optional] Build test future package x.30.0 Used for development purposes.
-h, --help Show this help.