Posted at

さくらのクラウドでGitLabを簡単に構築する

More than 1 year has passed since last update.

先日さくらのクラウドに「GitLab Community Edition」をインストールするためのスタートアップスクリプトが追加されました。

さくらのクラウドニュース:スタートアップスクリプト「GitLab Community Edition」の提供を開始しました

このスクリプトを用いてGitLab環境を構築してみます。


前提条件


  • さくらのクラウドのアカウントが作成済みであること

まだの場合は以下のリンクを参考にアカウントの作成を行ってください。

さくらのクラウド:サービスご利用の流れ


GitLabインストール済みのサーバ作成


さくらのクラウド コントロールパネルへログイン

まずはコントロールパネルにログインします。

さくらのクラウド:コントロールパネル

login.png


サーバ作成画面を開く

ログインできたらサーバ作成画面まで移動します。


  • サービス選択画面で「IaaS」を選択

02_select.png


  • 左上のゾーン選択ボタンから「SandBox」以外のゾーンを選択

03_zone.png


  • 左のメニューから「サーバ」を選択後、右上の「追加」ボタンをクリック

04_create_server.png


サーバ作成画面

もし「シンプルモード」チェックボックスがチェックされている場合はチェックを外します。

05_simple_mode.png


  • 1. サーバプラン

CPUコア数/メモリサイズを選択します。


後から変更することも可能ですのでお好みの値を選択してください。

06_server_plan.png


  • 2. ディスク

新規ディスクを作成し、そこにCentOS7.3をインストールします。


ディスクソースに「アーカイブ」を選択した上で、アーカイブ選択欄で「CentOS7.3」を選択してください。

ディスクプランやディスクサイズについてはお好みでOKです。

07_disk.png


  • 3. NIC

デフォルトでインターネットに接続するようになっているはずです。

ここは変更しなくてOKです。

08_nic.png


  • 4. ディスクの修正

パスワードとホスト名を設定します。

09_edit_01.png

公開鍵は「なし」でも良いですが、本番稼働させるサーバの場合は設定しておくのがオススメです。


  • スタートアップスクリプトの選択

スタートアップスクリプト欄で「shell」を選択すると、配置するスタートアップスクリプトの選択が行えるようになります。

ドロップダウンからGitLabを選択します。

その後、GitLab管理者(rootユーザ)の初期パスワード入力欄が表示されますので、任意の値を設定します。

09_edit_02.png


  • 5. シンプル監視 & 6. サーバの情報

シンプル監視は設定なしでもOKです。必要に応じて設定してください。

サーバの情報欄には名前やタグ、説明などを入力します。必要に応じて設定してください。


※ここで入力する名前はさくらのクラウド上でのサーバの表示名のようなものです。

日本語も使えますのでわかりやすい名前にしておくのがオススメです。


10_info.png


  • 7. その他のオプションなど

変更しなくてOKです。作成数は1のままにしてください。

11_option.png

あとは右下の「作成」ボタンを押すだけです。

サーバ作成が完了するまでしばらく待ちましょう。


[TIPS]: スタートアップスクリプトの実行ログ確認

あとはしばらく待つだけでスタートアップスクリプトによりGitLabのインストール&環境設定が行われます。

このスタートアップのログは作成されたサーバ内の以下のファイルに出力されています。

/root/.sacloud-api/notes/[12桁の数値].log

12桁の数値はサーバ作成時にランダムで割り当てられるものです。

インストールがうまくいかない場合などは上記のログを参照してみましょう。

なお、今回利用しているGitLabのスタートアップスクリプトでは以下のようなログが出力されるはずです。

-------------------------------------------------- Sat Aug 26 18:46:40 JST 2017

