thomas_maurice.ansible_role_gitea

Ansibleロール gitea - giteaサーバーのインストール

Build Status Ansible Role Ansible Role Ansible Quality Score

このロールは、giteaサーバーをインストールおよび管理します。 ソースコードとスクリーンショットはこちら

GiteaはGolangで開発されたGitリポジトリ用のWebアプリで、見た目や使い勝手はGitHubと似ています。

プレイブックでの使用例

以下のコードはDebian 8でテストされており、Ubuntuでも動作するはずです。

- name: "giteaのインストール"
  hosts: all
  vars:
    gitea_user: "gitea"
    gitea_home: "/var/lib/gitea"
    # ユーザーあたり30リポジトリに制限
    gitea_user_repo_limit: 30
    # フロントエンドアセットのために公共CDNを使用しない
    gitea_offline_mode: true

    # URLのレンダリングオプション
    gitea_http_domain: git.yourdomain.fr
    gitea_root_url: https://git.yourdomain.fr

    # リバースプロキシの後ろにいると仮定し、
    # localhost:3000でHTTPを使用します。
    gitea_protocol: http
    gitea_http_listen: 127.0.0.1
    gitea_http_port: 3000

    # SSHサーバーの設定
    gitea_ssh_listen: 0.0.0.0
    gitea_ssh_port: 2222
    # URLのレンダリング用
    gitea_ssh_domain: git.yourdomain.fr
    gitea_start_ssh: true

    gitea_secret_key: 3sp00ky5me
    gitea_disable_gravatar: true
    # 最初のユーザーの登録を可能にする
    gitea_disable_registration: false
    gitea_require_signin: true
    gitea_enable_captcha: true

    gitea_show_user_email: false
  roles:
    - gitea

より詳細なオプション

一般

  • gitea_version_check: インストールされているバージョンがgitea_versionと異なる場合、バイナリのダウンロードを開始します。
  • gitea_user: Giteaが使用するUNIXユーザー
  • gitea_group: Giteaが使用するUNIXグループ
  • gitea_home: 作業の基本ディレクトリ
  • gitea_dl_url: コンパイルされたgiteaバイナリをダウンロードするURL
  • gitea_systemd_cap_net_bind_service: systemdサービスファイルにAmbientCapabilities=CAP_NET_BIND_SERVICEを追加します。
  • gitea_extra_config: 追加の設定

見た目と使い勝手

  • gitea_app_name: 表示されるアプリケーション名
  • gitea_show_user_email: メールアドレスを表示しますか? (true/false)
  • gitea_disable_gravatar: Gravatarを無効にしますか? (プライバシーのため等) (true/false)
  • gitea_offline_mode: フロントエンドアセットのCDNを無効にしますか? (true/false)
  • gitea_disable_registration: ユーザー登録を無効にしますか? (true/false)
  • gitea_only_allow_external_registration: 第三者のサービスを使用してのみ登録を強制しますか? (true/false)
  • gitea_show_registration_button: 登録ボタンを表示しますか? (true/false)
  • gitea_require_signin: リポジトリを見るためにサインインが必要ですか? (true/false)
  • gitea_enable_captcha: CAPTCHAを有効にしますか? (true/false)
  • gitea_themes: 有効なテーマのリスト
  • gitea_theme_default: デフォルトテーマ

セキュリティ

  • gitea_secret_key: クッキーの秘密鍵
  • gitea_internal_token: 内部APIトークン
  • gitea_disable_git_hooks: Gitフックを追加するインターフェースを無効にしますか? (true/false) (有効にするとセキュリティのリスクがあります)

制限

  • gitea_user_repo_limit: ユーザーが持てるリポジトリの数を制限します(無制限の場合は-1)。

HTTP構成

  • gitea_http_domain: HTTPドメイン(クローンURLに表示される、ドメインのみ)
  • gitea_root_url: WebアプリにアクセスするためのルートURL(完全なURL)
  • gitea_protocol: リスニングプロトコル(http/https)
  • gitea_http_listen: バインドアドレス
  • gitea_http_port: バインドポート
  • gitea_disable_http_git: HTTPを介したGitの使用を無効にしますか? (true/false)

SSH構成

  • gitea_ssh_listen: SSHサーバーのバインドアドレス
  • gitea_ssh_domain: SSHドメイン(クローンURLに表示される)
  • gitea_start_ssh: 組み込みのSSHサーバーを起動しますか? (true/false)
  • gitea_ssh_port: SSHバインドポート

データベース構成

  • gitea_db_type: データベースの種類:mysqlpostgres、またはsqlite3
  • gitea_db_host: データベースホストの文字列 host:port または、ローカルのUnixソケットを介してPostgresに接続する場合は/run/postgresql/
  • gitea_db_name: データベース名
  • gitea_db_user: データベースユーザー名
  • gitea_db_password: データベースパスワード
  • gitea_db_ssl: SSLを使用しますか?(postgresのみ!)。requiredisableverify-ca、またはverify-fullを指定します。
  • gitea_db_path: sqlite3を使用する場合のDBパス。

