GitLab システム管理者 - ハンズオンラボ: GitLab Omnibus インスタンスの探索
目的
このラボでは、GitLab インスタンスに SSH 接続し、インスタンスで使用可能なさまざまなコマンドラインツールを操作します。これにより、GitLab インストールを操作するさまざまな方法を理解できます。
タスク A. GitLab インスタンスへのアクセス
SSH を使用して GitLab インストールにアクセスします。このクラスの一部として、SSH キーと 2 つのインスタンス IP が提供されています。これらのサーバーのうち一方は、ジャンプボックスまたはバスティオンサーバーと呼ばれます。まずバスティオンサーバーに SSH 接続します。このサーバーから、root ユーザーとして GitLab インスタンスにアクセスできます。GitLab インスタンスに SSH 接続するには、以下の手順を使用します。
ローカルコンピューターでターミナルウィンドウを開いてください。
サーバーの SSH キーファイルが含まれているディレクトリに移動してください。
SSH 接続では、プライベートキーファイルに他のユーザーがアクセスできないようにする必要があります。Linux および MacOS では、次のコマンドで設定できます。
chmod 400 <keyfile_name>Windows では、次のコマンドで設定できます。
icacls .\keyname.pem /inheritance:r割り当てられたバスティオン IP アドレスと SSH キーファイルを使用して、
student-userとしてサーバーにログインしてください。ssh -i <keyfile_name> student-user@<vm_ip_address>バスティオンサーバーから、割り当てられた Omnibus IP アドレスを使用して Omnibus サーバーに root としてログインしてください。
ssh -i ~/.ssh/ilt_key root@<omnibus_ip_address>WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! というエラーが表示された場合は、SSH の known hosts をリセットする必要があるかもしれません。これを行うには、
ssh-keygen -R <vm_ip_address>コマンドを実行してください。Enter キーを押してください。
システムに認証警告が表示された場合は、
yesと入力して Enter キーを押してください。yes と入力すると、サーバーに接続されます。
タスク B. gitlab-ctl の操作
gitlab-ctl コマンドラインユーティリティは、GitLab インスタンスの管理とトラブルシューティングのためのツールを提供します。このタスクでは、gitlab-ctl ツールを通じて GitLab インストールと対話するさまざまな方法を確認してください。
GitLab インスタンスで、
sudo gitlab-ctl statusコマンドを実行してください。以下のような出力が表示されます。run: alertmanager: (pid 904) 110s; run: log: (pid 899) 110s run: gitaly: (pid 910) 110s; run: log: (pid 884) 110s run: gitlab-exporter: (pid 903) 110s; run: log: (pid 886) 110s run: gitlab-kas: (pid 893) 110s; run: log: (pid 881) 110s run: gitlab-workhorse: (pid 894) 110s; run: log: (pid 888) 110s run: logrotate: (pid 900) 110s; run: log: (pid 892) 110s run: nginx: (pid 901) 110s; run: log: (pid 896) 110s run: node-exporter: (pid 907) 110s; run: log: (pid 889) 110s run: postgres-exporter: (pid 898) 110s; run: log: (pid 885) 110s run: postgresql: (pid 890) 110s; run: log: (pid 882) 110s run: prometheus: (pid 906) 110s; run: log: (pid 891) 110s run: puma: (pid 905) 110s; run: log: (pid 895) 110s run: redis: (pid 897) 110s; run: log: (pid 883) 110s run: redis-exporter: (pid 902) 110s; run: log: (pid 887) 110s run: sidekiq: (pid 911) 110s; run: log: (pid 909) 110sstatus コマンドにより、サーバー上で実行されている GitLab コンポーネントの概要が表示されます。
次に、
sudo gitlab-ctl stop nginxコマンドを使用して GitLab コンポーネントを停止してみます。出力として
ok: down: nginx: 0s, normally upが表示されます。Nginxが実行されていないことを確認するには、sudo gitlab-ctl statusコマンドを実行してください。出力でNginxが実行されていないことを確認できます。down: nginx: 58s, normally up; run: log: (pid 896) 1070sNginxを再起動するには、sudo gitlab-ctl restart nginxコマンドを実行してください。出力として
ok: run: nginx: (pid 1869) 0sが表示されます。sudo gitlab-ctl statusを実行して、Nginxが再び起動して実行されていることを確認してください。
タスク C. GitLab Rails の操作
GitLab Rails は、Ruby on Rails を通じて GitLab と直接やり取りできるコマンドラインツールです。このツールは、インスタンスエラーのトラブルシューティングと修正に役立ちます。
GitLab Rails にアクセスするには、
sudo gitlab-rails consoleコマンドを実行してください。このコマンドの完了には数分かかる場合があります。
コマンドが完了したら、
u = User.find_by_username('root')を実行してください。このコマンドにより、GitLab でユーザー名が
rootのユーザーを検索し、変数uに格納します。pp u.attributesを使用してユーザーの属性を表示します。pp u.usernameを使用してユーザーのユーザー名を表示します。完了したら、
quitと入力して Rails コンソールを終了します。
タスク D. PostgreSQL の操作
GitLab はすべてのアプリケーション関連データに PostgreSQL を使用しています。psql を通じてこのデータを表示すると役立つ場合があります。
PostgreSQL にアクセスするには、
sudo gitlab-psql -d gitlabhq_productionコマンドを実行してください。\x onコマンドを実行して、クエリ結果を拡張形式にします。PostgreSQL データベース内のすべてのテーブルを表示するには、
\dtを実行してください。いくつかのテーブルをクエリしてみましょう!例えば、
SELECT * FROM projects;、SELECT * FROM users;などです。
ラボガイド完了
このラボ演習を完了しました。このコースの他のラボガイドを参照できます。
ご提案はありますか?
ラボに変更を加えたい場合は、マージリクエストを通じて変更内容を送信してください。
