inverse_inc.gitlab_buildpkg_tools
rol de gitlab_buildpkg_tools
Instala un PPA de gitlab-buildpkg-tools y paquetes construidos con gitlab-buildpkg-tools en una tubería (pipeline).
Este rol también soporta:
- instalar repositorios adicionales
- instalar claves GPG
- instalar paquetes para satisfacer dependencias de paquetes construidos en la tubería
- habilitar o deshabilitar repositorios para EL
- establecer prioridad para repositorios EL (necesita el paquete yum-priorities antes de EL8)
Requisitos
El rol está diseñado para ser ejecutado en una tubería de GitLab. Se puede llamar fuera de una tubería, pero tendrás que establecer algunas variables manualmente.
Variables del Rol
Las variables disponibles se enumeran a continuación, consulta defaults/main.yml
para ver los valores predeterminados:
gitlab_buildpkg_tools__ppa_enabled
Controla si se debe instalar el repositorio y la clave PPA.
gitlab_buildpkg_tools__ppa_url
URL del PPA.
gitlab_buildpkg_tools__ppa_url_deb
URL del PPA con la parte de Debian.
gitlab_buildpkg_tools__ppa_url_rpm
URL del PPA con la parte de CentOS.
gitlab_buildpkg_tools__deb_ppa
Parámetros del repositorio Debian PPA.
gitlab_buildpkg_tools__rpm_ppa
Parámetros del repositorio RPM PPA.
gitlab_buildpkg_tools__deb_deps_pkgs
Lista de dependencias de Debian para instalar repos.
gitlab_buildpkg_tools__deb_deps_pkgs_state
Estado de las dependencias de Debian.
gitlab_buildpkg_tools__deb_keys
Lista de claves GPG URL.
gitlab_buildpkg_tools__deb_combined_keys
Lista de claves GPG a instalar (PPA + adicional).
gitlab_buildpkg_tools__deb_sources_dir
Directorio Debian para almacenar archivos de repos.
gitlab_buildpkg_tools__deb_deps_repos
Lista de repos adicionales de Debian.
gitlab_buildpkg_tools__deb_combined_repos
Lista de repos Debian para instalar.
gitlab_buildpkg_tools__deb_pkgs
Lista de paquetes Debian para instalar.
gitlab_buildpkg_tools__deb_pkgs_state
Estado de los paquetes Debian a instalar.
gitlab_buildpkg_tools__rpm_deps_pkgs
Lista de dependencias de CentOS para instalar repos.
gitlab_buildpkg_tools__rpm_deps_pkgs_state
Estado de las dependencias de CentOS.
gitlab_buildpkg_tools__rpm_keys
Lista de claves GPG URL o archivos.
gitlab_buildpkg_tools__rpm_combined_keys
Lista de claves GPG a instalar (PPA + adicional).
gitlab_buildpkg_tools__rpm_deps_repos
Lista de repos adicionales de CentOS.
gitlab_buildpkg_tools__rpm_enabled_repos
Lista de repos de CentOS a habilitar/deshabilitar.
gitlab_buildpkg_tools__rpm_combined_repos
Lista de repos de CentOS para instalar.
gitlab_buildpkg_tools__rpm_pkgs
Lista de paquetes CentOS para instalar.
gitlab_buildpkg_tools__rpm_pkgs_state
Estado de los paquetes CentOS a instalar.
Variables de entorno a establecer en una tubería (ver abajo):
CI_PROJECT_NAME
CI_PAGES_URL
DEB_PACKAGES_NAME
RPM_PACKAGES_NAME
Limitaciones
Limitaciones de Debian
- Las claves GPG deben añadirse por URL
- Los paquetes Debian deben instalarse por nombre
Variables de Entorno en .gitlab-ci.yml
En un archivo .gitlab-ci.yml
, puedes definir variables de entorno como DEB_PACKAGES_NAME:
pero estas variables no pueden ser una lista o diccionario puro de YAML. Consecuentemente, necesitas usar una sintaxis YAML en línea.
Ejemplos
Ejemplo para instalar paquetes dentro de 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
Por supuesto, si usas este playbook dentro de una tubería donde se utiliza gitlab-buildpkg-tools
, no necesitas definir las variables CI_PROJECT_NAME
y CI_PAGES_URL
.
- ejemplo de playbook: ver playbook.yml usado para pruebas de moléculas
Ejemplo para instalar paquetes con repos y claves adicionales
Ver playbook-additional.yml usado para pruebas de moléculas.
Ejemplo para habilitar o deshabilitar repos para Enterprise Linux
Ver playbook-enable-disable-repos.yml usado para pruebas de moléculas.
Prueba de este rol
Este rol no puede ser totalmente probado en una tubería de GitLab porque queremos usar variables de entorno predefinidas que no pueden ser sobreescritas (CI_PAGES_URL
y CI_PROJECT_NAME
). Por esta razón, usamos Travis CI para probar este rol.
Pruebas Locales
Requisitos previos:
- molecule[docker]
- ansible
- docker
Ejemplos:
$ 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
Licencia
GPL-3.0
Información del Autor
Inverse inc info@inverse.ca
Install packages from a gitlab-buildpkg-tools PPA
ansible-galaxy install inverse_inc.gitlab_buildpkg_tools