thomas_maurice.ansible_role_gitea
Rola Ansible gitea - Instalacja serwera gitea
Ten skrypt instaluje i zarządza serwerem gitea - Kod źródłowy i zrzuty ekranu.
Gitea to webowa aplikacja Git napisana w Golang, która wygląda i działa podobnie jak GitHub.
Przykładowe użycie w playbooku
Poniższy kod został przetestowany na Debianie 8, ale powinien również działać na Ubuntu.
- name: "Zainstaluj gitea"
hosts: all
vars:
gitea_user: "gitea"
gitea_home: "/var/lib/gitea"
# Ogranicza użytkowników do 30 repozytoriów
gitea_user_repo_limit: 30
# Nie używaj publicznego CDN dla zasobów frontendowych
gitea_offline_mode: true
# Niektóre opcje 'renderowania' dla Twoich adresów URL
gitea_http_domain: git.yourdomain.fr
gitea_root_url: https://git.yourdomain.fr
# Zakładamy, że jesteśmy za reverse proxy, który obsługuje https
gitea_protocol: http
gitea_http_listen: 127.0.0.1
gitea_http_port: 3000
# Konfiguracja serwera SSH
gitea_ssh_listen: 0.0.0.0
gitea_ssh_port: 2222
gitea_ssh_domain: git.yourdomain.fr
gitea_start_ssh: true
gitea_secret_key: 3sp00ky5me
gitea_disable_gravatar: true
# Aby przynajmniej pierwszy użytkownik mógł się zarejestrować
gitea_disable_registration: false
gitea_require_signin: true
gitea_enable_captcha: true
gitea_show_user_email: false
roles:
- gitea
Bardziej szczegółowe opcje
Ogólne
gitea_version_check
: Sprawdza, czy zainstalowana wersja różni się odgitea_version
przed pobraniemgitea_user
: Użytkownik UNIX używany przez Giteagitea_group
: Grupa UNIX używana przez Giteagitea_home
: Główny katalog roboczygitea_dl_url
: Adres URL, z którego pobierany jest skompilowany plik binarny giteagitea_systemd_cap_net_bind_service
: DodajeAmbientCapabilities=CAP_NET_BIND_SERVICE
do pliku usługi systemdgitea_extra_config
: Dodatkowa konfiguracja
Wygląd i działanie
gitea_app_name
: Wyświetlana nazwa aplikacjigitea_show_user_email
: Czy chcesz wyświetlać adresy e-mail? (prawda/fałsz)gitea_disable_gravatar
: Czy chcesz wyłączyć Gravatar? (prawa prywatności itp.) (prawda/fałsz)gitea_offline_mode
: To samo, ale dla wyłączenia CDN dla zasobów frontendowych (prawda/fałsz)gitea_disable_registration
: Czy chcesz wyłączyć rejestrację użytkowników? (prawda/fałsz)gitea_only_allow_external_registration
: Czy chcesz wymusić rejestrację tylko za pomocą zewnętrznych usług? (prawda/fałsz)gitea_show_registration_button
: Czy chcesz pokazać przycisk rejestracji? (prawda/fałsz)gitea_require_signin
: Czy wymagasz logowania, aby zobaczyć repozytoria (nawet publiczne)? (prawda/fałsz)gitea_enable_captcha
: Czy chcesz włączyć captcha? (prawda/fałsz)gitea_themes
: Lista włączonych motywówgitea_theme_default
: Motyw domyślny
Bezpieczeństwo
gitea_secret_key
: Klucz sekretu ciasteczkagitea_internal_token
: Wewnętrzny token APIgitea_disable_git_hooks
: Czy chcesz wyłączyć interfejs dodawania hooków git? Jeśli jest włączone, może to stanowić lukę w bezpieczeństwie. Domyślnie włączone (prawda/fałsz)
Ograniczenia
gitea_user_repo_limit
: Ogranicza liczbę repozytoriów, jakie może mieć użytkownik (-1 dla nieograniczonej liczby)
Konfiguracja HTTP
gitea_http_domain
: Domen HTTP (wyświetlana w adresach URL klonowania, tylko domena jak git.foo.fr)gitea_root_url
: Główny adres URL używany do dostępu do aplikacji webowej (pełny adres URL)gitea_protocol
: Protokół nasłuchu (http/https)gitea_http_listen
: Adres przypisaniagitea_http_port
: Port przypisaniagitea_disable_http_git
: Wyłączyć korzystanie z Gita przez HTTP? (prawda/fałsz)
Konfiguracja SSH
gitea_ssh_listen
: Adres przypisania dla serwera SSHgitea_ssh_domain
: Domen SSH (wyświetlana w adresach URL klonowania)gitea_start_ssh
: Czy chcesz uruchomić wbudowany serwer SSH? (prawda/fałsz)gitea_ssh_port
: Port przypisania SSH
Konfiguracja bazy danych
gitea_db_type
: Typ bazy danych, może byćmysql
,postgres
lubsqlite3
gitea_db_host
: Ciąg hosta bazy danychhost:port
lub/run/postgresql/
przy połączeniu z postgres przez lokalny unix socket (autoryzacja peer)gitea_db_name
: Nazwa bazy danychgitea_db_user
: Nazwa użytkownika bazy danychgitea_db_password
: Hasło bazy danychgitea_db_ssl
: Używaną SSL? (tylko postgres!). Może byćrequire
,disable
,verify-ca
lubverify-full
gitea_db_path
: Ścieżka do bazy danych, jeśli używaszsqlite3
. Domyślna jest wystarczająca do działania.
Konfiguracja mailera
gitea_mailer_enabled
: Czy włączyć mailera. Domyślnie:false
gitea_mailer_skip_verify
: Pomiń weryfikację certyfikatu TLS SMTP (prawda/fałsz)gitea_mailer_tls_enabled
: Włącz TLS dla połączeń SMTP (prawda/fałsz)gitea_mailer_host
: Nazwa hosta i port serwera SMTPgitea_mailer_user
: Użytkownik serwera SMTPgitea_mailer_password
: Hasło serwera SMTPgitea_mailer_from
: Adres e-mail nadawcygitea_enable_notify_mail
: Czy e-maile powinny być wysyłane do obserwatorów repozytorium, gdy coś się wydarzy. Domyślnie:false
gitea_mail_default
: Domyślna konfiguracja powiadomień e-mail dla użytkowników (można konfigurować użytkownikom). Opcje: włączone, na wzmiankę, wyłączone (domyślnie:na wzmiankę
)gitea_autowatch_new_repo
: Włącz to, aby wszyscy użytkownicy organizacji obserwowali nowe repozytoria, gdy są tworzone (domyślnie:false
)gitea_autowatch_on_change
: Włącz to, aby użytkownicy obserwowali repozytorium po pierwszym commitcie w nim (domyślnie:true
)gitea_show_mailstones_dashboard
: Włącz to, aby pokazać stronę pulpitu nawigacyjnego kamieni milowych - widok wszystkich kamieni milowych użytkownika (domyślnie:true
)
Konfiguracja Fail2Ban
Jeśli jest włączone, skonfiguruje filtr i konfigurację więzienia fail2ban dla Gitea, jak opisano w Dokumentacji Gitea.
Ponieważ zostaną tylko wdrożone pliki konfiguracyjne, fail2ban musi być już zainstalowany, w przeciwnym razie skrypt zakończy się niepowodzeniem.
gitea_fail2ban_enabled
: Czy wdrożyć konfigurację fail2ban?gitea_fail2ban_jail_maxretry
: Ustawieniemaxretry
w więzieniu fail2ban. Domyślnie:10
gitea_fail2ban_jail_findtime
: Ustawieniefindtime
w więzieniu fail2ban. Domyślnie:3600
gitea_fail2ban_jail_bantime
: Ustawieniebantime
w więzieniu fail2ban. Domyślnie:900
gitea_fail2ban_jail_action
: Ustawienieaction
w więzieniu fail2ban. Domyślnie:iptables-allports
Konfiguracja dostawcy Oauth2
gitea_oauth2_enabled
: Włącz dostawcę Oauth2 (prawda/fałsz)gitea_oauth2_jwt_secret
: Sekret Oauth2 JWT. Może być generowany za pomocągitea generate secret JWT_SECRET
Konfiguracja GIT LFS
gitea_lfs_enabled
: Włącz GIT LFS (duży system plików)gitea_lfs_mode
: Czy LFS powinien być w trybie offline (prawda/fałsz)gitea_lfs_secret
: Sekret JWT dla zdalnego użycia LFS
Konfiguracja punktu końcowego metryk
gitea_metrics_enabled
: Włącz punkt końcowy metrykgitea_metrics_token
: Token Bearer dla zadania skanowania Prometeusza
Konfiguracja indeksatora repozytoriów
gitea_repo_indexer_enabled
: Czy włączyć indeksator repozytoriów (wyszukiwanie kodu). Domyślnie:false
gitea_repo_indexer_include
: Wzory globowe do uwzględnienia w indeksie (lista oddzielona przecinkami). Domyślnie:""
(wszystkie pliki)gitea_repo_indexer_exclude
: Wzory globowe do wykluczenia z indeksu (lista oddzielona przecinkami). Domyślnie:""
(żadne pliki)gitea_repo_exclude_vendored
: Wyłącz pliki sprzedawane z indeksu. Domyślnie:true
gitea_repo_indexer_max_file_size
: Maksymalny rozmiar plików do indeksowania (w bajtach). Domyślnie:1048576
(1 MB)
Kopia zapasowa przy aktualizacji
gitea_backup_on_upgrade
: Możliwe jest utworzenie kopii zapasowej przy każdej aktualizacji gitea. Domyślnie:false
gitea_backup_location
: Gdzie przechowywać kopię zapasową gitea, jeśli zostanie utworzona za pomocą tej roli. Domyślnie:{{ gitea_home }}/backups/
Współpraca
Nie wahaj się utworzyć pull requesta, a w razie wątpliwości możesz skontaktować się ze mną na Twitterze @thomas_maurice.
Chętnie naprawię wszelkie zgłoszone problemy, a co lepsze, przejrzę Twoje pull requesty :)
Testowanie
Testy używają molecule. Aby rozpocząć testy, najpierw zainstaluj zależności. Zalecam użycie wirtualnego środowiska do tego, ale kto to powie.
pip install pew # zainstaluj pew do zarządzania venv
pew new ansible # utwórz venv
pip install -r requirements-travis.txt # zainstaluj wymagania
molecule test # Uruchom właściwe testy
Uwaga: potrzebujesz zainstalowanego Dockera
Znane ograniczenia testowe
Obecnie głównie weryfikujemy, czy playbook działa, czy linia ma się dobrze i tym podobne. Ponieważ działa w Dockerze, obecnie nie mamy sposobu, aby sprawdzić, czy usługa jest rzeczywiście uruchamiana przez systemd. To wymaga dalszej pracy.
Licencja
Copyright 2019-present Thomas Maurice
Redistribucja i użycie w formie źródłowej i binarnej, z lub bez modyfikacji, są dozwolone pod warunkiem spełnienia następujących warunków:
1. Dystrybucje kodu źródłowego muszą zachować powyższe powiadomienie o prawach autorskich, tę listę warunków i następujące zrzeczenie się.
2. Dystrybucje w formie binarnej muszą powielić powyższe powiadomienie o prawach autorskich, tę listę warunków i następujące zrzeczenie w dokumentacji i/lub innych materiałach dostarczanych z dystrybucją.
3. Ani nazwa posiadacza praw autorskich, ani nazwy jego współpracowników nie mogą być używane do popierania lub promowania produktów opartych na tym oprogramowaniu bez wcześniejszej pisemnej zgody.
TO OPROGRAMOWANIE JEST DOSTARCZANE PRZEZ POSIADACZY PRAW AUTORSKICH I WSPÓŁPRACOWNIKÓW "TAK JAK JEST", A WSZELKIE WYRAŹNE LUB IMPLIKOWANE GWARANCJE, W TYM, ALE NIE OGRANICZAJĄC SIĘ DO, IMPLIKOWANE GWARANCJE HANDLOWOŚCI I PRZYDATNOŚCI DO OKREŚLONEGO CELU SĄ WYKLUCZONE. W ŻADNYM WYPADKU POSIADACZ PRAW AUTORSKICH LUB WSPÓŁPRACOWNICY NIE BĘDĄ ODPOWIEDZIALNI ZA JAKIEKOLWIEK BEZPOŚREDNIE, POŚREDNIE, INCYDENTALNE, SZCZEGÓLNE, WZORCOWE LUB WYNIKOWE SZKODY (W TYM, ALE NIE OGRANICZAJĄC SIĘ DO, NABYWANIA ZAMIENNYCH TOWARÓW LUB USŁUG, UTRATY UŻYTKU, DANYCH LUB ZYSKÓW LUB PRZERW W DZIAŁALNOŚCI) JAKĄKOLWIEK DROGĄ I NA JAKIEJ KOLWIEK TEORII ODPOWIEDZIALNOŚCI, NIEZALEŻNIE OD TEGO, CZY W UMOWIE, SUROWEJ ODPOWIEDZIALNOŚCI LUB DELIKCIE (W TYM ZANIEDBANIE LUB INNE) WYNIKAJĄCE W DOWOLNY SPOSÓB Z UŻYTKOWANIA TEGO OPROGRAMOWANIA, NAWET JEŚLI ZOSTALI POINFORMOWANI O MOŻLIWOŚCI TAKIEGO USZKODZENIA.
Ansible Role - Gitea
ansible-galaxy install thomas_maurice.ansible_role_gitea