inverse_inc.gitlab_buildpkg_tools
gitlab_buildpkg_tools Rolle
Installiert ein gitlab-buildpkg-tools PPA und Pakete, die mit gitlab-buildpkg-tools in einer Pipeline erstellt wurden.
Diese Rolle unterstützt auch:
- Installation zusätzlicher Repositories
- Installation von GPG-Schlüsseln
- Installation von Paketen, um die Abhängigkeiten der in der Pipeline erstellten Pakete zu erfüllen
- Aktivieren oder Deaktivieren von Repositories für EL
- Einstellen der Priorität für EL-Repositories (benötigt yum-prioritäten-Paket vor EL8)
Anforderungen
Die Rolle ist für die Ausführung in einer GitLab-Pipeline ausgelegt. Sie kann auch außerhalb einer Pipeline aufgerufen werden, aber Sie müssen einige Variablen manuell setzen.
Rollenvariablen
Verfügbare Variablen sind unten aufgelistet, überprüfen Sie defaults/main.yml
für Standardwerte:
gitlab_buildpkg_tools__ppa_enabled
Steuert, ob das PPA-Repo und der Schlüssel installiert werden sollen.
gitlab_buildpkg_tools__ppa_url
URL des PPA.
gitlab_buildpkg_tools__ppa_url_deb
URL des PPA mit dem Debian-Teil.
gitlab_buildpkg_tools__ppa_url_centos
URL des PPA mit dem CentOS-Teil.
gitlab_buildpkg_tools__deb_ppa
Parameter für Debian PPA-Repos.
gitlab_buildpkg_tools__rpm_ppa
Parameter für RPM PPA-Repos.
gitlab_buildpkg_tools__deb_deps_pkgs
Liste von Debian-Abhängigkeiten zum Installieren von Repos.
gitlab_buildpkg_tools__deb_deps_pkgs_state
Zustand der Debian-Abhängigkeiten.
gitlab_buildpkg_tools__deb_keys
Liste von GPG-Schlüsseln URL.
gitlab_buildpkg_tools__deb_combined_keys
Liste von GPG-Schlüsseln zur Installation (PPA + zusätzliche).
gitlab_buildpkg_tools__deb_sources_dir
Debian-Verzeichnis zur Speicherung von Repos-Dateien.
gitlab_buildpkg_tools__deb_deps_repos
Liste zusätzlicher Debian-Repos.
gitlab_buildpkg_tools__deb_combined_repos
Liste von Debian-Repos zur Installation.
gitlab_buildpkg_tools__deb_pkgs
Liste von Debian-Paketen zur Installation.
gitlab_buildpkg_tools__deb_pkgs_state
Zustand der zu installierenden Debian-Pakete.
gitlab_buildpkg_tools__rpm_deps_pkgs
Liste von CentOS-Abhängigkeiten zum Installieren von Repos.
gitlab_buildpkg_tools__rpm_deps_pkgs_state
Zustand der CentOS-Abhängigkeiten.
gitlab_buildpkg_tools__rpm_keys
Liste von GPG-Schlüsseln URL oder Dateien.
gitlab_buildpkg_tools__rpm_combined_keys
Liste von GPG-Schlüsseln zur Installation (PPA + zusätzliche).
gitlab_buildpkg_tools__rpm_deps_repos
Liste zusätzlicher CentOS-Repos.
gitlab_buildpkg_tools__rpm_enabled_repos
Liste von CentOS-Repos zum Aktivieren/Deaktivieren.
gitlab_buildpkg_tools__rpm_combined_repos
Liste von CentOS-Repos zur Installation.
gitlab_buildpkg_tools__rpm_pkgs
Liste von CentOS-Paketen zur Installation.
gitlab_buildpkg_tools__rpm_pkgs_state
Zustand der zu installierenden CentOS-Pakete.
Umgebungsvariablen, die in einer Pipeline gesetzt werden müssen (siehe unten):
CI_PROJECT_NAME
CI_PAGES_URL
DEB_PACKAGES_NAME
RPM_PACKAGES_NAME
Einschränkungen
Debian-Einschränkungen
- GPG-Schlüssel müssen über eine URL hinzugefügt werden
- Debian-Pakete müssen über den Namen installiert werden
Umgebungsvariablen in .gitlab-ci.yml
In einer .gitlab-ci.yml
-Datei können Sie Umgebungsvariablen wie DEB_PACKAGES_NAME:
definieren, aber diese Variablen dürfen keine reine YAML-Liste oder ein Wörterbuch sein. Folglich müssen Sie eine Inline-YAML-Syntax verwenden.
Beispiele
Beispiel zum Installieren von Paketen innerhalb eines CI
.gitlab-ci.yml
:
variables:
DEB_PACKAGES_NAME: "['apt-add-gitlab', 'gitlab-buildpkg-tools']"
RPM_PACKAGES_NAME: "['yum-add-gitlab', 'gitlab-buildpkg-tools']"
CI_PROJECT_NAME: gitlab-buildpkg-tools
CI_PAGES_URL: http://orange-opensource.gitlab.io/gitlab-buildpkg-tools
Wenn Sie dieses Playbook innerhalb einer Pipeline verwenden, in der gitlab-buildpkg-tools
verwendet wird, müssen Sie die Variablen CI_PROJECT_NAME
und CI_PAGES_URL
nicht definieren.
- Beispiel-Playbook: siehe playbook.yml für Molecule-Tests
Beispiel zum Installieren von Paketen mit zusätzlichen Repos und Schlüsseln
Siehe playbook-additional.yml zur Verwendung für Molecule-Tests.
Beispiel zum Aktivieren oder Deaktivieren von Repos für Enterprise Linux
Siehe playbook-enable-disable-repos.yml zur Verwendung für Molecule-Tests.
Test dieser Rolle
Diese Rolle kann nicht vollständig in einer GitLab CI-Pipeline getestet werden, da wir vordefinierte Umgebungsvariablen verwenden möchten, die nicht überschrieben werden können (CI_PAGES_URL
und CI_PROJECT_NAME
). Aus diesem Grund verwenden wir Travis CI, um diese Rolle zu testen.
Lokale Tests
Voraussetzungen:
- molecule[docker]
- ansible
- docker
Beispiele:
$ MOLECULE_DISTRO=debian11 \
CI_PROJECT_NAME=gitlab-buildpkg-tools \
CI_PAGES_URL=http://orange-opensource.gitlab.io/gitlab-buildpkg-tools \
MOLECULE_PLAYBOOK=playbook-ppa-and-additional.yml molecule test
$ MOLECULE_DISTRO=centos8 \
CI_PROJECT_NAME=gitlab-buildpkg-tools \
CI_PAGES_URL=http://orange-opensource.gitlab.io/gitlab-buildpkg-tools \
MOLECULE_PLAYBOOK=playbook-ppa-and-additional.yml molecule test
Lizenz
GPL-3.0
Autoreninformation
Inverse Inc info@inverse.ca
Install packages from a gitlab-buildpkg-tools PPA
ansible-galaxy install inverse_inc.gitlab_buildpkg_tools