GitosisからGitoliteへの痛みのない移行

Gitosisはサポートされなくなり、Debian Wheezyの安定版リリースもそう遠くはありません。 したがって、ジトライトへの移行が決定されました。 対応するマニュアルがあるという事実にもかかわらず、それは質問への答えを与えません-「それをして、何も壊さないように?」 これについて説明します。



アイデアは次のとおりです。同じユーザーでgitoliteを生成し、その動作を確認し、ダウンタイムを最小限に抑えてgitosisをgitoliteに置き換えます。



インストールは1人のユーザーで実行されるため、競合が発生する可能性があります。 そのため、デフォルトの構成中に、次の場所で競合が発生する可能性があることが判明しました: 〜/リポジトリリポジトリが置かれているフォルダーと、これらのアプリケーションによって自動的に生成される〜/ .ssh / authorized_keysファイル。 前者の場合、デフォルトのパスを変更することは可能ですが、後者の場合、gitoliteの著者はそのような機会を提供しませんでした。 perlがありますが、それは問題ではありません。突破しましょう。 小さなコミットにより状況が修正されました 。 柔軟性を高めるため、ソースからインストールすることをお勧めします。 別の方法はパッケージを再構築することですが、パッケージを単に更新することに関連する利点は失われます。 したがって、最初のオプションが望ましいです。



私はすでにインストールさているので、完全なインストールはペイントしません。特定のポイントのみを説明します。 gitoliteセットアップを実行する前に、 src / lib / Gitolite / Rc.pm ファイルGL_REPO_BASEおよびSSH_AUTH_KEYパラメーターを変更する必要があります 。 たとえば、 authorized_keysauthorized_keys_gitoliteに置き換え、 GL_REPO_BASEで別のフォルダーを指定します。 競合が除外されるため、インストールを安全に続行できます。



Gitoliteとgitosisはsshの1つのインスタンスを同時に使用できないため、2番目のインスタンスを上げましょう。 これを行うには、アドレスを/ etc / ssh / sshd_configにコピーして/ etc / ssh / sshd_config_gitoliteに記述し、後者を変更します。

その中のAuthorizedKeysFileフィールドのコメントを外し、gitolite configで以前に指定されたファイルを登録する必要があります(この場合、それはauthorized_keys_gitoliteです )。 また、 Portパラメーターを別のパラメーターに置き換えて、 22222にします。



デバッグモードでsshを実行しますsudo / usr / sbin / sshd -ddd -f / etc / ssh / sshd_config_gitoliteとその動作を確認します。 これを行うには、テストリポジトリgit clone ssh:// git @ git-server:22222 / testingを複製します 。 次に、gitolite マニュアルに記載されている移行に進みます 。キーを追加し、構成を移行し、アクセス権をテストします。



最後のステップは、下痢からギトライトへの切り替えです。 これを行うには、 .ssh / authorized_keysファイルを別の場所に移動することにより、すべてのgitへのアクセスを遮断します(新しい変更がないようにします)。 次に、2つの方法があります。リポジトリを〜/リポジトリから〜/ repoにコピーするか、シンボリックリンクを作成します。 リポジトリを移動した後、マニュアルの説明に従ってgitolite setupを実行します。 最後のステップはSSH_AUTH_KEYをデフォルト値に置き換え、 authorized_keys_gitoliteファイルの名前をauthorized_keysに変更することです。 したがって、移行は正常に完了しました。



肝心な点:ジトリットは独立してインストールされ、事前に構成をテストできるため、この方法は非常に簡単です。 この方法の利点は、ダウンタイムがゼロになる傾向があることです。



素敵な移行を!



All Articles