このトピックでは、Linux Elastic Compute Service (ECS) インスタンスにGitLabをインストールし、GitLabを使用する方法について説明します。
前提条件
ECSインスタンスが作成され、次の要件を満たしています。
IPアドレス: ECSインスタンスは、静的パブリックIPアドレス (システム割り当てまたは自動割り当てパブリックIPアドレスとも呼ばれます) またはelastic IPアドレス (EIP) に関連付けられています。 EIPをECSインスタンスに関連付ける方法については、「EIPの関連付けまたは関連付けの解除」トピックの「1つ以上のEIPをインスタンスに関連付ける」セクションをご参照ください。
ECSインスタンスのインスタンスタイプは、チームのサイズと予想されるワークロードに適しています。 1,000人のチームの場合、少なくとも8つのvCPUと8 GiBのメモリを持つインスタンスタイプを使用することを推奨します。 詳細については、「インストールシステム要件」をご参照ください。
オペレーティングシステム: ECSインスタンスはLinuxオペレーティングシステムを実行します。 サポートされているオペレーティングシステムの詳細については、「サポートされているオペレーティングシステム」をご参照ください。
ポート80、443、および22を開くために、インバウンドルールがECSインスタンスのセキュリティグループに追加されます。 詳細については、「セキュリティグループルールの追加」をご参照ください。
GitLabのインストール
Alibaba Cloud Linux 3にJiHu GitLabをインストールする
ECSインスタンスがAlibaba Cloud Linux 3を実行している場合、インストールパッケージを使用してJiHu GitLabのみをインスタンスにインストールできます。
Alibaba Cloud Linux 3を実行するECSインスタンスにGitLab Community Editionをインストールするには、オペレーティングシステムに依存しないDocker Engineを使用します。
別のオペレーティングシステムを実行するECSインスタンスにGitLab Community Editionをインストールするには、このトピックの「UbuntuまたはDebianにGitLab Community Editionをインストールする」セクションで説明されている操作を実行します。
GitLabをインストールするECSインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
GitLabに必要な依存関係をインストールします。
sudo yum install -y curl python3-policycoreutils openssh-server
SSHサービスを起動し、システム起動時に実行するようにサービスを設定します。
sudo systemctl start sshd sudo systemctl enable sshd
(オプション) Postfixをインストールおよび設定します。
Postfixは、GitLabから通知メールを送信するために使用されます。 他の方法を使用して通知メールを送信する場合は、GitLabをインストールした後、この手順をスキップして外部の簡易メール転送プロトコル (SMTP) サーバーを設定します。 詳細については、「SMTP設定」をご参照ください。
Postfixをインストールします。
sudo yum install -y postfix
次のようなエラーメッセージが表示された場合は、
rpm -- import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
コマンドを実行し、Postfixを再インストールします。Falling package is : mysql-community-libs-compat-5.7.41-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Postfixを起動し、システム起動時に実行するようにPostfixを設定します。
sudo systemctl start postfix sudo systemctl enable postfix
GitLabパッケージのリポジトリを追加します。
curl -fsSL https://get.gitlab.cn | sudo /bin/bash
説明ネットワークの問題により、GitLabパッケージリポジトリの追加に失敗する可能性があります。 この問題が発生した場合は、GitLabパッケージリポジトリを再追加することを推奨します。
次のコマンド出力は、GitLabパッケージリポジトリが追加されたことを示しています。
GitLabをインストールします。
sudo EXTERNAL_URL=<Public IP address of the GitLab server> yum install -y gitlab-jh
上記のコマンドで、
<GitLabサーバーのパブリックIPアドレス>
を、GitLabをインストールするECSインスタンスのパブリックIPアドレスに置き換えます。 サンプルコマンド:sudo EXTERNAL_URL=101.132.XX.XX yum install -y gitlab-jh
重要低仕様のインスタンスタイプのECSインスタンスにGitLabをインストールする場合、インストールが完了するまでに長時間かかる場合があります。 インストール中、GitLabはInstalling状態のままです。 インストールが完了するのを待ちます。
次のコマンド出力は、GitLabがインストールされていることを示します。
UbuntuまたはDebianにGitLab Community Editionをインストールする
GitLab Community EditionはAlibaba Cloud Linux 3をサポートしていません。 このセクションでは、UbuntuまたはDebianにGitLab Community Editionをインストールする方法について説明します。 GitLab Community Editionを他のオペレーティングシステムにインストールする方法については、「GitLab Community Editionのインストール」をご参照ください。
GitLabをインストールするECSインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
GitLabに必要な依存関係をインストールします。
sudo apt-getアップデート sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
SSHサービスを起動し、システム起動時に実行するようにサービスを設定します。
sudo systemctl start sshd sudo systemctlを有効にするsshd
(オプション) Postfixをインストールおよび設定します。
Postfixは、GitLabから通知メールを送信するために使用されます。 他の方法で通知メールを送信する場合は、GitLabをインストールした後、この手順をスキップして外部SMTPサーバーを設定します。 詳細については、「SMTP設定」をご参照ください。
Postfixをインストールします。
sudo apt-get install -y postfix
Postfixを起動し、システム起動時に実行するようにPostfixを設定します。
sudo systemctl start postfix sudo systemctl有効化postfix
GitLabパッケージのリポジトリを追加します。
sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
説明ネットワークの問題により、GitLabパッケージリポジトリの追加に失敗する可能性があります。 この問題が発生した場合は、GitLabパッケージリポジトリを再追加することを推奨します。
次のコマンド出力は、GitLabパッケージリポジトリが追加されたことを示しています。
ソフトウェアパッケージのリストを更新します。
sudo apt-getアップデート
GitLabをインストールします。
sudo EXTERNAL_URL=<GitLabサーバーのパブリックIPアドレス> apt-get install -y gitlab-ce
上記のコマンドで、
<GitLabサーバーのパブリックIPアドレス>
を、GitLabをインストールするECSインスタンスのパブリックIPアドレスに置き換えます。 サンプルコマンド:sudo EXTERNAL_URL=101.132.XX.XX apt-get install -y gitlab-ce
重要低仕様のインスタンスタイプのECSインスタンスにGitLabをインストールする場合、インストールが完了するまでに長時間かかる場合があります。 インストール中、GitLabはInstalling状態のままです。 インストールが完了するのを待ちます。
次のコマンド出力は、GitLabがインストールされていることを示します。
Docker Engineを使用してGitLabをインストールする
GitLabをインストールするECSインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
Dockerをインストールします。
詳細については、「LinuxインスタンスへのDockerのインストールと使用」をご参照ください。
GitLabデータを保存するディレクトリを作成します。
sudo mkdir -p /srv/gitlab
$GITLAB_HOME
環境変数を設定します。エクスポートGITLAB_HOME=/srv/gitlab
GitLabイメージを引き出します。
sudo docker pull gitlab/gitlab-ce
次のコマンド出力は、GitLabイメージがプルされたことを示します。
GitLabコンテナーイメージをインストールします。
説明hostname: ホスト名。 このパラメーターをECSインスタンスのパブリックIPアドレスに置き換えることを推奨します。
publish 443:443: HTTPSアクセスを許可するために、コンテナーのポート443をホストのポート443にマップします。
publish 8080:80: コンテナのポート80をホストのポート8080にマップして、HTTPアクセスを許可します。
publish 5000:22: コンテナーのポート22をホストのポート5000にマップし、SSHサービスを許可します。
ECSインスタンスのセキュリティグループのインバウンドルールは、ポート443、8080、および5000を開く必要があります。
sudo docker run -- detach \ -- hostnam e gitlab.example.com \ -- publish 443:443 -- publish 8080:80 -- publish 5000:22 \ -- 名前gitlab \ -- 常に再起動 \ -- volume $GITLAB_HOME/config:/etc/gitlab \ -- volume $GITLAB_HOME/logs:/var/log/gitlab \ -- volume $GITLAB_HOME/data:/var/opt/gitlab \ -- shmサイズ256m \ gitlab/gitlab-ce: 最新
コンテナーのステータスを表示します。
sudo docker ps -a
コンテナが正常な状態にある場合、GitLabコンテナが起動されます。
GitLabを使用する
このセクションでは、GitLab Community Editionの使用方法について説明します。 GitLab Community Editionを使用する手順は、JiHu GitLabを使用する手順と同様です。
GitLabにログオン
GitLabのパスワードを取得します。
Linuxインストールパッケージを使用してGitLabをインストールする場合は、
sudo cat /etc/gitlab/initial_root_password
コマンドを実行します。GitLabがDocker Engineを使用してインストールされている場合は、次のコマンドを実行します。
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
。
次のコマンド出力が返されます。
password
の値からGitLabの初期パスワードを取得します。重要セキュリティのため、ファイルは24時間以内に自動的に削除されます。 初回ログオン時に初期パスワードを変更することを推奨します。
GitLabにログインします。
GitLabがLinuxインストールパッケージを使用してインストールされている場合、ブラウザーのアドレスバーにhttp:// ECSインスタンスのパブリックIPアドレスと入力して、GitLabログインページに移動します。
GitLabがDocker Engineを使用してインストールされている場合、ブラウザーのアドレスバーにhttp:// ECSインスタンスのパブリックIPアドレス: 8080と入力して、GitLabログインページに移動します。
GitLabに初めてログインするときは、
root
ユーザー名とステップ1で取得したパスワードを使用します。
キーペアファイルを生成して公開鍵を取得
Gitをインストールします。
sudo yum install git
id_rsa
という名前のキーペアファイルを生成します。ssh-keygen
キーペアファイルが生成されると、キーペアファイルを保存するパスワードとパスを指定するように求められます。 パスを指定するか、入力デフォルトを使用するキー
. ssh/id_rsa
現在のユーザーディレクトリのパス。 例:/home/test/.ssh/id_rsa
次のコマンド出力が返されます。
id_rsa.pub
公開鍵ファイルの内容を表示します。 後で使用するためにコンテンツをコピーします。cat .ssh/id_rsa.pub
次のコマンド出力が返されます。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQVwWjF3KXmI549jDI0fuCgl+syJjjn55iMUDRRiCd/B+9TwUda3l9WXH5i7RU53QGRCsDVFZxixLOlmXr9E3VSqkf8xXBnHs/5E2z5PIOCN0nxfB9xeA1db/QxPwK4gkHisep+eNHRn9x+DpCYDoSoYQN0nBg+H3uqfOqL42mJ+tqSfkyqbhjBf1kjtDTlBfVCWtI0siu7owm+c65+8KNyPlj5/0AyJ4Aqk1OX2jv+YE4nTipucn7rHwWuowasPU86l+uBsLNwOSb+H7loJvQyhEINX2FS1KnpRU+ld20t07n+N3ErfX5xBAGfxXpoN9BKKSP+RT7rvTeXTVE**** test@iZuf63zs0dn0qccsisy****
-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQVwWjF3KXmI549jDI0fuCgl syJjjn55iMUDRRiCd/B 9TwUda3l9WXH5i7RU53QGRCsDVFZxixLOlmXr9E3VSqkf 8 xXBn0db /5E2z5PIOCN0nxfB9xeA 1db/QxPwK4gkHisep + eNHRn9x + DpCYDoSoYQN0nBg + H3uqfOqL42mJ + 8KNyf*Twz4Aq7wjv + B20s1v +
プロジェクトの作成
GitLabのホームページで、[Create new project] をクリックしてプロジェクトを作成します。
[空白プロジェクトの作成] をクリックし、[プロジェクト名] と [プロジェクトURL] を設定し、[プロジェクトの作成] をクリックします。
この例では、myworkという名前のプロジェクトが作成されます。
SSHキーを追加します。
作成したプロジェクトの [プロジェクトの概要] ページで、[SSHキーの追加] をクリックします。
id_rsa.pub
公開鍵ファイルの内容をkey
フィールドに貼り付けます。[キーの追加] をクリックします。
次のページは、SSHキーが追加されたことを示しています。
プロジェクトのクローンリンクをコピーします。 リンクを使用してプロジェクトを複製できます。
GitLabの使用
Gitユーザーを設定します。
Gitユーザーのユーザー名を指定します。
git config --global user.name "testname"
Gitユーザーのメールアドレスを指定します。
git config --global user.email "abc@example.com"
プロジェクトをオンプレミスディレクトリにクローンします。
git clone git@101.132.XX.XX:root/mywork.git
GitLabサーバーにファイルをアップロードします。
オンプレミスのプロジェクトディレクトリにアクセスします。
cd mywork/
GitLabにアップロードするファイルを作成します。
echo "test" > /home/test/test.sh
ファイルまたはディレクトリをオンプレミスのプロジェクトディレクトリにコピーします。
cp /home/test/test.sh ./
test.sh
ファイルをインデックスに追加します。git add test.sh
test.sh
ファイルをオンプレミスリポジトリにコミットします。git commit -m "test.sh"
ファイルをGitLabサーバーにプッシュします。
git push -u origin main
次の図は、
test.sh
ファイルがGitLabサーバーにプッシュされたことを示すページを示しています。 ページでファイルを表示できます。
関連ドキュメント
一般的なGitLabコマンド、データバックアップ、設定オプション、ユーザー管理、他のサービスとの統合、トラブルシューティングなどのGitLab操作の詳細については、「GitLab公式ドキュメント」をご参照ください。