tool_reqs - OpenNebula/one-apps GitHub Wiki
Requirements
Build system
Any Linux distribution can be used to build the contextualization packages and appliances. However, it is probably easier to meet the dependencies below either with a deb-based system (e.g. Debian or Ubuntu) or with Fedora.
Hardware Requirements
The host where the build will take place should have decent hardware, considering that it will launch several VMs, possibly in parallel if you decide so, and it will also generate lots of qcow2 images created from multiple ISOs. In general:
- RAM: 8GB+
- CPU: 2+
- Disk: 40GB+
Having little memory or low disk space can result in OOM during the build process or a full disk scenario which requires its own set of troubleshooting.
KVM acceleration is required to build the appliances.
Software Dependencies
Linux Context Packages
- Ruby
- fpm Ruby gem. Use
gem install
- dpkg
- rpm
Windows Context Packages
- latest msitools
- binary nssm.exe [present]
- binary rhsrvany.exe [optional]
- mkisofs
Image Building
- make
- Packer >= 1.9.4
- cloud-utils
- qemu-utils (includes qemu-img)
- guestfs-tools (includes virt-sysprep)
It is recommended to install the latest version of Packer from Hashicorp official repositories. As a dependency, the Qemu Packer plugin will be installed as part of the build process.
Installing Dependencies Through Ansible
To automate the installation of the one-apps
repo dependencies, you can include the following Ansible tasks in your playbooks:
- name: Install OS packages
ansible.builtin.package:
name: "{{ _packages[ansible_os_family] }}"
update_cache: true
vars:
_packages:
Debian: [bash, cloud-utils, genisoimage, libguestfs0, libguestfs-tools, make, nginx, qemu-utils, rpm, rsync, ruby, qemu, qemu-system-x86]
register: package
until: package is success
retries: 3
delay: 10
- name: Install packer binary
ansible.builtin.unarchive:
src: "https://releases.hashicorp.com/packer/{{ _version }}/packer_{{ _version }}_linux_amd64.zip"
dest: /usr/local/bin/
remote_src: true
creates: /usr/local/bin/packer
vars:
_version: 1.10.0
- name: Install ruby gems
ansible.builtin.shell:
cmd: gem install --no-document backports fpm
executable: /bin/bash
creates: /usr/local/bin/fpm
It is recommended that you use a recent Ansible version. Ansible < 2.10 will not successfully execute the last step. These Ansible tasks do not include the build requirements for generating the Windows context packages.