Loaded plugins: fastestmirror, priorities
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
Package curl-7.29.0-35.el7.centos.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openssh-clients.x86_64 0:6.6.1p1-31.el7 will be updated
---> Package openssh-clients.x86_64 0:6.6.1p1-35.el7_3 will be an update
--> Processing Dependency: openssh = 6.6.1p1-35.el7_3 for package: openssh-clients-6.6.1p1-35.el7_3.x86_64
---> Package openssh-server.x86_64 0:6.6.1p1-31.el7 will be updated
---> Package openssh-server.x86_64 0:6.6.1p1-35.el7_3 will be an update
---> Package policycoreutils.x86_64 0:2.5-9.el7 will be updated
---> Package policycoreutils.x86_64 0:2.5-11.el7_3 will be an update
--> Running transaction check
---> Package openssh.x86_64 0:6.6.1p1-31.el7 will be updated
---> Package openssh.x86_64 0:6.6.1p1-35.el7_3 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
openssh-clients x86_64 6.6.1p1-35.el7_3 updates 642 k
openssh-server x86_64 6.6.1p1-35.el7_3 updates 440 k
policycoreutils x86_64 2.5-11.el7_3 updates 841 k
Updating for dependencies:
openssh x86_64 6.6.1p1-35.el7_3 updates 438 k

Transaction Summary
================================================================================
Upgrade 3 Packages (+1 Dependent package)

Total download size: 2.3 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
--------------------------------------------------------------------------------
Total 6.0 MB/s | 2.3 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : openssh-6.6.1p1-35.el7_3.x86_64 1/8
Updating : openssh-clients-6.6.1p1-35.el7_3.x86_64 2/8
Updating : openssh-server-6.6.1p1-35.el7_3.x86_64 3/8
Updating : policycoreutils-2.5-11.el7_3.x86_64 4/8
Cleanup : openssh-server-6.6.1p1-31.el7.x86_64 5/8
Cleanup : openssh-clients-6.6.1p1-31.el7.x86_64 6/8
Cleanup : openssh-6.6.1p1-31.el7.x86_64 7/8
Cleanup : policycoreutils-2.5-9.el7.x86_64 8/8
Verifying : openssh-6.6.1p1-35.el7_3.x86_64 1/8
Verifying : policycoreutils-2.5-11.el7_3.x86_64 2/8
Verifying : openssh-clients-6.6.1p1-35.el7_3.x86_64 3/8
Verifying : openssh-server-6.6.1p1-35.el7_3.x86_64 4/8
Verifying : openssh-6.6.1p1-31.el7.x86_64 5/8
Verifying : policycoreutils-2.5-9.el7.x86_64 6/8
Verifying : openssh-server-6.6.1p1-31.el7.x86_64 7/8
Verifying : openssh-clients-6.6.1p1-31.el7.x86_64 8/8

Updated:
openssh-clients.x86_64 0:6.6.1p1-35.el7_3
openssh-server.x86_64 0:6.6.1p1-35.el7_3
policycoreutils.x86_64 0:2.5-11.el7_3

Dependency Updated:
openssh.x86_64 0:6.6.1p1-35.el7_3

Complete!
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
Package 2:postfix-2.10.1-6.el7.x86_64 already installed and latest version
Nothing to do
success
success
Detected operating system as centos/7.
Checking for curl...
Detected curl...
Downloading repository file: https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/config_file.repo?os=centos&dist=7&source=script
done.
Installing pygpgme to verify GPG signatures...
Loaded plugins: fastestmirror, priorities
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xE15E78F4:
Userid : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Loading mirror speeds from cached hostfile
Package pygpgme-0.3-9.el7.x86_64 already installed and latest version
Nothing to do
Installing yum-utils...
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package yum-utils.noarch 0:1.1.31-40.el7 will be installed
--> Processing Dependency: python-kitchen for package: yum-utils-1.1.31-40.el7.noarch
--> Processing Dependency: libxml2-python for package: yum-utils-1.1.31-40.el7.noarch
--> Running transaction check
---> Package libxml2-python.x86_64 0:2.9.1-6.el7_2.3 will be installed
---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be installed
--> Processing Dependency: python-chardet for package: python-kitchen-1.1.1-5.el7.noarch
--> Running transaction check
---> Package python-chardet.noarch 0:2.2.1-1.el7_1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
yum-utils noarch 1.1.31-40.el7 base 116 k
Installing for dependencies:
libxml2-python x86_64 2.9.1-6.el7_2.3 base 247 k
python-chardet noarch 2.2.1-1.el7_1 base 227 k
python-kitchen noarch 1.1.1-5.el7 base 267 k

