Skip to content

gitolite にキーをインストールする bash スクリプト

Notifications You must be signed in to change notification settings

answer/gitolite-tools

Repository files navigation

  • gitolite にキーを登録

  • gitolite のリポジトリをバックアップ

  • ubuntu bash

$ cp sample.gitolite.rc $HOME/.gitolite.rc
$ edit $HOME/.gitolite.rc
(下記「設定」参照)
  • gitolite インストール済み

  • gitolite ユーザーのホームディレクトリに gitolite-admin がチェックアウトされている

  • gitolite ユーザーの ~/gitolite-admin で git push が引数なしで通る

  • $HOME/.gitolite.rc

    • gitolite_host=“gitolite サーバーホスト or IP アドレス (設定必須)”

    • gitolite_user=“gitolite をインストールしたユーザーアカウント (default: gitolite)”

    • gitolite_home=“gitolite のホームディレクトリ (default: /home/$gitolite_user)”

    • gitolite_keydir=“gitolite の鍵をインストールするディレクトリ (default: gitolite)”

    • gitolite_admin_user=“gitolite サーバーホスト or IP アドレス (default: root)”

gitolite サーバー上で、自分のユーザーアカウントから gitolite の root ユーザーにアクセスできるようにする

$ ./create_root_user.sh

ssh-keygen が走るので、パスフレーズを「空」で作る
最後に表示される内容を .ssh/config に追記する

$ edit .ssh/config
...

$ ssh root-ans-git info
(gitolite から、アクセスできるリポジトリが返されることを確認)

$ git clone root-ans-git:gitolite-admin
(今後の設定のために、 home に gitolite-admin をチェックアウトしておく)

gitolite サーバー上で、自分のユーザーアカウントから gitolite の ユーザー にアクセスできるようにする

$ ./create_user.sh <ユーザー>

ssh-keygen が走るので、パスフレーズを「空」で作る
最後に表示される内容を .ssh/config に追記する

$ edit .ssh/config
...

$ ssh <ユーザー>-ans-git info
(gitolite から、アクセスできるリポジトリが返されることを確認)

gitolite サーバー以外の機械で、自分のユーザーアカウントから gitolite の ユーザー にアクセスできるようにする

$ ./install_gitolite_key.sh <ユーザー>

ssh-keygen が走るので、パスフレーズを「空」で作る
最後に表示される内容を .ssh/config に追記する

$ edit .ssh/config
...

$ ssh <ユーザー>-ans-git info
(gitolite から、アクセスできるリポジトリが返されることを確認)

gitolite ユーザーでバックアップホストに push して、 gitolite-backup ユーザーでアーカイブを作成する

gitolite が稼動している機械と gitolite-backup を稼働させる機械は別なものにしないと意味が薄い

アーカイブしたファイルはどこか別な場所にコピーしないと意味が薄い

gitolite-backup の repositories/$gitolite_backup_prefix を元の gitolite/repositories に移せばそのまま稼働できる

  • バックアップ用 gitolite インストール済み

  • バックアップ

    • リポジトリディレクトリの読み込み権限がある

    • リポジトリをバックアップするホストにパスワードなしで push 出来る

  • アーカイブ

    • アーカイブディレクトリに書き込み権限がある

  • バックアップ : ~/.gitolite.backup

  • アーカイブ : ~/.gitolite.archives

  • $HOME/.gitolite.rc

    • バックアップ

      • gitolite_backup_ssh=“バックアップホストへ push するための ssh エイリアス (設定必須)”

      • gitolite_repo_path=“gitolite リポジトリディレクトリのパス (default: ~/repositories)”

      • gitolite_backup_path=“バックアップディレクトリのパス (default: ~/.gitolite.backup)”

      • gitolite_backup_prefix=“バックアップディレクトリの接頭辞 (default: gitolite-backup)”

    • アーカイブ

      • gitolite_archive_path=“アーカイブディレクトリのパス (default: ~/.gitolite.archives)”

      • gitolite_tools_root=“gitolite-tools のデプロイパス (default: ~/gitolite-tools)”

      • gitolite_archive_expire_days=“アーカイブを保持する日数 (default: 14)”

  1. $gitolite_repo_path に存在する *.git ディレクトリを検索

  2. リポジトリを ~/.gitolite.backup 以下に clone

  3. リポジトリを $gitolite_backup_ssh に push

  1. $gitolite_repo_path を $gitolite_archive_path に tar.gz でアーカイブ化

  2. $gitolite_archive_expire_days 日以前のアーカイブは削除

About

gitolite にキーをインストールする bash スクリプト

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published