2022/05/06 多数のアクセスを頂戴しておりましたので、少しでも見やすく…と思い、ブログのスタイルを一部更新致しました。
2022/05/20 GitLabのデモ動画を作りました!このブログの末尾にリンクを張ったのでよろしければご視聴ください。
2022/09/22 本ブログと同内容の動画へのリンクを追記しました。Docker Composeのコマンドを最新化しました。
皆様こんにちは。普段はセキュリティ商材を担当しているSEの小池と申します。
ネットの海には、検証してみた、使ってみた、資格とってみた、といった素晴らしい技術系ブログがたくさんあります。今の今まで私はそれを読んで「ほぇー皆様すごいなぁ。勉強になります!」などとリスペクトしている側でした。
そんなある日、GitやCI/CDに無縁の私に会社から「GitLabの技術ブログ書いておいて」というミッションが下りました。なぜに私??
このミッションを達成すべく、GitもCI/CDもロクにわかっていないセキュリティ商材担当SEがGitLabをとりあえず触るブログを書いてまいります。
今回はその初回として、とりあえず構成とかはさておき、ひとまずDockerを用いてGitLabの検証環境を作成するところから紹介致します!
本記事の対象の方
- GitLabのオンプレミス版の機能を無償で検証をしたい方、且つ、構成はとりあえず気にしない方。
- GitLabがどんなものかよくわからないので、とりあえず触ってみたい方。
- GitやCI/CDについて、GitLabを用いて知識習得したいとお考えの方。
今回のブログのゴール
このブログのゴールは以下を目標としております。
- GitLabのDockderイメージを用いて、GitLabの即席検証環境を作成する。
- 作成したGitLab環境にrootユーザーでサインインする。
このブログをお読みいただくにあたって
- 本記事はGitLabがどういった製品なのかの説明はしておりません。製品説明につきましては弊社の製品ページ (こちら) をご参照ください。
- 本記事はGitやCI/CDに関する知識ゼロのSEによるなんちゃって記事です。GitLabのディープな使用法についてはGitLabの公式オンラインドキュメント (こちら) をご参照ください。
- 本記事で紹介する手順ではDocker EngineおよびDocker Composeを用いますが、これらの説明は割愛致します。(大丈夫です!書いている私はDocker EngineとDocker Composeについてもど素人です!)
このブログの動画
このブログの内容は以下の動画でも説明しております。
説明だけではいまいちよくわからない…という場合は、是非ご視聴ください。
2022/09/22追記
この動画のDocker Composeは少し古いためコマンドがdocker-compose
になっております。最新のDocker Composeのコマンドはdocker compose
となります。
GitLabのDockerImageを使った検証環境作成
Dockerホストの用意
DockerホストとなるLinuxを用意します。
後ほどDockder EngineとDocker Composeをインストールするので、その要件を満たすOSをご準備ください。
Install Docker Engine | Docker Documentation
Install Docker Compose | Docker Documentation
この記事ではAWS EC2にてUbuntu 18.04.6 LTS (Bionic Beaver)、インスタンスタイプ t3.large、ストレージタイプ gp2、ストレージサイズ 60GiB で実施しております。
Docker Engineインストール
用意したDockerホストにDocker Engineをインストールします。
インストール手順はDocker Docsに記載の通りです。
Install Docker Engine | Docker Documentation
Docker Composeインストール
続けてDockerホストにDocker Composeをインストールします。
こちらもDocker Docsの手順に従ってください。Docsに記載されている基本の手順以外のことは実施不要です。
Install Docker Compose | Docker Documentation
docker-compose.ymlファイル作成
本来であればここからdockerコマンドの実行権限を…とかいろいろあるのでしょうが、このブログではそんなものはお構いなしに進みます。
ここではGitLab検証環境用のdocker-compose.ymlを作成します。
なお、この章の手順はおおよそGitLab Docsの "GitLab Docker images" の内容をそのまま実施しています。
手順実施中にもし問題が発生した場合は、GitLab Docsを併せてご参照いただければと存じます。
GitLab Docker images | GitLab
いきなりですが、先ほどDocker EngineとDocker ComposeをインストールしたLinuxの任意のディレクトリに、GitLab検証環境用のdocker-compose.ymlを作成します。
今回の検証環境用に作成したものを例として載せます。このymlファイルの場合、GitLabのコンテナは 192.168.100.10 で稼働しますが、この辺りは任意に設定変更していただいて構いません。Restartオプションなどもご自由に変更いただいて問題ありません。
「色々考えたくない、とりあえずGitLabが起動して機能検証できればOKなんじゃ。」という方はそのままお使いください。
version: '3.6' services: web: image: 'gitlab/gitlab-ee:latest' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com:8929' gitlab_rails['gitlab_shell_ssh_port'] = 2224 ports: - '8929:8929' - '2224:22' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m' networks: app_net: ipv4_address: 192.168.100.10 networks: app_net: driver: bridge ipam: driver: default config: - subnet: 192.168.100.0/24
次に、上で紹介したdocker-compose.ymlファイルのvolumesのパスを作成します。GitLab Docsのサンプルでは一応/srv/gitlabをGitLabのホームディレクトリとしているため、ここではそれを用います。
# mkdir /srv/gitlab
次に、上で紹介したdocker-compose.ymlファイルのvolumesの環境変数を設定します。もし、ymlファイルの環境変数名を変更した場合は、コマンドの内容を変更した環境変数名に読み替えてください。
(ymlファイルのvolumesで環境変数ではなく直接パスを指定した場合は、この手順はスキップしてGitLab検証環境の起動からを実施してください。)
# export GITLAB_HOME=/srv/gitlab
環境変数を永続的に反映するため、/etc/profile の末尾に以下の2行を追記します。
GITLAB_HOME=/srv/gitlab export GITLAB_HOME
GitLab検証環境の起動
きっと、多分、もっと便利に使用する設定があるのだと思います…しかしこのブログではそんなことはお構いなしです。
先ほど作成したdocker-compose.ymlを使ってGitLab検証環境を起動します。
カレントディレクトリを先ほど作ったdocker-compose.ymlがあるディレクトリにして、以下のコマンドを実行します。
# docker compose up -d
しばらくするとプロンプトが返ってくるので、続けて以下のコマンドを実行します。
# docker ps -a
上のコマンドの結果で表示されている行のうち、NAMES列が "gitlab_web_1" となっているものを探してください。
この行のSTATUS列に "Up xx seconds (<health: starting もしくは healthy>)" という表示があるので、このかっこの中が "healthy" になるまで待ちます。
大体3,4分くらいかかります。
わかりにくい場合は以下の画面例をご参照ください。
GitLab起動中のSTATUS (この状態のときはもう少し待機)
GitLab起動済のSTATUS (この状態になったら次の手順へGO!)
GitLabのコンテナのSTATUSがhealthyになったら、webページを表示してみましょう。
前述したdocker-compose.ymlを使っている場合は、以下のURLでwebページにアクセスできるはずです。
https://<DockerホストのIP>:8929
こんな感じの画面が表示されればOKです。
rootユーザーでサインイン
先ほど表示したWebページですが、デフォルトでrootというユーザーが設定されていますので、それでサインインします。
rootユーザーのパスワードは環境によって異なりますので、以下のコマンドで確認してください。
# docker exec -it <GitLabのコンテナ名> grep 'Password:' /etc/gitlab/initial_root_password
先述致しましたdocker-compose.ymlファイルを使っている場合は以下のコマンドになります。
# docker exec -it gitlab_web_1 grep 'Password:' /etc/gitlab/initial_root_password
確認したパスワードをコピー&ペーストして、いざサインイン!
正常にrootユーザーでサインインできるとこんな感じの画面になります。
これで、最初に記載した今回のブログのゴールは達成です。お疲れ様でした!
最後に
この度はGitもCI/CDもよくわかっておらず、且つ、Docker EngineもDocker Composeもど素人なSEによるGitLab検証環境作成ブログをお読みいただき、誠にありがとうございます。
このブログの目標は以下のとおりでしたが、皆さまはいかがでしたでしょうか。
- GitLabのDockderイメージを用いて、GitLabの即席検証環境を作成する。
- 作成したGitLab環境にrootユーザーでサインインする。
今回は本当にGitLabをDockder Imagesを使って起動するだけの内容でしたが、今後は簡単な使い方等をちまちまご紹介したいと考えております。
この記事が「なんかよくわからんけどGitLabをとりあえず触りたい!」という方のお力になれば幸甚にございます。
GitLabに関するお問い合わせは、以下のフォームからお願い致します。
GitLab製品 お問い合わせ
GitLab操作デモ動画 (基本編) を作ってみました。(音声の録音は自宅でiPhoneのボイスメモ使うという超低クオリティですが…。)
つたない内容ではありますが、ご興味がおありでしたら是非ご視聴いただければと存じます。