Installs and configures the Open Build Service (OBS).
This role is written for OpenSUSE, and is currently tested on OpenSUSE Leap 15.5. It makes use of the zypper and zypper_repository modules, so you need to install the python-xml package. Due to the use of the firewalld module, you must use Python 3 for your ansible_python_interpreter.
The version of OBS to install. Only 2.10 is tested. The default is 2.10.
The version of OpenSUSE OBS is being installed on. The default is ansible_distribution_version.
The fully qualified domain name for this OBS instance. The default is "obs.internal".
The domains to use when generating a self-signed certificate. The default is ["{{ obs_fqdn }}", "obs", "localhost"].
Enable compatibility with xdelta1. openSUSE now packages xdelta3 in a way where it pretends to be xdelta1, but not very well. This causes an issue for pristine-tar, which is sometimes used in Debian packaging, when xdelta1 was used. Setting this to true will replace the xdelta symlink from the xdelta3 package with an actual xdelta1 binary. The default is false.
The filename of the xdelta rpm if using xdelta1 compatibility. The default is "xdelta-1.1.4-193.d_t.3.x86_64.rpm".
Address of the signing server to use. By default this is 127.0.0.1, meaning that the local signing server set up as part of the OBS server will be used. Change this if you are using a detached signing server.
The user to use for signing. Note that this corresponds to the email address of the GPG key that should be used. By default this is defaultkey@localobs, and this is the address that will be used for the key generated for the local signer created by this role. If you are using a detached signing server, it is recommended that you use a different email address for the GPG key on that machine and set this variable to it.
The title that appears on the web user interface landing page.
The description that appears on the web user interface landing page.
The instance name which gets generated into each package. Short string only, no white spaces recommended.
Sets policy on whether anonymous access is permitted. The values 'on' or 'off' are valid.
Sets policy on whether user self registration is permitted. The values 'allow' and 'disallow' are valid.
Sets policy on whether default access is disabled. The values 'on' or 'off' are valid.
Sets policy on whether a user is permitted to have a home project. The values 'on' or 'off' are valid.
Sets policy on whether group creation is permitted. The values 'on' or 'off' are valid.
Sets policy on whether a user can change their password. The values 'on' or 'off' are valid.
Sets policy on whether private options are hidden. The values 'on' or 'off' are valid.
Sets policy on whether a gravatar should be used in the web user interface. The values 'on' or 'off' are valid.
Sets policy on whether to enforce projects keys. The values 'on' or 'off' are valid.
Sets policy on whether download on demand is permitted. The values 'on' or 'off' are valid.
Sets download url made available in the web user interface within the built package. Either unset, or a URI is valid.
Sets the main url made available in the web user interface. A valid URI should be set.
Sets the admin email. Should be a valid email address.
Sets policy on whether OBS should perform a cleanup of empty projects. The values 'on' or 'off' are valid
Sets the number of days before project cleanup. An integer value is valid.
Sets policy on whether to disable publishing for branches. The values 'on' or 'off' are valid
This is a string that allows for arbitrary addition statements to inserted into the configuration file. It is intended for adding things like custom publishedhook =.
See: https://openbuildservice.org/help/manuals/obs-admin-guide/obs.cha.administration.html#_publisher_hooks
Provides a list of architectures supported by the OBS instance, provided as a UML list. e.g. obs_service_architectures:
- x86_64
Path to a certificate for the web server to use. Disables self-signed certificate generation when set.
Path to a key for the web server to use.
Address of the source server. Defaults to localhost.
Address of the repository server. Defaults to localhost.
Address of the service server. Defaults to localhost.
Address of the cloudupload server. Defaults to localhost.
Address of the worker source server. Defaults to localhost.
Address of the worker repository server. Defaults to localhost.
This role uses the weareinteractive.hosts role to ensure that an entry for 127.0.1.1 is present in /etc/hosts. This is required for remote workers to work properly. The hosts_entries variable is not set by this role to avoid clashes where you are using the hosts role for other purposes. Make sure that you have the variable set appropriately to create an entry for the FQDN of the node to point to 127.0.1.1. This could be done by adding the following to your host_vars:
hosts_entries:
- ip: 127.0.1.1
domain: "{{ ansible_fqdn }} {{ ansible_hostname }}"
- hosts: servers
roles:
- jammystuff.open_build_service
The easiest way to test your changes is using Vagrant. Once you have installed Vagrant, you can create and provision a VM like this:
$ cd open-build-service
$ vagrant up
After making changes, you can run Ansible again like this:
$ vagrant provision
Once you're finished, you can destroy the VM like this:
$ vagrant destroy
BSD 3-Clause