nome.gogs
Роль Ansible: Установка и Настройка Gogs
Устанавливает и настраивает Gogs, портал Git-проектов для самостоятельного размещения. Все параметры, которые нужно было бы ввести в диалоговом окне при первом запуске, полностью интегрированы в плейбук (включая создание основного администратора), что обеспечивает полностью автоматизированную и воспроизводимую настройку. По умолчанию предоставлены значения для большинства параметров, что делает быструю установку на основе Ansible такой же простой, как и ручная.
Некоторые из более редких настроек первого запуска, а также значительная часть многочисленных доступных настроек Gogs, в настоящее время не могут быть установлены с помощью этой роли. Однако запросы на изменения приветствуются.
Пример минимального плейбука
- hosts: localhost
roles:
- role: nome.gogs
gogs_admin: gogsadmin
gogs_admin_password: secret
Обратите внимание, что использование имени администратора admin
не сработает, так как этот идентификатор пользователя зарезервирован в Gogs. После выполнения плейбука Gogs должен быть доступен по адресу http://localhost:3000 (а также http://yourhost:3000
с других хостов, если это не блокируется локальным файрволом).
Пример типичного плейбука
Как более типичный пример, мы рассмотрим настройку с реверс-прокси, настроенным через роль jdauphant.nginx.
- hosts: gogs
pre_tasks:
- name: Установить зависимость для настройки SELinux
package: name=libsemanage-python state=present
when: ansible_selinux
- name: Разрешить nginx осуществлять сетевые подключения (SELinux)
seboolean: name=httpd_can_network_connect state=yes persistent=yes
when: ansible_selinux
roles:
- role: nome.gogs
gogs_admin: gogsadmin
gogs_admin_password: secret
gogs_app_name: Репозитории моей команды
gogs_bind_addr: 127.0.0.1
gogs_url: http://{{ ansible_fqdn }}
gogs_preset: shared
gogs_smtp_host: smtp.example.com:587
- role: jdauphant.nginx
nginx_sites:
gogs:
- listen 80
- location / { proxy_pass http://127.0.0.1:{{ gogs_http_port }}; }
Кроме настройки SELinux, включенной в этот пример, вам также может потребоваться открыть порт 80 на файрволе, например, в RHEL7:
- firewalld: service=http state=enabled permanent=true
Использование сервера базы данных
По умолчанию используется локальный файл базы данных SQLite. Настройка с (отдельным) сервером MySQL может выглядеть следующим образом, используя роль geerlingguy.mysql:
- hosts: dbserver
roles:
- role: geerlingguy.mysql
mysql_root_password: secure
mysql_databases:
- name: gogs
mysql_users:
- name: gogs
host: "%"
password: secure
priv: "gogs.*:ALL"
- hosts: gogs
roles:
- role: nome.gogs
gogs_admin: gogsadmin
gogs_admin_password: secret
gogs_db_type: mysql
gogs_db_host: dbserver:3306
gogs_db_user: gogs
gogs_db_password: secure
gogs_db_name: gogs
Поддерживаемые значения для gogs_db_type
: mysql
, postgres
, mssql
и sqlite3
.
Включение отправки писем
Чтобы Gogs мог отправлять письма, например, уведомления об обновлениях и подтверждения при регистрации пользователей, необходимо указать следующие настройки:
gogs_smtp_host: smtp.example.com:587
gogs_smtp_user: my_smtp_user
gogs_smtp_password: my_smtp_password
Версия Gogs и методы установки
По умолчанию устанавливается последняя версия Gogs. Это можно изменить, установив gogs_version
на желаемую версию (например, gogs_version=v0.10.18
).
"Кровоточащая" версия Gogs (возможно, еще не выпущенная) может быть загружена с GitHub и скомпилирована с помощью следующих настроек:
gogs_install_from_source: true
gogs_version: master
Поскольку пакеты дистрибутивов компилятора Go часто слишком устаревшие для компиляции Gogs, официальные двоичные файлы компилятора Go загружаются с Google и устанавливаются в /home/git/.local
.
Если целевая машина не может получить доступ к интернету (например, из-за настроек файрвола или прокси), установите gogs_install_via_localhost=true
. Это позволит маршрутизировать все загрузки через управляющий хост. В сочетании с gogs_install_from_source
компилятор Go не будет загружен автоматически; Git и Go версии >= 1.5 должны быть уже установлены на управляющем хосте, и переменные окружения GOROOT
и GOPATH
должны быть установлены на соответствующие значения.
Другие переменные роли
См. defaults/main.yml
.
Лицензия
MIT / BSD
ansible-galaxy install nome.gogs