l3d.gitea

Rol de Ansible Gitea/Forgejo

Esta rol instala y gestiona Gitea o Forgejo, un servicio de Git autoalojado sin complicaciones. Gitea es una solución de hospedaje de código ligera gestionada por la comunidad y escrita en Go. Forgejo es una bifurcación de Gitea.

Espejos

La rol está disponible en:

Ejemplo de uso en un playbook

El siguiente código ha sido probado con la última versión estable de Debian, y debería funcionar en Ubuntu y RedHat también.

- name: "Instalar Gitea"
  hosts: git.ejemplo.com
  roles:
    - {role: l3d.gitea, tags: gitea}
  vars:
    gitea_fqdn: 'git.ejemplo.com'
    gitea_root_url: 'https://git.ejemplo.com'
    gitea_protocol: http
    gitea_start_ssh: true

Elegir entre el SSH incorporado de Gitea y el servidor SSH del host

Gitea tiene un servidor SSH incorporado que funciona en el puerto 2222 (para no chocar con el servidor SSH del host que generalmente opera en el puerto 22). Este se utiliza por defecto en esta rol y resulta en una URL de clonación SSH de gitea@<fqdn>:2222:<user>/<repo>.git, ya que gitea es el usuario por defecto.

A menudo, se desea una URL SSH "limpia" como git@<fqdn>:<user>/<repo>.git. Esto es posible utilizando el servidor SSH del host con la siguiente configuración de variables:

gitea_ssh_port: 22
gitea_user: git
gitea_start_ssh: false

Esta configuración funciona de inmediato para nuevas instalaciones. Cuando se migra desde una instancia en funcionamiento con claves SSH existentes del servidor SSH incorporado al servidor SSH del host, debes asegurarte de que el servidor SSH del host esté funcionando y que el gitea_user tenga los permisos necesarios para acceder a los datos del repositorio y a las claves (almacenadas en <gitea_home>/.ssh/).

Variables

Aquí hay una visión más profunda sobre las variables de esta rol de Gitea. Para funciones exactas de algunas variables y la posibilidad de agregar más opciones, se recomienda consultar este documento de referencia de configuración.

Elegir entre Gitea y Forgejo

Hay una bifurcación de Gitea llamada Forgejo. ¿Por qué? Lee la FAQ de Forgejo.

Puedes elegir entre Gitea y Forgejo modificando la variable gitea_fork:

nombre de variable valor por defecto descripción
gitea_fork gitea opcional, elige instalar Forgejo en lugar de Gitea configurando este valor a forgejo.

Actualización de Gitea

nombre de variable valor por defecto descripción
gitea_version latest Define exactamente qué versión instalar o usa latest (por defecto) para instalar la última versión disponible.
gitea_backup_on_upgrade false Opcionalmente, se puede crear un respaldo con cada actualización de Gitea.

Usuarios locales de Gitea

variable opción descripción
gitea_users diccionario para crear usuarios locales de Gitea o Forgejo
name nombre para el usuario local de Gitea/Forgejo
password contraseña para el usuario local
email correo electrónico para el usuario local
admin otorgar permisos de administrador al usuario
must_change_password el usuario debe cambiar la contraseña después del primer inicio de sesión
state establecer en absent para eliminar el usuario

Requisitos

Esta rol utiliza las colecciones de Ansible ansible.builtin y community.general. Para descargar la última versión de Forgejo/Gitea utilizamos json_query. Esto requiere que jmespath esté disponible.

Paquetes de Python

  • jmespath

Colecciones de Galaxy

  • community.general

Instalación de requisitos de ejemplo

ansible-galaxy collection install --update --role-file requirements.yml
pip3 install --update jmespath

Contribuye

No dudes en crear un pull request, y si tienes dudas puedes contactarme en Mastodon @[email protected].

Estoy feliz de resolver cualquier problema que plantees o, mejor aún, revisar tus pull requests :)

Historia de esta rol

Esta rol de Ansible fue desarrollada originalmente en github.com/thomas-maurice/ansible-role-gitea. Dado que la rol allí tiene ciertos problemas, se creó una bifurcación que ofrece lo mismo, pero de manera más ordenada y con el compromiso de reaccionar más rápidamente a problemas y pull requests. Ahora también es parte de la colección l3d.git.

Acerca del proyecto

Ansible role to configure and deploy gitea and forgejo, a painless self-hosted Git service.

Instalar
ansible-galaxy install l3d.gitea
Licencia
bsd-3-clause
Descargas
151k
Propietario
Ansible roles provide a framework for fully independent, or interdependent collections of variables,tasks,files,templates &modules. Here we maintain some. enjoy