GitHub Enterpriseがやってきた!~導入編~

このエントリーをはてなブックマークに追加
どうもはじめまして。
シャノンで社内インフラを担当しているma2iです。
入社してからもうすぐ半年になるのですが、時間って本当に早いですね。
今回初のブログ当番という事で、今年買った輸入盤ベスト5でも紹介しようと
思ったのですが、技術ブログなのでそれはダメだそうです・・。

閑和休題。
何を書こうか迷ったのですが、先日社内に導入した「GitHub Enterprise」(以下GHE)に
ついて書いてみたいと思います。GitHubについては様々な情報があるのですが、GHEに
関しては日本語の情報がまだ少ない気がします。今回の作業の経緯をまとめることで、
GHE導入を躊躇している管理者の方々の参考になればよいかと思います。

■GitHub Enterpriseとは?(一応説明しておきます)

GitHubをクローズドな環境で使うために、GitHub社が提供しているソフトウェアです。
機能やインタフェースもGitHubとほぼ同じなので、プライベートながらも、
ユーザから見ると違和感なく使うことができるのが利点です。
VMware環境で稼働という制限があるため、基本はオンプレ環境で構築する事になります。
(Virtual Boxでも動作するらしいですが、本番での使用はどうなんでしょう?)
root権限はないので、中身についてはブラックボックスです。
基本的な設定はWebベースの管理画面で行います。細かい設定をする際には、
SSHでログインできるadminユーザがあるので、提供されているコマンドユーティリティを
使って運用管理を行っていきます。管理者はここが腕の見せ所になります。
以下のサイトを見ると、adminユーザで何ができるかイメージがつかめると思います。

・Command-line Utilities
https://enterprise.github.com/help/articles/command-line-utilities

GHE導入経緯と目的

大方、他社の事情とそれほど変わらないと思いますが、このような目的で導入に至りました。
  • ソースコードを会社の資産としてきちんと管理・保管したい
  • ブランチオフィスと密なコミュニケーションをとって生産効率性を高めたい
  • 混在しているSCMをGHEに一元化する事でスキルの統合と管理コストの軽減
  • 元々、GitやGitHubのPrivate版を使用していたので、Git自体は定着している
  • 開発者にとって魅力的な環境ですよ、という外部へのアピール(いい人材の確保)

■購入

ライセンス有効期間は1年、20ユーザ単位で50$です。今の為替で換算すると、
1ユーザで月間料金は2000円くらいでしょうか。
どうでもいいですけど、私の携帯料金より高いですね・・。
ちなみに沢山購入してもディスカウントはなさそうです。
運用途中でユーザ数が増えた場合は、追加購入も可能です。

■支払方法


  • クレジットカード
  • 海外送金
支払完了からの使用ではなく、即日から使用開始となりますので、
試用期間でノウハウを身に着けて準備が完全に整ってからの購入をおすすめします。

■ハードウェア構成


  • OS:VMware vSphere 5.1 Essentials
  • CPU:6Core
  • Memory:16G
  • HDD:600G (RAID10構成 SAS 1.5K) 


■ネットワーク構成

GHEはIDCに設置しています。IDCとのネットワークは、FletsVPNを使ってます。
プロバイダを通らないので、インターネットVPNよりもセキュアで安定した速度で
使えるのが利点です。

■バックアップ

今のところはGHEで用意されているエクスポートツールで充分なので、
シェル化したものをJenkinsでコントロールしてバックアップしています。
少し変わっているのは、DR先がオフィスになっている所でしょうか。
VMスナップショットは、パッチ適用の前に実施するくらいしか使っていないです。
エクスポートツールはフルバックアップになるので、データ量が増えてきたら、
AWS Storage Gatewayの利用やvmProtectなどの導入を検討するかもしれません。

バックアップについては以下のサイトを参考にしました。
・Backing up your installation
https://enterprise.github.com/help/articles/backing-up-your-installation

■Active Directory(AD)連携の実際

GHEのアカウント管理方法は、LDAP連携(AD連携)をとっています。
シャノンで使用しているADは、Windows 2012 Serverになります。
[11.10.320]からLDAP連携が強化されたアナウンスがあり、期待して導入したのですが、
実際に構築してみると、以下のようなバグがありました。

[11.10.324]
Doman Baseに指定した配下に日本語のOU名があると、TEST LDAPは通るのですが、
Save Setting後にコンフィグレーションが一切動作しなくなるという事象がありました。
一時的に対象の日本語OUを英語表記に修正して使用していました。

[11.10.325]

TEST LDAP自体が通らなくなり、LDAP連携自体ができなくなりました・・。
LDAPにおける、Internal Server Errorです。
状況が悪化したので、修正パッチできるまで[324]に戻して使用していました。
GHEはダウングレードができないようなので、パッチ適用前のスナップショットは
必須ですね。こちらは修正パッチができるまでに少し時間がかかりました。

両者とも、UTF-8エンコードに関する問題で、LDAPライブラリに問題があったとの
回答がありました。現在リリースされている、[11.10.326]で上記問題を解決してくれたので、
OUやその他の属性に日本語が含まれていてもLDAP連携は可能になりました。
ADの場合は、部署名に日本語を使っているケースは普通にあると思いますので、
AD連携を使用する場合は、最新のパッチを適用した方がよいと思います。

