このブログを検索

この記事の内容は、個人の見解、検証の範囲のものであり、誤りがある可能性があります。
個人の責任において情報活用をお願いします。


ラベル GitLab の投稿を表示しています。 すべての投稿を表示
ラベル GitLab の投稿を表示しています。 すべての投稿を表示

2026年7月31日金曜日

GitLab と GitLab Runner を連携させて CI/CD っぽいことをしてみる その4

今回は、前回作成した GitLab のプロジェクトに GitLab Runner を連携させたいと思います。
まずGitLab の WEB UI にログインして作成したプロジェクトを表示ます。
「設定」から「CD/CI」をクリックします。
「Runner」を表示します。
このプロジェクトを識別するためのタグ(demo-pj01)を設定して、「プロジェクトRunner」の作成をクリックします。
「Linux」を選択して、ステップ1のコマンドをコピーします。
GitLab Runner のサーバーで root になりコピーしたコマンドを入力します。

root@git-runner:~# gitlab-runner register  --url https://<gitlabのfqdn>  --token glrt-DnR0u35gt9tiKvFFn-MWR286MQpwOjIKdDozCnU6MQ8.01.170fcyrqe
Runtime platform                                    arch=amd64 os=linux pid=170536 revision=ac71f4d8 version=18.10.0
Running in system-mode.
途中聞かれる質問は基本的にそのままで大丈夫ですが、executor の指定は今回Ubuntuなのでshellにしています。
Enter the GitLab instance URL (for example, https://gitlab.com/):
[https://<gitlabのfqdn>]:
Verifying runner... is valid                        correlation_id=01KRWQ1H85FFAE7EBBXKXFK530 runner=DnR0u35gt runner_name=git-runner
Enter a name for the runner. This is stored only in the local config.toml file:
[git-runner]:
Enter an executor: ssh, parallels, docker+machine, kubernetes, docker-autoscaler, instance, virtualbox, docker, docker-windows, custom, shell:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
root@git-runner:~#
登録が成功すると、「新しい Runner を登録しました」 と表示されますので「Runner を表示する」をクリックします。
登録された Runner が確認できるようになりました。
実際に連携して動いてくれるかを確認します。
今回は以下のファイルをプロジェクトに push してコマンドが実行されるかどうかで確認します。

.gitlab-ci.yml
stages:
  - check

runner-test-job:
  stage: check
  tags:
    - demo-pj01  # ここを登録したタグ名に合わせます
  script:
    - echo "===================================="
    - echo "GitLab Runner (demo-pj01) の動作確認に成功しました!"
    - echo "===================================="
    - whoami
    - date
これをプッシュして、GUIで「ビルド」の「ジョブ」を見てみると処理が流れて・・・エラーになります。
なんやねん。と思って調べたらどうやら Ubuntu の初期設定で CD/CI のような非対話式の処理でログアウトが行われるとエラーと返してしまうようです。
今回は検証なので以下のコマンドで該当の処理を行うファイルを削除します。
rm /home/gitlab-runner/.bash_logout
削除したら、GUI にもどって右上にある「再実行」のボタンからやり直します。
今度はうまくいきましたね。 それでは、次回はこれを使ってプロジェクトに push されたことをトリガーにして、何か処理を行うものを作ってみたいと思います。

2026年6月30日火曜日

GitLab と GitLab Runner を連携させて CI/CD っぽいことをしてみる その3

今回は Gitlab Runner と連携する GitLab のプロジェクトを作成します。
管理者で GitLab にログインします。
プロジェクトを作成するには、プロジェクトが所属するグループが必要になるのでそちらをまず作ります。
「グループ」を表示して「新しいグループ」をクリックします。
「グループを作成」をクリックします。
「グループ名」を入力して画面下の「グループを作成」をクリックします。
グループが作成されるので「管理者」ボタンで戻ります。
「プロジェクト」を表示し「新規プロジェクト」をクリックします。
「空のプロジェクトの作成」をクリックします。
「プロジェクト名」を入力し、「グループまたはネームスペースを選択」で作成したグループを選び「プロジェクトを作成」をクリックします。
プロジェクトが作成されます。
このプロジェクトに対して操作ができるか確認してみます。
今回私は「Visual Studio Code」を使用するので、コードを表示してHTTPでクローンを行います。
リポジトリを作成したら「push-test.txt」を作成し中身は何でもいいので書いておきます。
内容を保存したら、対象のファイルをステージしてコミットしてプッシュ(変更の同期)します。
プロジェクトにファイルができていることを確認します。
これで GitLab Runner と連携する準備が整いました。

次回はこのプロジェクトに GitLab Runner を登録してみたいと思います。

2026年5月29日金曜日

GitLab と GitLab Runner を連携させて CI/CD っぽいことをしてみる その2

今回は、前回に続いて GitLab Runner を構築していきます。
土台として利用するのは GitLab と同様に Ubuntu です。
まず Ubuntu にログインして、root になります。
sudo su -
GitLab Runner のコマンドをダウンロード
sudo curl -L --output /usr/local/bin/gitlab-runner "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-linux-amd64"
ファイルが指定した場所に置かれているか確認
ls /usr/local/bin/gitlab-runner
/usr/local/bin/gitlab-runner
実行権限の付与
chmod +x /usr/local/bin/gitlab-runner
GitLab Runner 用のユーザーを追加
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
GitLab Runner のインストール
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
連携する GitLab の証明書の格納先を作成
mkdir -p /etc/gitlab-runner/certs
※ここで、GitLab の証明書を GitLab Runner に転送するため一旦 GitLab にログインします。  
scp /etc/gitlab/ssl/demo-gitlab.crt ubuntu@GitLab RunnerのIP:/tmp/
GitLab Runner に戻ります。
オーナーとパーミッションを変えておきます(やらなくても大丈夫かもしれないですが試してないです)
cd /tmp/
オーナーを変更します。
chwon  root:root demo-gitlab.crt
パーミッションを変更します。
chmod 644 /tmp/demo-gitlab.crt
GitLab Runner は /etc/gitlab-runner/certs/ に配置された証明書を確認しますが、その際にどの証明書を使うのかをアクセス先の FQDN もしくは IPアドレスで確認します。
そのため、今回は転送した証明書をファイル名をGitLabのFQDNに変換して配置します。
mv /tmp/demo-gitlab.crt /etc/gitlab-runner/certs/GitLabのFQDN.crt
また OS 全体の信頼する証明書リストにこの証明書を追加します。
cp /etc/gitlab-runner/certs/GitLabのFQDN.crt /usr/local/share/ca-certificates/GitLabのFQDN.crt
証明書リストを更新します。
update-ca-certificates
以下のように 『1 added,』と表示されればリストに1つ証明書が加わったことになります。
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
証明書を読み込むために GitLab Runner を再起動します。
gitlab-runner restart
これで GitLab と GitLab Runner の連携を行う準備ができました。
次回は、GitLab で GitLab Runner と連携するプロジェクトを作成してみようと思います。

2026年4月30日木曜日

GitLab と GitLab Runner を連携させて CI/CD っぽいことをしてみる その1

今回から、GitLab と GitLab Runner を構築し連携させて、GitLab のプロジェクトにあるファイルを更新をトリガーに GitLab Runner を動かして何かさせてみようと思います。

参考:https://docs.gitlab.com/ja-jp/install/package/ubuntu/?tab=Community+Edition

環境
OS:Ubuntu 24.04.2
DNSを利用して名前解決可能な状態

まず、作成済みの Ubuntu を使って GitLab のコミュニティエディション(CE)構築を行います。
SSH等でログインしてください。

権限などが必要になるので root になります。
sudo su -
インストールに必要なリポジトリの追加を行います。
curl --location "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash
gitlabをhttpsで利用したいので、自己証明書を用意します。
自己証明書用のディレクトリ作成
mkdir -p /etc/gitlab/ssl
権限を変更します。
chmod 755 /etc/gitlab/ssl
事故証明書を作成します。
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout /etc/gitlab/ssl/demo-gitlab.key \
  -out /etc/gitlab/ssl/demo-gitlab.crt \
  -subj "/CN=" \
  -addext "subjectAltName = DNS:,"
聞かれる質問に対しては Common Name だけgitlabサーバーのFQDNを入れます。
この証明書を読み込んでもらえるように通常はインストール処理の中で作られる設定ファイルを先に作って証明書を指定します。

ディレクトリの作成
mkdir -p /etc/gitlab
ファイルの作成
touch /etc/gitlab/gitlab.rb
権限の変更
chmod 600 /etc/gitlab/gitlab.rb
作成した gitlab.rb に以下の内容を記入します
# URLを https に変更
external_url 'https://'

# Let's Encryptは使わないので false
letsencrypt['enable'] = false

# 証明書のパスを明示的に指定
nginx['ssl_certificate'] = "/etc/gitlab/ssl/demo-gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/demo-gitlab.key"
インストールを実行します。
apt install gitlab-ce
GitLabにログインするために必要な root のパスワードを確認します。
1日くらいでファイルが削除されるのでさっさとログインして初期パスワードを変更しましょう。
cat /etc/gitlab/initial_root_password
パスワードが確認出来たらログインします。
日本語化するため右上のアイコンをクリックし「Preferences」を選択します。
右側のスクロールバーを下に下げ「Localization」の「Lunguage」から日本語を選びます。
一番下の「Save changes」をクリックして設定を保存します。
忘れずにパスワードも任意のものを設定しておきましょう。
因みに、アップデートの通知が毎回出てきて煩わしいときがあると思いますが、その場合はここのチェックを外しましょう。
「管理者」ボタンがあるのでそれを押して管理者モードになり「設定」の「メトリックスとプロファイリング」から「使用状況の統計」をひらくとあります。
次回はこの GitLab と連携する GitLab Runner の構築を行おうと思います。