Transaction Summary
================================================================================
Install 1 Package (+3 Dependent packages)

Total download size: 856 k
Installed size: 4.3 M
Downloading packages:
--------------------------------------------------------------------------------
Total 2.7 MB/s | 856 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python-chardet-2.2.1-1.el7_1.noarch 1/4
Installing : python-kitchen-1.1.1-5.el7.noarch 2/4
Installing : libxml2-python-2.9.1-6.el7_2.3.x86_64 3/4
Installing : yum-utils-1.1.31-40.el7.noarch 4/4
Verifying : yum-utils-1.1.31-40.el7.noarch 1/4
Verifying : python-kitchen-1.1.1-5.el7.noarch 2/4
Verifying : libxml2-python-2.9.1-6.el7_2.3.x86_64 3/4
Verifying : python-chardet-2.2.1-1.el7_1.noarch 4/4

Installed:
yum-utils.noarch 0:1.1.31-40.el7

Dependency Installed:
libxml2-python.x86_64 0:2.9.1-6.el7_2.3 python-chardet.noarch 0:2.2.1-1.el7_1
python-kitchen.noarch 0:1.1.1-5.el7

Complete!
Generating yum cache for gitlab_gitlab-ce...
Importing GPG key 0xE15E78F4:
Userid : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey

The repository is setup! You can now install packages.
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package gitlab-ce.x86_64 0:9.5.1-ce.0.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
gitlab-ce x86_64 9.5.1-ce.0.el7 gitlab_gitlab-ce 378 M

Transaction Summary
================================================================================
Install 1 Package

Total download size: 378 M
Installed size: 1.1 G
Downloading packages:
warning: /var/cache/yum/x86_64/7/gitlab_gitlab-ce/packages/gitlab-ce-9.5.1-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
Public key for gitlab-ce-9.5.1-ce.0.el7.x86_64.rpm is not installed
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xE15E78F4:
Userid : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Importing GPG key 0xF27EAB47:
Userid : "GitLab, Inc. <support@gitlab.com>"
Fingerprint: dbef 8977 4ddb 9eb3 7d9f c3a0 3cfc f9ba f27e ab47
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : gitlab-ce-9.5.1-ce.0.el7.x86_64 1/1
tput: No value for $TERM and no -T specified

*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.

_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/

gitlab: Thank you for installing GitLab!
gitlab: To configure and start GitLab, RUN THE FOLLOWING COMMAND:

sudo gitlab-ctl reconfigure

gitlab: GitLab should be reachable at http://GitLab
gitlab: Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
gitlab: And running reconfigure again.
gitlab:
gitlab: For a comprehensive list of configuration options please see the Omnibus GitLab readme
gitlab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
gitlab:
It looks like GitLab has not been configured yet; skipping the upgrade script.
Verifying : gitlab-ce-9.5.1-ce.0.el7.x86_64 1/1

Installed:
gitlab-ce.x86_64 0:9.5.1-ce.0.el7

Complete!

* Moving existing certificates found in /opt/gitlab/embedded/ssl/certs

* Symlinking existing certificates found in /etc/gitlab/trusted-certs
gitlab Reconfigured!

(exit code: 0)

最後に(exit code: 0)と出力されていればスタートアップスクリプトが正常終了しています。


GitLabにサインイン

ブラウザでGitLabにサインインしてみます。

http://サーバのIPアドレス/にアクセスしてみましょう。


  • サーバのIPアドレスの確認

サーバのIPアドレスはコントロールパネルから確認できます。

12_ipaddress.png


  • サインイン画面

続いてhttp://サーバのIPアドレス/を開きます。


ユーザ名にroot、パスワードにはサーバ作成時に指定した値を入力します。

13_gitlab.png

サインインできたら次のような画面が表示されるはずです。

14_complete.png

おめでとうございます!!以上でサーバ構築完了です。

あとはGitLabをガンガン使ってみましょう!!!

なお、このスクリプトでは以下の設定は行われていません。


  • SSL対応

  • メールの設定

必要に応じて設定してみてください。

以上です。