nome.gogs

Travis CI

Rol de Ansible: Instalación y Configuración de Gogs

Instala y configura Gogs, un portal de proyectos Git auto-alojado. Todos los ajustes que se introducirían en el diálogo de la primera ejecución de una instalación manual están completamente integrados en el playbook (incluyendo la creación del usuario principal admin), lo que permite una configuración totalmente automatizada y reproducible. Se proporcionan valores predeterminados para la mayoría de los ajustes, lo que hace que una instalación rápida basada en Ansible sea tan sencilla como una manual.

Algunas de las configuraciones más oscuras del diálogo de la primera ejecución, así como un número considerable de las muchas configuraciones disponibles de Gogs, actualmente no pueden establecerse mediante este rol. Se aceptan solicitudes de extracción.

Ejemplo mínimo de playbook

- hosts: localhost
  roles:
  - role: nome.gogs
    gogs_admin: gogsadmin
    gogs_admin_password: secreto

Tenga en cuenta que llamar al usuario admin admin no funcionará, ya que este ID de usuario está reservado en Gogs. Después de ejecutar el playbook, Gogs debería ser accesible en http://localhost:3000 (así como http://tuhost:3000 desde otros hosts, a menos que un firewall local lo impida).

Ejemplo típico de playbook

Como un ejemplo más típico, consideraremos una configuración con un proxy inverso configurado a través del rol jdauphant.nginx.

- hosts: gogs

  pre_tasks:
  - name: Instalar dependencia para la configuración de SELinux
    package: name=libsemanage-python state=present
    when: ansible_selinux
  - name: Permitir que nginx haga conexiones de red (SELinux)
    seboolean: name=httpd_can_network_connect state=yes persistent=yes
    when: ansible_selinux

  roles:
  - role: nome.gogs
    gogs_admin: gogsadmin
    gogs_admin_password: secreto

    gogs_app_name: Repos de Mi Equipo
    gogs_bind_addr: 127.0.0.1
    gogs_url: http://{{ ansible_fqdn }}
    gogs_preset: compartido

    gogs_smtp_host: smtp.ejemplo.com:587

  - role: jdauphant.nginx
    nginx_sites:
      gogs:
        - listen 80
        - location / { proxy_pass http://127.0.0.1:{{ gogs_http_port }}; }

Además de la configuración de SELinux incluida en este ejemplo, también puede ser necesario abrir el puerto 80 en el firewall, por ejemplo, en RHEL7:

- firewalld: service=http state=enabled permanent=true

Uso de un servidor de base de datos

Por defecto, se utiliza un archivo de base de datos SQLite local. Una configuración con un servidor MySQL (separado) podría verse así, utilizando el rol geerlingguy.mysql:

- hosts: dbserver
  roles:
  - role: geerlingguy.mysql
    mysql_root_password: seguro
    mysql_databases:
    - name: gogs
    mysql_users:
    - name: gogs
      host: "%"
      password: seguro
      priv: "gogs.*:ALL"

- hosts: gogs
  roles:
  - role: nome.gogs
    gogs_admin: gogsadmin
    gogs_admin_password: secreto

    gogs_db_type: mysql
    gogs_db_host: dbserver:3306
    gogs_db_user: gogs
    gogs_db_password: seguro
    gogs_db_name: gogs

Los valores soportados para gogs_db_type son mysql, postgres, mssql y sqlite3.

Habilitar el envío de correos

Para habilitar que Gogs envíe correos, por ejemplo, notificaciones de actualizaciones y correos de confirmación en el registro de usuarios, se deben proporcionar los siguientes ajustes:

gogs_smtp_host: smtp.ejemplo.com:587
gogs_smtp_user: mi_usuario_smtp
gogs_smtp_password: mi_contraseña_smtp

Versión de Gogs y métodos de instalación

Por defecto, se instala la última versión de Gogs. Esto se puede cambiar estableciendo gogs_version a la versión deseada (por ejemplo, gogs_version=v0.10.18).

La versión "en la punta de lanza" de Gogs (posiblemente no lanzada) se puede obtener de GitHub y compilarse con los siguientes ajustes:

gogs_install_from_source: true
gogs_version: master

Dado que los paquetes de distribución del compilador Go a menudo son demasiado viejos para compilar Gogs, se descargan binarios oficiales del compilador Go de Google y se instalan en /home/git/.local.

Si la máquina de destino no puede acceder a internet (es decir, debido a configuraciones de firewall o proxy), establezca gogs_install_via_localhost=true. Esto redirigirá todas las descargas a través del host de control. Cuando se combina con gogs_install_from_source, el compilador Go no se descarga automáticamente; Git y Go >= 1.5 deben estar ya instalados en el host de control, y las variables de entorno GOROOT y GOPATH deben configurarse a valores adecuados.

Otras variables del rol

Consulte defaults/main.yml.

Licencia

MIT / BSD

Acerca del proyecto

Gogs Installation and Setup

Instalar
ansible-galaxy install nome.gogs
Licencia
mit
Descargas
80
Propietario