nome.gogs
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
ansible-galaxy install nome.gogs