現在、GitlabCIでビルドを開始すると、gitlab-runnerユーザーで実行されています。会社の内部ユーザーに変更したいです。 /etc/gitlab-runner/config.tomlのパラメーターを見つけられなかったので、それを解決しています。
私の現在の構成:
concurrent = 1
[[runners]]
name = "deploy"
url = ""
token = ""
executor = "Shell"
ps aux
を実行すると、次のことがわかります。
/usr/bin/gitlab-ci-multi-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner
サービスはオプション--user
で実行されています。
これを変更しましょう、それはどのディストリビューションに依存します。あなたはそれを実行しています。 systemdの場合、ファイルがあります。
/etc/systemd/system/gitlab-runner.service:
[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/gitlab-ci-multi-runner "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--se
ビンゴ、このファイルを変更しましょう:
gitlab-runner uninstall
gitlab-runner install --working-directory /home/ubuntu --user ubuntu
マシンを再起動するか、サービス(つまりsystemctl daemon-reload
)をリロードします。
特定のユーザー(--user)でインストールする場合、更新するたびに元のsystemdスクリプトに戻り、gitlab-runnerユーザーの使用に戻ることに注意してください。
更新後もユーザーの変更を維持するために、システム化されたオーバーライド(centos7)を使用して、これらの手順を使用できます(サービスが/etc/systemd/system/gitlab-runner.service
):
/etc/systemd/system/gitlab-runner.service.d
ディレクトリ。/etc/systemd/system/gitlab-runner.service.d/exec_start.conf
ファイル、内容:
[Service]
ExecStart=
ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/home/ubuntu" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "ubuntu"
実行systemctl daemon-reload
これが機能していることを確認するために、これを行うことができます:
GitLab Runnerパッケージを再インストールするgitlab-runner uninstall
その後 gitlab-runner install
チェックps aux | grep gitlab
そして、適切なユーザーが使用されていることを確認します
ソース: https://gitlab.com/gitlab-org/gitlab-runner/issues/3675
[非推奨の回答]
私は解決策を見つけました。これは最良のペースではありませんが、解決しました。 ssh executerとsshをlocalhostに使用する必要があります。 gitlab-runner id_rsa.pubを使用するユーザーのauthorized_keysに追加する必要があります。私の拡張コードがあります:
concurrent = 1
[[runners]]
name = "deploy"
url = ""
token = ""
executor = "ssh"
[runners.ssh]
user = "user"
Host = "localhost"
port = "22"
identity_file = "/home/gitlab-runner/.ssh/id_rsa"
将来の参考のために、セットアップのクローンバージョンでテストを行っていました。ドメイン名が使用しているサーバーを指していない場合、gitlabはランナーをオフラインと見なす可能性があります。ドメインが指しているIPで実行されている別の(コピーされた)インスタンスがあり、ファイアウォールがブロックされていない場合、gitlab-runner verifyコマンドはランナーが生きていると言います。
解決策は、127.0.0.1を指すドメインをhostsファイルに追加することです。 gitlabインスタンスとランナーを再起動する必要があります。