Skip to content

Common Roles

Volker Hilsheimer edited this page Mar 22, 2022 · 5 revisions

These roles are used by machines that are defined in the default minicoin configuration.

Platform independent roles

The following roles are implemented for Linux, Windows, and macOS as host development platforms.

dev-tools

Installs development tools such as cmake, ninja, perl, git, and python.

qt-builder

Installs the tools and packages required to build (most of) Qt.

Can be parameterized to install some optional packages:

- roles:
  - role: qt-builder
    sqldrivers:
      - psql
      - mysql
      - ibase
      - odbc

Note that not all optional packages are available on all platforms.

For Windows, this role can also be parameterized with compiler (can be msvc or mingw) and version (2017, 2019, or 2022 for msvc; or a mingw version such as `11.2.0.07112021). Installing multiple compilers is not supported.

Generic Roles

Generic roles allow performing specific actions as part of machine provisioning, and always need to be parameterized, often with platform-specific values.

install

Installs a package on the guest using the guest-specific package management system.

roles:
  - role: install
    packages: [ cmake, ninja ]

script

Runs the provided script on the guest.

roles:
  - role: script
    script: "sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config"

upload

Uploads a file or directory to the guest. The input is a dictionary of source: target mappings.

roles:
    - role: upload
      files:
        $HOME/.gitconfig: ~/.gitconfig

Platform Specific Roles

These roles are platform specific (it is usually obvious which platform they are for), and perform a series of complex provisioning steps inside the guest virtual machine to enable it to execute certain jobs. They can all be used without any parameters to provision the default configuration, but many can be modified.

android-builder

Installs the Android SDK.

android-emulator

Installs the Android Emulator. This requires a provider that supports nested virtualization.

linux-desktop

Installs a linux desktop environment on a linux machine. The desktop environment can be configured using the desktop parameter, but not all environments are supported for all linux distributions.

Provider configuration

Provider settings allow for detail configuration of the provider.

See the Provider Notes for the documentation of this role for each provider.