Anonim

Gitlabを選ぶ理由

クイックリンク

  • Gitlabを選ぶ理由
  • セットアップ
  • 依存関係のインストール
  • Gitlabをインストールする
  • セットアップを実行する
  • 初期設定
  • SSHをセットアップする
    • 通常のSSHの場合
  • UFWを構成する
  • おわりに

プロジェクトをホストし、コードを共有するための素晴らしいオプションがたくさんあります。 今すぐGithubアカウントを無料でセットアップできます。 それでは、なぜGitlabを自分でセットアップするのに苦労するのでしょうか?

それにはいくつかの良い議論がありますが、実際には、少なからずプライバシーです。 Gitlabはあなたのものです。 それをホストし、所有します。 そのため、リポジトリにアクセスできるユーザーを制御できます。 また、プラットフォーム自体を制御できることも意味します。 企業ポリシー、価格のarbitrary意的な変更、またはデータ収集の対象ではありません。

自己ホスト型バージョン管理は、コードにアクセスするためにサービスに依存しないことも意味します。 確かに、Githubなどのサービスが停止のために完全に利用できなくなる可能性はわずかですが、その可能性はまったくありませんか?

Gitlabのセットアップも非常に簡単で、オープンソースのGitlabソフトウェアを実行するLinuxサーバーがあれば十分です。そのほとんどは事前に構成されており、すぐに実行できます。

セットアップ

始める前に、ローカルでホストする予定がない限り、GitlabをホストするようにVPSをセットアップする必要があります。 DigitalOceanLinodeのようなホスティング会社は、サーバーを稼働させるコスト効率の高いオプションを提供しています。

サーバーのドメイン名も購入することをお勧めします。 または、Gitlabサーバーで既存のドメイン名のサブドメインを指すことができます。 どちらの方法でも、Webインターフェースに簡単にアクセスできます。

このガイドは、Ubuntu 16.04 LTSに従います。 Ubuntuの最新の長期サポートリリースであり、操作が非常に簡単です。 Debian Stretch(Stable)も優れた選択肢であり、このガイドのほとんども同様に機能します。 DigitalOceanとLinodeはどちらも、選択したOSでサーバーをセットアップするため、Ubuntuをインストールする必要はありません。

依存関係のインストール

Ubuntuを初めて起動するときは、システムを更新して、利用可能なセキュリティ修正プログラムがないことを確認することをお勧めします。 先に進み、最初にそれを行います。

$ sudo apt update $ sudo apt upgrade

更新プログラムの実行が完了したら、Gitlabを開始するためにインストールする必要があるものがいくつかあります。 aptを使用してそれらもインストールします。

$ sudo apt install curl openssh-server ca-certificates postfix

それでおしまい。 Gitlabインストーラースクリプトを実行する準備が整いました。

Gitlabをインストールする

Gitlabは、独自のDebian / Ubuntuリポジトリを維持しています。 サーバーでリポジトリを有効にするには、Gitlabチームが提供する便利なインストールスクリプトをダウンロードして実行します。

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

それは多くのように見えるかもしれませんが、スクリプトをダウンロードし、コマンドラインシェルにそれを実行するよう指示します。 スクリプトが実行され、リポジトリをセットアップするのに数秒かかります。 これが完了すると、Gitlabパッケージをインストールする準備が整います。

$ sudo apt install gitlab-ce

そのインストールには数分かかります。 Gitlabには、「Omnibusパッケージ」と呼ばれる1つの大きなパッケージが付属しています。Gitlabに必要なものがすべてバンドルされています。

セットアップを実行する

Gitlabを構成するために実行する必要があるセットアップスクリプトがあります。 インストールしたパッケージに含まれているので、すぐに実行できます。

$ sudo gitlab-ctl reconfigure

スクリプトがすべてを実行するには数分かかります。 主にGitlabのデータベースバックエンドをセットアップしています。 画面上で実行されている多くのRuby on Rails移行が表示されます。 しばらく時間がかかる場合がありますが、完了するとGitlabを使用できるようになります。

初期設定

Webブラウザーを開き、Gitlabサーバーに移動します。 管理パスワードを設定するように求めるページが表示されます。 これは明らかに管理者アカウントのパスワードです。 デフォルトでは、そのアカウント名は「root」です。

そのアカウントがセットアップされたら、そのアカウントでログインするか、通常のユーザーアカウントを登録してサインインできます。どちらの方法でも、サインインすると、リポジトリを作成および管理するためのGitlabダッシュボード全体にアクセスできます。

SSHをセットアップする

パスワードを使用してプロジェクトに変更をプッシュする必要はありません。 それは苦痛であり、あまり安全ではありません。 できる最善の方法は、キーがインストールされている任意のコンピューターから自動的にログインするSSHを作成することです。

SSHキーは、LinuxおよびMacで非常に簡単に作成できます。 Windows 10では、利用可能なOpenSSHアプリを使用してプロセスを同じにする必要があります。

