|
@@ -30,3 +30,43 @@ The GitLab CI jobs definition for the custom runners are located under::
|
|
|
Custom runners entail custom machines. To see a list of the machines
|
|
|
currently deployed in the QEMU GitLab CI and their maintainers, please
|
|
|
refer to the QEMU `wiki <https://wiki.qemu.org/AdminContacts>`__.
|
|
|
+
|
|
|
+Machine Setup Howto
|
|
|
+-------------------
|
|
|
+
|
|
|
+For all Linux based systems, the setup can be mostly automated by the
|
|
|
+execution of two Ansible playbooks. Create an ``inventory`` file
|
|
|
+under ``scripts/ci/setup``, such as this::
|
|
|
+
|
|
|
+ fully.qualified.domain
|
|
|
+ other.machine.hostname
|
|
|
+
|
|
|
+You may need to set some variables in the inventory file itself. One
|
|
|
+very common need is to tell Ansible to use a Python 3 interpreter on
|
|
|
+those hosts. This would look like::
|
|
|
+
|
|
|
+ fully.qualified.domain ansible_python_interpreter=/usr/bin/python3
|
|
|
+ other.machine.hostname ansible_python_interpreter=/usr/bin/python3
|
|
|
+
|
|
|
+Build environment
|
|
|
+~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+The ``scripts/ci/setup/build-environment.yml`` Ansible playbook will
|
|
|
+set up machines with the environment needed to perform builds and run
|
|
|
+QEMU tests. This playbook consists on the installation of various
|
|
|
+required packages (and a general package update while at it). It
|
|
|
+currently covers a number of different Linux distributions, but it can
|
|
|
+be expanded to cover other systems.
|
|
|
+
|
|
|
+The minimum required version of Ansible successfully tested in this
|
|
|
+playbook is 2.8.0 (a version check is embedded within the playbook
|
|
|
+itself). To run the playbook, execute::
|
|
|
+
|
|
|
+ cd scripts/ci/setup
|
|
|
+ ansible-playbook -i inventory build-environment.yml
|
|
|
+
|
|
|
+Please note that most of the tasks in the playbook require superuser
|
|
|
+privileges, such as those from the ``root`` account or those obtained
|
|
|
+by ``sudo``. If necessary, please refer to ``ansible-playbook``
|
|
|
+options such as ``--become``, ``--become-method``, ``--become-user``
|
|
|
+and ``--ask-become-pass``.
|