補足ですが、特にDomainBaseで範囲を絞らなくても、Restricted usergroupsに
グループを指定すると、そのグループ以外使えなくなりますので、ここにGHE専用の
グループを用意するとよいでしょう。ちなみにグループの入れ子はできませんでした。
色々ありましたが、AD連携はやはり便利だと思います。特にユーザが増えてくるとこの
利便性は無視できないと思います。既存でADを使っている場合は是非検討してみてください。

AD連携の設定は以下のサイトが参考になると思います。
・Configuring LDAP Authentication
https://enterprise.github.com/help/articles/configuring-ldap-authentication

さて、ここからはFAQ形式で。


■インストール/初期設定は簡単か?

OVFテンプレートをダウンロードして、デプロイするだけなので簡単です。
管理ツールもわかりやすいですし、設定するところでつまずくところはないと思います。

■VMwareのノウハウは必要?

私は前から使っていたので、感覚値があまり当てにならないですが、
VMware HAでも使用しない限りは、それほどVMwareのノウハウはいらないと
個人的には思います。(そもそもコンソールにあまり触る事がないので)
スナップショットの取得などが分かっていれば十分かと。

■VMwareToolsのアップデートは可能?

専用のコマンドユーティリティが用意されているので、アップデート可能です。
今後VMware自体をアップデートしても、VMwareToolsは認識することができそうです。
VMwareToolsを認識していると、静止ゲストファイルシステムが使えるので、
スナップショットを取得するときに安心なんですよね。

■サポートはどう?

レベルも高く、臨機応変に対応してくれます。日本の形式ばったサポートより全然いいです。
ただ、どうしても時差の関係があるので、回答は翌日の深夜時間になってしまいます。
サーバが動作しないなど、大きな問題が起きた場合は、緊急のヘルプがあるので、
その場合はすぐに連絡がつくようです(まだお願いしたことはないです)

■英語はできなくても大丈夫?

最初は人に聞いたりサイトの例文をみて文法を気にしていましたが、
段々面倒になってきたので、思いつくままに英文を書いてました。
文法はメチャクチャだったと思いますが、バグフィックスの依頼までできたので、
意図は通じていたのだと思います。
ただ、込み入ったところは、画面遷移をPDFにして状況を説明したりしました。
英語が理解できるに越したことはないけれど、できなくても何とかなります。
(でも、やっぱりできた方がいいかな)


■ディスクサイズは足りる?

私が初期構築したバージョン(11.10.320)ではすでにルート(/)領域は、
70Gで切られていました。先人の苦労のおかげですね。ありがとうございます!
とりあえずはデフォルトの状態で使用しますが、いずれ拡張する事があると思うので、
噂のパーティション拡張コマンド[ghe-grow-root]について調べてみました。
このコマンドに限らずGHEのツールはbashなので分かりやすくていいです。

内部はLVMで構成されています。コマンドの中身はこんな感じでした。

  1. fdisk
  2. 追加ストレージをpvcreate
  3. vgextendでVGにまとめる
  4. lvresizeで拡張
  5. resize2fsで/にマージ
ディスク拡張の手順もシンプルです。
  1. vmclientでディスクを拡張する。
  2. CLI実行![ghe-grow-root -d /dev/sda6]

少し気になったのは、一度この操作で拡張してしまうと、二回目以降はデバイス名を
変えても成功しませんでした・・。まだ拡張するわけではなかったので、サポートに
聞いてないですが、拡張作業はワンチャンスなのかもしれません(未確認)

先人の苦労話は、こちらのサイトで語られていました。
・GitHub:E Casual Talk
https://event.atmarkit.co.jp/events/847c33a804682aea8b4596e790802343/atmarkit_report

■正直な所、導入してどう?

まだ運用しはじめたばかりなので、判断が難しいですが、最初の1,2年くらいは
手がかかるのは覚悟した方がよさそうな印象です。やっぱりオンプレ運用なので
これはしょうがないですね。
専任とまではいかないまでも、ちょっと癖があるので、管理者の方には
それなりに負担がかかるでしょう。(開発で兼任される方はお気の毒です・・)
ソフトウェアの質については大分こなれてきたとはいえ、まだまだな
部分があるので、そこをある程度許容できるのであればいいと思います。

■GitHubへの要望は?

権限周りの設定をADとうまく連携できるといいですね。
現在、AD連携で権限設定できるのは、管理者権限くらいなので、
ADの権限属性やグループをOrganizationsとうまく連携できればと思うのですが、
現状の事情を考えると難しいかもしれませんね。
あとは、次回リリース予定のマネジメントコンソールAPIも期待しています。

■今後の運用

社内ではまだ移行中の為、本格稼働していません。
今後リポジトリをGHEに集約していく中で、色々と要望がでてくると思うので、
その辺の移行方法や運用について、また次回に報告できればと思います。

以上、二ヶ月前の自分が知りたかった、GitHub Enterpriseの導入についてのお話でした~。



次の記事
« Prev Post
前の記事
Next Post »
Related Posts Plugin for WordPress, Blogger...