ターミナルを開き、次のコマンドを実行してキーを作成します。 コンピューターのログイン情報のみを使用する場合は、-C ''部分を省略できます。 それ以外の場合は、通常、電子メールアドレスが正しい呼び出しです。

$ ssh-keygen -b 4096 -t rsa -C ''

このプロセスでは、いくつかの手順を説明します。 デフォルトはほとんど良好で、すべてが一目瞭然です。 パスワードをキーに関連付けることを選択した場合、ログインまたは変更をプッシュするたびにそのパスワードが必要になります。 パスワードを空白のままにして、使用しないようにすることができます。

キーを表示するには、以下のコマンドを実行します。 それはナンセンスな束のように見えますが、本質的にはそうですが、それがあなたの鍵です。 端末からコピーしてGitlabに貼り付ける必要があります。

$ cat〜/ .ssh / id_rsa.pub

Gitlabに戻って、画面右上のプロファイルアイコンをクリックします。 次に、表示されるメニューで[設定]をクリックします。 ページの左側にあるメニューで、「SSHキー」をクリックします。

端末からキーをコピーします。 「ssh-rsa」の後に開始し、メールアドレスの前に停止します。 だから、ナンセンスな部分をコピーしてください。 「キー」というラベルの付いた大きなボックスに貼り付けます。キーに名前を付けて保存します。 その時点から、サインインせずにコードをリポジトリにプッシュできるようになります。

通常のSSHの場合

すでにSSHキーを持っています。 SSHにも使用できます。 OpenSSHには、サーバーにキーをプッシュするための組み込みユーティリティがあります。

$ ssh-copy-id -i〜/ .ssh / id_rsa.pub _IP

server_usernameとSERVER_IPを、サーバー上のユーザー名とサーバーのIPアドレスに置き換えます。

新しいキーを使用してサーバーに再度ログインしてみてください。

$ ssh _IP

パスワードを入力せずにすぐに接続する必要があります。

SSHの残りもロックダウンする方が良いでしょう。 これは、おそらく公開サーバーの最も弱い点の1つです。 サーバーで選択したテキストエディターで/ etc / ssh / sshd_confgを開きます。

変更が必要なものがいくつかあります。 まず、PermitRootLoginを見つけて、noに設定します。

PermitRootLogin no

次に、PasswordAuthenticationを見つけてコメントを外し、noに設定します。

パスワード認証

次に、次の2行がnoに設定されていることを確認します。 Ubuntuではデフォルトで使用されるはずですが、確認することをお勧めします。

PermitEmptyPasswordsいいえHostbasedAuthenticationいいえ

最後に、構成の下部でUsePAMを見つけて、noに設定します。

UsePAMいいえ

設定を保存して終了します。 次に、SSHサービスを再起動します。

$ sudo systemctl restart sshd

UFWを構成する

おそらく最後に講じたいセキュリティ対策は、ファイアウォールのインストールと設定です。 Ubuntuは、適切な名前のuncomplicated firewall(UFW)と非常にうまく機能します。 これは、iptablesカーネルファイアウォールの単なるラッパーにすぎませんが、ファイアウォールの操作をずっと簡単にします。 さあ、インストールしてください。

$ sudo apt install ufw

ufwをインストールしたら、すべてを拒否するデフォルトのルールを設定することから始めます。

$ sudo ufwデフォルトは着信を拒否$ sudo ufwデフォルトは発信を拒否$ sudo ufwデフォルトは転送を拒否

次に、Gitを含む基本的なサービスを許可するルールを設定します。 コメントは情報のためだけにあります。 それらを実行しようとしないでください。

#SSH $ sudo ufw allow in ssh $ sudo ufw allow ssh#Web用のHTTPおよびHTTPS $ sudo ufw allow in http $ sudo ufw allow out http $ sudo ufw allow in https $ sudo ufw allow out https#NTP正しい$ sudo ufw allow in ntp $ sudo ufw allow out ntp#DNSドメイン解決のためのポート53 $ sudo ufw allow in 53 $ sudo ufw allow out 53#あなたはおそらくこれを必要としないでしょう#サーバーがDHCPを使用している場合、ブロック解除67 $ sudo ufw allow in 67 $ sudo ufw allow out 67#最後に、Git $ sudo ufw allow in 9418 $ sudo ufw allo out 9418

すべてが正常であることを確認し、ファイアウォールを有効にします

$ sudo ufw enable

次の方法でファイアウォールのステータスを確認できます。

$ sudo ufw status

それでおしまい! Gitlabサーバーはファイアウォールの内側にあります。

おわりに

これで、Gitlabサーバーが動作するようになりました。 Gitlabインターフェースからユーザーアカウントとプロジェクトのセットアップを開始できます。 Gitlabは通常のUbuntuパッケージであるため、システムを更新し続けると、aptで定期的に更新されます。

Gitlabは、独自のプロジェクトや、チームと一緒に作業する大規模プロジェクトを管理するために必要な柔軟性をすべて提供します。 これは、より多くのチームが依存し始めている、完全に機能する堅牢なプラットフォームです。

Gitlabで独自のソフトウェアプロジェクトをホストする