GitLabとGitLab_CIとJenkinsはそれぞれ別のユーザーで実行することが想定されています。GitLab_CIに至ってはgitlab_ciユーザーに加えてビルドを実行するgitlab_ci_runnerユーザーも必要です。

[table id=1 /]

この状態でこれらを同一サーバーにインストールすると、GitLabからプロジェクトのコードをcloneするときにAccess denied になります。パーミッションエラーです。それぞれのアプリケーションはそれぞれのホームディレクトリ以下で動いているので, 同一サーバ内だとパーミッションエラーになるわけです。

あわせて読みたい:

別のサーバにインストールできればいいのですが、唯一虎の子のサーバしかないということも多々あると思います。そういうときには全部ユーザーgitで動かしちゃえばオールオッケーです。

Contents

GitLab_CI , GitLab_CI runner

  • config/database.ymlのユーザーをgitに (GitLab_CI runnerは無い)
  • /etc/init.d/gitlab_ciの
    • APP_USERをgitに
    • GitLab_CI runnerはさらにAPP_ROOTを/home/git/gitlab-ci-runnerに

変更すればオッケーです。

Jenkins

Jenkinsを別ユーザで動かす – kotaroito’s notes 

を参考にして、/etc/sysconfig/jenkinsでユーザーとホームディレクトリを変更し、/var/log/jenkins/, /var/cache/jenkins/の権限を変更します。

JenkinsでGitLabのプロジェクトをビルドするには、Jenkinsプロジェクトの設定を

スクリーンショット_022414_021836_AM-5

こんな感じにすることでcloneできるようになります。8079はGitLabを動かしているポート番号です。

ひとまず動くようになるまではこれでオッケーですが、JenkinsでGitLabへのpushを景気としてビルドするにはもうちょっと手間が必要です。JenkinsにはGitLabプラグインというのがあるのですが、Repository URLに書いたパスにhttpでアクセスすることでpushイベントを登録するみたいで、今回のように絶対パスでGitLabリポジトリを登録した場合はpushに反応してくれませんでした。ですのでJenkinsに直接curlすることでhookすることにします。

curl http://localhost:8088/job/hogehoge/build することでJenkinsのhogehogeプロジェクトがビルドできることをまず確認しましょう。8088はJenkinsの動いているポートです。

そのためにgitのhooks/post-update機能を使います。

cd /home/git/repositories/oreore/hogehoge.git/ でoreoreさんのhogehoge.gitリポジトリに移動し、hooks/post-updateを有効にします。

? mv hooks/post-update.sample hooks/post-update
? chmod a+x hooks/post-update
? vi hooks/post-update

hooks/post-updateは次のように変更します。ハイライトは追加した行

#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

curl -s http://localhost:8088/job/hogehoge/build
exec git update-server-info

これでGitLabのhogehogeプロジェクトにpushするとcurl -s http://localhost:8088/job/hogehoge/build が実行されるようになります。

それでは素敵なおじさんライフを!

 

関連記事

fitbitの睡眠スコアを90弱で安定させる良い睡眠を続ける簡単な方法

m1 ipad pro 12.9 2021のusb-cハブはコレがベスト

Time Machine不要!Macを11.2.3にダウングレードして原神をm1 macbook airでプレイする

MH-Z19CとM5StickCで二酸化炭素濃度モニタリング

【神軽量HMD】Avegant Glyph 改造: 瓶詰堂さんのaltglyphを作った

PC、iPad、Android、switchもドックいらず!あまりに万能なusb-cハブが最強だった

コメント

コメントを返信する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です