GitLab CEからGitLab.comに移行
GitLabをレンタルしたVPSにインストールして運用していたけど、yum updateしようとしたら下記エラーになるので「もうGitLab.comでいいんじゃね?無料だし」と思って移行したときの覚書。
gitlab-ce-8.7.4-ce.0.el6.x86_64.rpm | 250 MB 02:13
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
エラー: Couldn't fork %pre(gitlab-ce-8.7.4-ce.0.el6.x86_64): メモリを確保できません
Error in PREIN scriptlet in rpm package gitlab-ce-8.7.4-ce.0.el6.x86_64
エラー: install: スクリプト %pre の実行に失敗しました (2)。gitlab-ce-8.7.4-ce.0.el6 をスキップします。
gitlab-ce-8.7.3-ce.0.el6.x86_64 was supposed to be removed but is not!
GitLab.comはプライベートレポジトリが無制限に無料でサポートが有料。
GitHubの新しい有料プランがプライベートレポジトリをたくさん作れるようになったけどGitLab.comはそもそも全部無料だし。
という記事が公式ブログにある。分かりやすい比較表付き。
目次
- GitLab.comにアカウント新規作成してSSH Keyを登録
- Git cloneして試す
- 鍵ファイルを分かりやすい名前に変更
- 各リポジトリを個別に移行
- GitLab CEをアンインストール
1.GitLab.comにアカウント新規作成してSSH Keyを登録
新規アカウントを登録して、SSH Key(公開鍵と秘密鍵)を作成。公式サイトを参考に
# ssh-keygen -t rsa -C hoge@gmail.com
パスフレーズはなしで。
公開鍵を表示して、Profile Settings → SSH Keysに登録
# less ~/.ssh/id_rsa.pub
2.Git cloneして試す
適当なプロジェクトをGitLab上で作成。
gitのグローバルアカウント設定を変更
# git config --global user.name "hoge"
# git config --global user.email hoge@gmail.com
git cloneしてみる
# git clone git@gitlab.com:hoge/test.git
無事cloneできるのを確認
3.鍵ファイルを分かりやすい名前に変更
GitHubのアカウントもあるので秘密鍵と公開鍵の名前を分かりやすいように変更
# cd .ssh
# mv id_rsa id_rsa.gitlab.com
# mv mv id_rsa.pub id_rsa.pub.gitlab.com
設定編集
# less config
Host gitlab.com
RSAAuthentication yes
IdentityFile ~/.ssh/id_rsa.gitlab.com
User git
sshコマンドで確認。どの鍵ファイルを使っているか分かる。
# ssh -vT git@gitlab.com
4.各リポジトリを個別に移行
< 2016/05/20 追記>
移行後に気付いた。GitLabにあるbareリポジトリからpushすれば、もっと簡単だった。
GitLab.com上でプロジェクトを作成後、自サーバーのGitLabのbareリポジトリに移動してプッシュ。
# cd /var/opt/gitlab/git-data/repositories/hoge/project.git/
# git push --mirror git@gitlab.com:hoge/project.git
なので前の方法は非推奨。
GitLabベアリポジトリから足りないブランチをGitLab.comへプッシュする場合
# git remote add origin git@gitlab.com:hoge/project.git
# git fetch origin
# git push origin --all
GitLab.comで更新済みのブランチはエラーになるけど、足りなかったブランチは反映された。
タグも反映する場合
# git push origin --tags
一括でGitLab CEからGitLab.comにエクスポート・インポートする機能はないようなので個別に登録。
GitLab.com上でプロジェクトを作成
移行するリポジトリに移動。originを変更する。一応fetchしてから
# git fetch origin
# git remote set-url origin git@gitlab.com:daiki.suganuma/hoge.git
確認
# git remote -v
push
# git push origin --all
# git push origin --tags
ローカルにリポジトリがない場合はmirrorを使った方法が簡単みたい
小さいプロジェクトは作業用のディレクトリ作ってこの方法使った方が早い。
# git clone --mirror git@gitlab.hoge.jp:hoge/project.git
# cd project.git
# git push --mirror git@gitlab.com:hoge/project.git
5.GitLab CEをアンインストール
GitLab CEを停止してまましばらく運用してみて問題がなさそうなのでアンインストールする。
参考
YUMレポジトリから削除
# rm -f /etc/yum.repos.d/gitlab_gitlab-ce.repo
GitLab停止
# gitlab-ctl stop
アンインストール
# yum remove gitlab-ce
設定ファイル削除
# rm -rf /etc/gitlab/
# rm -rf /opt/gitlab/
ユーザー一覧
# less /etc/passwd
ユーザー削除
# userdel gitlab-www
# userdel git
# userdel gitlab-psql
# userdel gitlab-redis
データとログを削除する場合。
# rm -rf /var/opt/gitlab/
# rm -rf /var/log/gitlab/
< Related Posts >