0

こんにちは

私は最近、UX 管理チームのニーズに合うかどうかを判断するために gitlab を使い始めました。

次のように、テスト用にクラウド上に 3 つのサーバーを作成しました。

  • Server_1 Gitlab および Gitlab-CI

  • Server_2 Gitlab ランナー

  • Server_3 スクリプト リポジトリ

アイデアは、以前のスクリプト リポジトリを Gitlab にプッシュし、それらに加えられた変更とセキュリティの問題を制御することでした。

サーバー 1 に Gitlab-Omnibus をインストールし、彼のプロジェクト Testproject1 でユーザー「test1」を作成した後、いくつかのテスト スクリプトをプロジェクトにプッシュします。この後、Server_2にランナーをインストールし、Gitlabに対して構成し、ランナーを作成して登録し、Server3に対してsshキーを構成しました

ここでの問題は次のとおりです。ユーザー test1 が Gitlab の Testproject1 のスクリプトに変更を加えると、ランナーがトリガーされ、プロジェクト全体がビルドされ、プロジェクト全体が /home/user/build/"number"/number/Testproject1/ にプッシュされます。これらを実行するスクリプトアクションは、「Testproject1.sh」という名前のその場所にあり、次のようなコードが含まれています。

if [[ -d $'builds/6461cd4f/0/test1/Testproject1/.git' ]]; then
echo $'\x1b[32;1mFetching changes...\x1b[0;m'
cd $'builds/6461cd4f/0/test1/Testproject1' 

..... 等々。

リポジトリをユーザーの自宅にデプロイしたくありません。ファイル「.gitlab-ci.yml」を目的のデプロイパスとコマンドで構成するだけで十分だと思いましたが、それで達成できる唯一のことは、リポジトリがユーザーのホームと .yml ファイルに記載されているパスに毎回デプロイされます。

この動作を変更する方法を知っている人はいますか? 環境変数またはこれをコールドフィックスするものはありますか? または、この CI 機能を間違って使用していますか?

ちなみに、ランナーの yml ファイルは次のとおりです。

job:
    script:
        - cd /opt/gitlab/aplicacion1
        - git init .
        - git add .
        - git pull origin master
        - pwd
        - ls -ltra
    tags:
        - master

前もって感謝します

4

1 に答える 1

1

builds_dirgitlab-runner の設定で gitlab-runner のデフォルトの builds_dir を変更できます $HOME/$version/build gitlab-link です

例:
/etc/gitlab-runner/config.toml:

[[runners]]
  ...
  name = "runner_name"
  executor = "ssh"
  builds_dir = "/data/git_build"
  [runners.ssh]
    user = "user"
    host = "192.xxx.xxx.xxx"
    port = "22"
    identity_file = "/home/user/.ssh/id_rsa"

または、gitlab-runner を登録するときに builds_dir を設定できます。

引数付き--builds-dir

 gitlab-ci-multi-runner register \
        --name "$NAME" \
        --non-interactive \
        --url " $URL" \
        --tag-list $TAG \
        --registration-token "$TOKEN" \
        --executor "ssh"  \
        --builds-dir  "$BUILD_DIR" \
        --ssh-user "$SSH_USER" \
        --ssh-host "$SSH_HOST" \
        --ssh-port "$SSH_PORT" \
        --ssh-identity-file "$SSH_IDENTITY_FILE"
于 2015-11-21T05:55:03.710 に答える