メール設定

  • gitea_mailer_enabled: メール送信機能を有効にしますか? デフォルト: false
  • gitea_mailer_skip_verify: SMTP TLS証明書の検証をスキップしますか? (true/false)
  • gitea_mailer_tls_enabled: SMTP接続のためのTLSを有効にしますか? (true/false)
  • gitea_mailer_host: SMTPサーバーのホスト名とポート
  • gitea_mailer_user: SMTPサーバーのユーザー名
  • gitea_mailer_password: SMTPサーバーのパスワード
  • gitea_mailer_from: 送信者のメールアドレス
  • gitea_enable_notify_mail: リポジトリのウォッチャーに何かが起こった際にメールを送りますか? デフォルト: false
  • gitea_mail_default: ユーザーによるメール通知のデフォルト設定(ユーザーが設定可能)。オプション: enabled、onmention、disable (デフォルト: onmention )
  • gitea_autowatch_new_repo: 新しいリポジトリ作成時にすべての組織ユーザーにウォッチを有効にしますか?(デフォルト: false
  • gitea_autowatch_on_change: その後の最初のコミット後にリポジトリをウォッチしますか? (デフォルト: true
  • gitea_show_mailstones_dashboard: マイルストーンダッシュボードページを表示しますか? (デフォルト: true

Fail2Ban設定

有効にすると、Gitea用のfail2banフィルターおよび監視設定がデプロイされます。Giteaドキュメントに従ってください。

この設定ファイルのみがデプロイされるため、fail2ban は事前にインストールしておく必要があります。

  • gitea_fail2ban_enabled: fail2ban設定をデプロイしますか?
  • gitea_fail2ban_jail_maxretry: fail2ban監視のmaxretry設定。デフォルト: 10
  • gitea_fail2ban_jail_findtime: fail2ban監視のfindtime設定。デフォルト: 3600
  • gitea_fail2ban_jail_bantime: fail2ban監視のbantime設定。デフォルト: 900
  • gitea_fail2ban_jail_action: fail2ban監視のaction設定。デフォルト: iptables-allports

OAuth2プロバイダー設定

  • gitea_oauth2_enabled: OAuth2プロバイダーを有効にしますか? (true/false)
  • gitea_oauth2_jwt_secret: OAuth2 JWT秘密鍵。 gitea generate secret JWT_SECRET で生成できます。

GIT LFS設定

  • gitea_lfs_enabled: GIT LFS(大きなファイルシステム)を有効にしますか?
  • gitea_lfs_mode: LFSをオフラインモードにしますか? (true/false)
  • gitea_lfs_secret: リモートLFS使用のためのJWT秘密鍵

メトリクスエンドポイント設定

  • gitea_metrics_enabled: メトリクスエンドポイントを有効にしますか?
  • gitea_metrics_token: Prometheusスクレイプジョブのためのベアラートークン

リポジトリインデクサー設定

  • gitea_repo_indexer_enabled: リポジトリインデクサー(コード検索)を有効にしますか? デフォルト: false
  • gitea_repo_indexer_include: インデックスに含めるグロブパターン(カンマ区切りリスト)。デフォルト: "" (すべてのファイル)
  • gitea_repo_indexer_exclude: インデックスから除外するグロブパターン(カンマ区切りリスト)。デフォルト: "" (ファイルなし)
  • gitea_repo_exclude_vendored: インデックスからベンダーファイルを除外しますか? デフォルト: true
  • gitea_repo_indexer_max_file_size: インデックスに含めるファイルの最大サイズ(バイト単位)。デフォルト: 1048576 (1 MB)

アップグレード時のバックアップ

  • gitea_backup_on_upgrade: giteaの更新ごとにバックアップを作成できますか? デフォルト: false
  • gitea_backup_location: このロールで作成された場合のgiteaバックアップの保存場所。デフォルト: {{ gitea_home }}/backups/

貢献

プルリクエストを作成するのをためらわないでください。疑問がある場合は、Twitterで@thomas_mauriceまでご連絡ください。

オープンされた問題を修正することを楽しみにしていますし、プルリクエストのレビューも歓迎します :)

テスト

テストは、moleculeを使用します。テストを開始するには、まず依存関係をインストールしてください。仮想環境(virtualenv)を使用することをお勧めしますが、何をすべきかは私に言う権利はありません。

pip install pew # venvを管理するためのpewをインストール
pew new ansible # venvを作成
pip install -r requirements-travis.txt # 要件をインストール
molecule test # 実際のテストを実行

注意: Dockerがインストールされている必要があります。

既知のテスト制限

現在、プレイブックが実行されること、lintが正常であることなどを確認しています。 Dockerで実行しているため、サービスがsystemdによって実際に起動されているかどうかを確認する手段が現在はありません。 この点は今後取り組む必要があります。

ライセンス

Copyright 2019-present Thomas Maurice

ソースおよびバイナリ形式での再配布および使用は、変更の有無にかかわらず、次の条件が満たされている場合に許可されます。

1. ソースコードの再配布は、上記の著作権表示、この条件のリスト、および次の免責事項を保持しなければなりません。

2. バイナリ形式の再配布は、上記の著作権表示、この条件のリスト、および次の免責事項を配布に含まれる文書やその他の材料に再現しなければなりません。

3. 著作権保有者の名前やその貢献者の名前を、事前の書面による特別な許可なしに、このソフトウェアから派生した製品を支持または宣伝するために使用することはできません。

このソフトウェアは、著作権保有者および貢献者によって「現状のまま」提供され、明示的または暗黙的な保証、商業性や特定の目的への適合性の暗黙の保証が含まれているかどうかにかかわらず、明示的または暗黙的な保証は否認されます。著作権保有者または貢献者は、いかなる場合においても、直接的、間接的、偶発的、特別、例外的または結果的損害(代替品の調達、使用、データまたは利益の喪失、商業の中断を含むがこれに限定されない)に対して責任を負わないものとし、いかなる理論に基づいても、契約、不法行為(過失を含む)にかかわらず、使用の結果として生じる損害についても同様とします。
インストール
ansible-galaxy install thomas_maurice.ansible_role_gitea
ライセンス
bsd-3-clause
ダウンロード
82.6k
所有者
Lead Site Reliability Engineer