2019年12月22日日曜日

GitHub Enterprise Q&A

最近会社でGitHub Enterpriseであんなことやこんなことをやっています。

中の人といろいろやりとりした結果も含めてQ&Aを作りました。

職場でGitHub Enterpriseの導入を検討している方は参考にしてみてください。

基礎編

GitHub Enterpriseって何?

企業用のGitHubです。

以前までは「GitHub Enterprise=オンプレ版GitHub」でしたが、今はオンプレ版はGitHub Enterprise Server(GHES)、クラウド版はGitHub Enterprise Cloud(GHEC)として分離されています。

クラウド版って何?

みなさんが普段https://github.comで開発しているのと同じように、github.comドメイン内の組織アカウントで開発できるようになります。

名前空間はgithub.comと共有しているので、github.com側で取られている組織名やユーザー名は使えません。

個人用と何が違うの?

セキュリティー管理とかのエンタープライズ向けの機能がいろいろあります。

詳しくはこちら

もうちょっと詳しく

GHES(オンプレ版)とGHEC(クラウド版)ってどっちがいいの?

「どっちがいいの?」系質問のテンプレに漏れず、場合によります
両方のメリットを書いておきますので、各自ご判断を。
デメリットは互いの逆です。

GHESのいいところ

  • 企業内の閉じた環境で使える
  • 名前空間がgithub.comと独立しているので、自由な組織名・ユーザー名を使える
  • GitHub Pagesを閉じた環境で使える
GHECのいいところ

  • github.comにリリースされた機能は全て使える
  • バージョンアップの手間がかからない
  • サーバーの管理が不要
あとはGHECを使っている場合、github.comがダウンすると開発業務がストップしてしまうという点がデメリットとして挙げられるかもしれませんが、これはつまるところGitHubと自前のサーバーのどっちが信頼性が高い?という点に集約されるのでどちらのメリットにもデメリットにも入れませんでした。

GHECで使う会社用アカウントを、個人用アカウントと分けて作成できないの?

One person or legal entity may maintain no more than one free Account (if you choose to control a machine account as well, that's fine, but it can only be used for running a machine).
訳:個人または法人は、1人につき1つしか無料アカウントを作成してはいけません(botアカウントの作成は問題ありませんが、 bot目的にしか使ってはいけません)

上記規約では「無料アカウントの複数取得」が禁止されているので、2つめ以降が有料アカウントなら問題ないように読めますが、中の人いわく「そもそも同一人物が複数のアカウントを使う状態は想定していない」そうです。

個人での使用や仕事での使用など、1 つのアカウントを複数の目的で使用できます。 複数のアカウントを作成することはおすすめしません。
といっても、複数アカウントを使うことで何か(技術的な)問題が生じるというわけではないのですが。

GHESでGitHub Actionsを使えるの?

現時点では対応していませんが、来年(2020年)を予定しているそうです。

現在のGitHub ActionsはOSをWindows/macOS/Linux(Ubuntu)から選択できますが、これはGHES側でどのような実装になるのかわかりません。
その部分はクラウド(Azure)で実行するとかかも。

GHESからGHECへ移行できるの?

できます。GHES側にマイグレーションツール(エクスポートツール)が、GHEC側にインポートツールが用意されています。


流れを超簡単に説明すると、

  1. マイグレーションツールを使って移行したいリポジトリをバックアップ
  2. インポートツールにバックアップデータをアップロード
  3. GHESとGHESのユーザマッピング用CSVをアップロード
  4. インポート開始

これだけです。

詳しくは↓こちら↓


以下の点にご注意ください。
  • 現時点ではIssueやPullRequestのリアクション(絵文字)は移行できない
  • オンプレ版のバージョン2.17.5以前では、アーカイブされたリポジトリのIssueコメントがバックアップされないので移行できない
    • 2.17.6で修正済み
    • 2.17.6以降にアップグレードしてバックアップするか、一旦アーカイブを解除する必要あり
  • バックアップサイズがでかいとアップロード自体ができない
    • 5GB程度ではOKで、8GB程度だとNGなのを確認済み
  • バックアップサイズ以外にも、バックアップ対象のデータ数(Issue数、PullRequest数、Commit数等)の合計が大きすぎると移行できない可能性あり(中の人から聞いただけで未検証)
  • Git LFSを使っていると移行に特別な方法が必要らしい(中の人から聞いただけで未検証)

GHECからGHESへ移行できるの?

確認はしていませんが、できる可能性が高いです。
ユーザー名や組織名の制限がないので、GHES→GHECより楽かも。

ただし、最新の機能を使っている部分はさすがに移行できないと思います。

その他

クラウド側で名前空間を独立して使えないの?

https://<組織名>.github.com のようなURLで、組織内で閉じた状態で使えるようなものがないのか聞いてみました。

ムリだそうです。

他からもそういったリクエストも来ているようですが、優先順位はかなり低く、現時点では何も約束できる状態ではない(実装するかどうかすら約束できない)そうです。

secretsを組織全体で使えるようにならない?

今は使えませんが、リクエストがそこそこあるようで、実装するかもしれないそうです。
(少なくとも上記の <組織名>.github.com よりは実現性は高いそうです)

そもそもsecretsとは何かという話ですが、リポジトリごとに管理する秘密のデータのことです。
例えば拙作Install SSH Keyでは、secretsにSSHの秘密鍵を登録しておき、GitHub ActionsでSCPやrsyncといったSSH系の操作をできるようにしています。

このようなデプロイ用の秘密鍵という目的の場合、組織内で共通の秘密鍵を使いたい場合があります。
例えば、GitHub Actionsからは常に踏み台サーバーを経由してrsyncするような構成にした場合、踏み台サーバーへのアクセス用秘密鍵を全てのリポジトリのsecretsに入れておく必要があります。

これが面倒なので、組織内でsecretsを共通して使えるように使えないかと聞いてみたのがこの質問ですが、上記の通り現時点ではムリだそうです。

いかがでしたか?(って書いたらSEO的に良くないんだろうか…)
他にも知りたいことがある場合や「これ違うんじゃね?」という情報をお持ちの方はコメント欄でどうぞ。

0 件のコメント:

コメントを投稿