【GitHubEnterprise】deploykeyを複数リポに適用
したかったの。。。
jenkinsサーバで、複数gitリポのビルドとかしたいし、
マルチプロジェクトだってあるし。。。
でもGitHubEnterpriseの仕様上できない。
お問い合わせしてみたけど、だめですた(つд⊂)エーン
なので、やりかたまとめ。
「project_Aとproject_Bというプロジェクトで、同じdeploy keyを使いたい場合」
1. 鍵を作成
#作る 自分のプロジェクトの名前をつけるとわかりやすいよ。 $ssh-keygen -t rsa -C project_A -f id_rsa_project_A $ssh-keygen -t rsa -C project_B -f id_rsa_project_B
2.設定追加
#なかったら作ってね^^ $vim ~/.ssh/config Host projectA.ghe.hogehoge.co.jp Hostname ghe.hogehoge.co.jp IdentityFile ~/.ssh/id_rsa_project_A Host projectB.ghe.hogehoge.co.jp Hostname ghe.hogehoge.co.jp IdentityFile ~/.ssh/id_rsa_project_B #権限変更 $chmod 600 config
こんなかんじ
3. リモートリポジトリの設定変更
########################## # project_Aの設定 ########################## $cd ~/project_A #今の設定をチェック $ git remote -v origin git@ghe.hogehoge.co.jp:dummyorg/project_A.git (fetch) origin git@ghe.hogehoge.co.jp:dummyorg/project_A.git (push) #変更 $git remote rm origin $git remote add origin git@projectA.ghe.hogehoge.co.jp:dummyorg/projectA.git #変更の確認 $ git remote -v origin git@projectA.ghe.hogehoge.co.jp:dummyorg/project_A.git (fetch) origin git@projectA.ghe.hogehoge.co.jp:dummyorg/project_A.git (push) ########################## # project_Bの設定 ########################## $cd ~/project_B #今の設定をチェック $ git remote -v origin git@ghe.hogehoge.co.jp:dummyorg/project_B.git (fetch) origin git@ghe.hogehoge.co.jp:dummyorg/project_B.git (push) #変更 $git remote rm origin $git remote add origin git@projectB.ghe.hogehoge.co.jpdummyorg/projectB.git #変更の確認 $ git remote -v origin git@projectB.ghe.hogehoge.co.jp:dummyorg/project_B.git (fetch) origin git@projectB.ghe.hogehoge.co.jp:dummyorg/project_B.git (push)
あとは鍵をGHEの対象レポのdeploy keyに設定すればOK。
【GitHub Enterpriseでやった失敗】 ダウングレードできないのね。。
ごめんなさーい(つд⊂)エーン
先日、GitHubEnterpriseの新しいバージョンが出て、
色んな機能が追加されたので、ウキウキでアップグレード(ΦωΦ)♪
GitHub Enterprise 11.10.310 Release · GitHub
いや、いつもはね。。VMWareのスナップショット取ったりしてからやるんだよ。ほんとに。。
でもなんか、色んな諸事情とかもあって、、、モゴモゴ・・・で
まあ、なんか駄目だったらダウングレードすればいいやー的にアップグレードしたわけでふ。
そしたら、ssh経由でpushができないというバグがあった。。orz.....
のーん(つд⊂)
まあ待て。。。落ち着け自分。。。的な感じで、バージョン下げようとしたら。。。
なんか、反映が進まないな。。
お問い合わせしてみたら、
「We don't really support downgrading to a previous version of GitHub Enterprise.」
的な何か返ってきた。
(;゚ロ゚)やばい。。。
ちょいちょいお問い合わせが来たので、これはやばいと、「GHEさんたっけてー」ボタンをぽち。
問い合わせページの
このチェックボックス。
即レスしてくれますね。本当にありがたい。
「We're currently working on a patch release which should be available within the next several minutes that'll get this issue resolved」
several minutesってどんくらいやー(;゚ロ゚)
とかワタワタしてたら、すぐパッチあててくれますた
ほっ。。。(・-・)
はい。すみません。ほんとごめんなさい。
軽率でした。
もう言い逃れできない軽率な行動をとってしまいますた(つд⊂)
てか、GHEさんに感謝すぎて、
「I wish to express my deep gratitude to you for your help !!!!!!!!!!!!! 」
って返信してしまった(・-・)
それから悔い改め、いつも対応してくれるMikeに感謝もこめて、
bug報告をせっせこすることにしました。
Thanks, Mike!!! :)
もう二度とこんな軽率な行動はしませんと自戒の念もこめて。。
柔道で気をつけること
なんで柔道なんだ!?
って、私が柔道してたからなんだけど
昔のブログを読みあさっていたら見つけた。
新卒2年目の9月のブログ。
柔道で戦うときに、気をつけること。 相手と組むときに 『力を抜くこと』 必死な人ほど、手に力が入りがちだけど、ホントは、力を入れてはいけない。 力を入れてると、その力に邪魔されて、技をかかりにくくなる。 必要な瞬間に力を入れればそれでいい。 『顔をあげて相手をみること』 ちゃんと相手を見ないと相手の全体の動きがわからない。 相手をしっかり見えてないときはだいたい足元ばかりに目がいってる。 顔をあげて相手をみること。 とかなんとか。 初心にかえってみた
なるほどね。
柔道のときに教えられたことは、
仕事のときだって何だって一緒。
- 肩の力を抜こう。いざってときに力を出せるように。
- ちゃんと、相手(課題)をみよう。対処はそれからだ。そうじゃないと倒せない
また初心にかえってみた
How to switch over from CVS to Git.
Document is here. →cvs2svn: cvs2git Documentation
Requires..
U can see ... from this link.
cvs2svn: cvs2git Documentation
- U can connect to CVS repo directly..( that is ... U execute on CVS sever...I think)
- Python version 2.4 or later
- git version 1.5.4.4 or later
- others...(If U want to use --use-rcs option, U need co programing. And If --use-cvs option, cvs command is required.)
Hmm....〆(._.)memo.
#python :) $python -V Python 2.4.3 #git :) $git --version git version 1.7.11.3 #CVS :) $cvs --v Concurrent Versions System (CVS) 1.11.22 (client/server) ry) $svn --version svn, バージョン 1.7.4 (r1295709)
Hmm,,,, It's probably ok(○゚ε゚○)
get cvs2git
I did checkout from tigris's subversion repo, not download from download page.
$mkdir cvs2gitwork $cd cvs2gitwork/ $svn co --username=guest --password="" http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk $ls cvs2svn-trunk $cd cvs2svn-trunk/ $ ls -l cvs2git -rwxr-xr-x 1 root root 2466 3月 26 21:56 cvs2git
SWITCH OVER CVS to GIT
At first, stop cron backup jobs.
I did on CVS server.
$ cd /tmp $ mkdir workcvs2git $ cd workcvs2git
execute cvs2git command
I found "imai" project, probably created by Mr. Imai in my company.
So I used project for trial.
$ cvs2git --encoding=utf_8 --encoding=shift_jis --blobfile=/tmp/workcvs2git/testblob.dat --dumpfile=/tmp/workcvs2git/testdump.dat --username=pnsk /usr/local/cvsrepo/imai
The statistics information is displayed as below and cvs2git job is completed.
cvs2svn Statistics: ------------------ Total CVS Files: 97 Total CVS Revisions: 104 Total CVS Branches: 0 Total CVS Tags: 0 Total Unique Tags: 0 Total Unique Branches: 0 CVS Repos Size in KB: 18039 Total SVN Commits: 9 First Revision Date: Mon Sep 10 18:37:06 2007 Last Revision Date: Sat Nov 24 20:34:02 2007 ------------------ Timings (seconds): ------------------ 0.940 pass1 CollectRevsPass 0.007 pass2 CleanMetadataPass 0.004 pass3 CollateSymbolsPass 0.023 pass4 FilterSymbolsPass 0.014 pass5 SortRevisionSummaryPass 0.011 pass6 SortSymbolSummaryPass 0.018 pass7 InitializeChangesetsPass 0.012 pass8 BreakRevisionChangesetCyclesPass 0.012 pass9 RevisionTopologicalSortPass 0.006 pass10 BreakSymbolChangesetCyclesPass 0.011 pass11 BreakAllChangesetCyclesPass 0.011 pass12 TopologicalSortPass 0.023 pass13 CreateRevsPass 0.008 pass14 SortSymbolsPass 0.007 pass15 IndexSymbolsPass 0.017 pass16 OutputPass 1.123 total
Maybe I saw keyword "cvs2svn",,,,??? ( ゚д゚)
It's my imagination..(つд⊂)
create git repo
U select "public" or "private", and NOT check "Initialize this repository with a README"
$ git clone git@xxx.xxx.xxx.xxx:pnsk/imai.git
Hmm,,, import dump files into git repo.
$cd imai $cat /tmp/workcvs2git/testblob.dat /tmp/workcvs2git/testdump.dat | /usr/local/git/bin/git fast-import git-fast-import statistics: --------------------------------------------------------------------- Alloc'd objects: 5000 Total objects: 170 ( 1 duplicates ) blobs : 103 ( 1 duplicates 55 deltas) trees : 59 ( 0 duplicates 21 deltas) commits: 8 ( 0 duplicates 0 deltas) tags : 0 ( 0 duplicates 0 deltas) Total branches: 1 ( 1 loads ) marks: 1073741824 ( 112 unique ) atoms: 117 Memory total: 2344 KiB pools: 2110 KiB objects: 234 KiB --------------------------------------------------------------------- pack_report: getpagesize() = 4096 pack_report: core.packedGitWindowSize = 1073741824 pack_report: core.packedGitLimit = 8589934592 pack_report: pack_used_ctr = 9 pack_report: pack_mmap_calls = 2 pack_report: pack_open_windows = 2 / 2 pack_report: pack_mapped = 13318273 / 13318273 ---------------------------------------------------------------------
push to GitHubEnterprise
#push!!! $git push -u origin master Counting objects: 170, done. Delta compression using up to 4 threads. Compressing objects: 100% (73/73), done. Writing objects: 100% (170/170), 12.70 MiB | 22.36 MiB/s, done. Total 170 (delta 76), reused 170 (delta 76) To git@xxx.xxx.xxx.xxx:pnsk/imai.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
Tips
NOT check "Initialize this repository with a README"
If U checked, when U execute following command
$cat /tmp/workcvs2git/testblob.dat /tmp/workcvs2git/testdump.dat | /usr/local/git/bin/git fast-import
warning messages will be displayed as below.
warning: Not updating refs/heads/master
That is, Repo need empty.
encoding
When U execute cvs2git, if encoding options are insufficient,
error messages will be display..
ERROR: There were warnings converting author names and/or log messages to Unicode (see messages above). Please restart this pass with one or more '--encoding' parameters or with '--fallback-encoding'.
U have to add encoding options U need.
$cvs2git --encoding=utf_8 --encoding=shift_jis .....
Encoding lists is as follows.
7.8. codecs — Codec registry and base classes — Python v2.7.5 documentation
push tags and branches
$/usr/local/git/bin/git push --all origin $/usr/local/git/bin/git push --tags origin
svnからGitHubEnterpriseに移行
〆(._.)メモメモ.
事前準備
svn2gitコマンドを使います
gem installでインストールできますた
$sudo gem install svn2git
いけた
カンタン
移行
例
project_BをsvnからGitHubEnterpriseに移動します。
|o゚д゚)なんでBやねんって、、、さっきAはやっちゃったから。。。
GHE側の準備
GitHubEnterprise上でorganization作る
やり方は割愛。
画面からぽっちぽっち作れるよ。
organizationを作ったら、必要なメンバーをいれておきましょう。
svnのプロジェクトをgit用の形に変換
最初にインストールした、svn2gitを使いますよ
適当なサーバで、作業ディレクトリとか切ってやりましょう
#プロジェクトのディレクトリを作る $mkdir project_B $ cd project_B
変換のコマンドはこんな感じ
$svn2git -v --trunk ${TRUNK_DIRECTORY} --branches ${BRANCHES_DIRECTORY} --tags ${TAGS_DIRECTORY} http://${SVN_IP}/svn/${REPISITORY_NAME}/${PROJECT_NAME}
今回は、
http://xxx.xxx.xxx.xxx/svn/test_svn2git/project_B
を移行したくて、
プロジェクト構成は、project_Bの下に、trunk,branches,tagsがあるので
$svn2git -v --trunk trunk--branches branches --tags tags http://${SVN_IP}/svn/test_svn2git/project_B #.gitができていることが確認でいる $ cd project_B $ ls -a | grep .git .git
GHEにpushするお
$ git remote add origin http://gheのIP/organazationの名前/NEW_REPOSITORY.git $ git branch -a #GHE側で初期化しちゃった場合は、「おまけ」参照 $ git push --all origin $ git push --tags origin
確認
GHEで正常にpushされてるか確認
cloneできるか確認 git clone http://gheのIP/organazationの名前/NEW_REPOSITORY.git
おまけ
#GHE側で初期化しちゃった場合は、-f が必要 $ git push -f --all --progress origin $ git push --tags --progress origin
【GitHub Enterpriseでやった失敗】rootディレクトリが足りない...
|o゚д゚)< だって、、、だってだって。。。
(つд⊂)エーン
という嘆きはさておき。。
どんくらい足りないか
こんな感じ。。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/enterprise--11-root 7.6G 4.6G 2.7G 64% / udev 4.0G 12K 4.0G 1% /dev tmpfs 1.6G 344K 1.6G 1% /run none 5.0M 0 5.0M 0% /run/lock none 4.0G 0 4.0G 0% /run/shm /dev/sda1 228M 66M 151M 31% /boot /dev/sdb 1.5T 42M 1.5T 1% /data/repositories
7Gちょいしかrootディレクトリがありましぇん。
よくみたらヘッダー部分に60%だよって書いてる。
けど一番困ったのは、アップグレードできない。。(つд⊂)エーン
てかここでいってた。
知らないと残念過ぎるGitHubの新機能とグリー・DeNA・クックパッド・はてな・ペパボ・ドリコムの活用事例~GitHub:E Casual Talkレポート | イベントカレンダー+ログ
魔法のコマンドを使う
#魔法のコマンド ghe-grow-root $ ghe-grow-root -d /dev/sda6 --> Creating /dev/sda6 partition... --> Creating physical volume for /dev/sda6... Physical volume "/dev/sda6" successfully created --> Extending logical volume group... Volume group "enterprise-11" successfully extended Extending logical volume root to 72.75 GiB Logical volume root successfully resized --> Growing filesystem. This may take a few minutes... resize2fs 1.41.14 (22-Dec-2010) Filesystem at /dev/enterprise-11/root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 5 Performing an on-line resize of /dev/enterprise-11/root to 19072000 (4k) blocks. The filesystem on /dev/enterprise-11/root is now 19072000 blocks long.
パーティション切って、勝手に容量割り当ててくれた。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/enterprise--11-root 72G 4.6G 64G 7% / udev 4.0G 12K 4.0G 1% /dev tmpfs 1.6G 348K 1.6G 1% /run none 5.0M 0 5.0M 0% /run/lock none 4.0G 0 4.0G 0% /run/shm /dev/sda1 228M 66M 151M 31% /boot /dev/sdb 1.5T 62M 1.5T 1% /data/repositories
てか、GHEからもらったイメージファイルの時点で
すでにほとんど足りないから、最初からある程度確保してくれたらいいのに。。。。
【gitlab】502 Bad Gateway
minifyしたJSファイルをアップしたら
502 Bad Gatewayが表示されてファイルがみれないんですけど
ってお問い合わせきた。。。
なんかここに答えがのってたよ!!ありがたい
Google Groups
結果、
$ pwd ${GITLAB_HOME}/config $cp unicorn.rb unicorn.rb.20130316 $vim unicorn.rb #30になってたので、上記のURL通り120に変えてみた timeout 120
あとはgitlabを再起動したら表示されたー。
よかった。すぐ解決して。。
追記
バックアップの日付まちがえてた(;゚ロ゚)ハッ