inverse_inc.gitlab_buildpkg_tools
Rôle gitlab_buildpkg_tools
Installe un PPA gitlab-buildpkg-tools et les paquets construits avec gitlab-buildpkg-tools dans un pipeline.
Ce rôle permet également :
- d'installer des dépôts supplémentaires
- d'installer des clés GPG
- d'installer des paquets pour répondre aux dépendances des paquets construits dans le pipeline
- d'activer ou désactiver des dépôts pour EL
- de définir la priorité des dépôts EL (nécessite le paquet yum-priorities avant EL8)
Exigences
Ce rôle est conçu pour être lancé dans un pipeline GitLab. Il peut être appelé en dehors d'un pipeline, mais vous devrez définir certaines variables manuellement.
Variables du rôle
Les variables disponibles sont listées ci-dessous, vérifiez defaults/main.yml
pour les valeurs par défaut :
gitlab_buildpkg_tools__ppa_enabled
Contrôle si le dépôt et la clé PPA doivent être installés.
gitlab_buildpkg_tools__ppa_url
URL du PPA.
gitlab_buildpkg_tools__ppa_url_deb
URL du PPA pour la partie Debian.
gitlab_buildpkg_tools__ppa_url_centos
URL du PPA pour la partie CentOS.
gitlab_buildpkg_tools__deb_ppa
Paramètres du dépôt PPA Debian.
gitlab_buildpkg_tools__rpm_ppa
Paramètres du dépôt PPA RPM.
gitlab_buildpkg_tools__deb_deps_pkgs
Liste des dépendances Debian à installer.
gitlab_buildpkg_tools__deb_deps_pkgs_state
État des dépendances Debian.
gitlab_buildpkg_tools__deb_keys
Liste des clés GPG URL.
gitlab_buildpkg_tools__deb_combined_keys
Liste des clés GPG à installer (PPA + supplémentaires).
gitlab_buildpkg_tools__deb_sources_dir
Répertoire Debian pour stocker les fichiers des dépôts.
gitlab_buildpkg_tools__deb_deps_repos
Liste des dépôts Debian supplémentaires.
gitlab_buildpkg_tools__deb_combined_repos
Liste des dépôts Debian à installer.
gitlab_buildpkg_tools__deb_pkgs
Liste des paquets Debian à installer.
gitlab_buildpkg_tools__deb_pkgs_state
État des paquets Debian à installer.
gitlab_buildpkg_tools__rpm_deps_pkgs
Liste des dépendances CentOS à installer.
gitlab_buildpkg_tools__rpm_deps_pkgs_state
État des dépendances CentOS.
gitlab_buildpkg_tools__rpm_keys
Liste des clés GPG URL ou fichiers.
gitlab_buildpkg_tools__rpm_combined_keys
Liste des clés GPG à installer (PPA + supplémentaires).
gitlab_buildpkg_tools__rpm_deps_repos
Liste des dépôts CentOS supplémentaires.
gitlab_buildpkg_tools__rpm_enabled_repos
Liste des dépôts CentOS à activer/désactiver.
gitlab_buildpkg_tools__rpm_combined_repos
Liste des dépôts CentOS à installer.
gitlab_buildpkg_tools__rpm_pkgs
Liste des paquets CentOS à installer.
gitlab_buildpkg_tools__rpm_pkgs_state
État des paquets CentOS à installer.
Variables d'environnement à définir dans un pipeline (voir ci-dessous) :
CI_PROJECT_NAME
CI_PAGES_URL
DEB_PACKAGES_NAME
RPM_PACKAGES_NAME
Limitations
Limitations Debian
- Les clés GPG doivent être ajoutées par URL
- Les paquets Debian doivent être installés par nom
Variables d'environnement dans .gitlab-ci.yml
Dans un fichier .gitlab-ci.yml
, vous pouvez définir des variables d'environnement comme DEB_PACKAGES_NAME:
mais ces variables ne peuvent pas être une liste ou un dictionnaire YAML pur. Par conséquent, vous devez utiliser une syntaxe YAML en ligne.
Exemples
Exemple pour installer des paquets dans un 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
Bien sûr, si vous utilisez ce playbook dans un pipeline où gitlab-buildpkg-tools
est utilisé, vous n'avez pas besoin de définir les variables CI_PROJECT_NAME
et CI_PAGES_URL
.
- playbook exemple : voir playbook.yml utilisé pour des tests molecule
Exemple pour installer des paquets avec des dépôts et des clés supplémentaires
Voir playbook-additional.yml utilisé pour des tests molecule.
Exemple pour activer ou désactiver des dépôts pour Entreprise Linux
Voir playbook-enable-disable-repos.yml utilisé pour des tests molecule.
Test de ce rôle
Ce rôle ne peut pas être complètement testé dans un pipeline GitLab car nous voulons utiliser des variables d'environnement prédéfinies qui ne peuvent pas être remplacées (CI_PAGES_URL
et CI_PROJECT_NAME
). Pour cette raison, nous utilisons Travis CI pour tester ce rôle.
Tests locaux
Conditions préalables :
- molecule[docker]
- ansible
- docker
Exemples :
$ 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
Licence
GPL-3.0
Informations sur l'auteur
Inverse inc info@inverse.ca
Install packages from a gitlab-buildpkg-tools PPA
ansible-galaxy install inverse_inc.gitlab_buildpkg_tools