GitLab Docker: initial runners registration token


1 min read
GitLab Docker: initial runners registration token

GitLabはRuby on Railsで書かれたオープンソースのGitサーバアプリケーションです。おそらく、オープンソースのGitサーバとしては最もよく使われているものではないでしょうか。
GitLabは他のOSS Gitサーバアプリケーションと比べて、非常に多くの機能を持っています。
GitLab-CIもその一つで、GitLab上で自動テストを回すことができます。

この、GitLab-CIを使用するにはrunnerと呼ばれる、CI環境用のホストを追加する必要があります。
このとき、Registration Tokenという登録用トークンが必要なのですが、REST APIで取得することができません。そのため、Dockerを用いた自動構築時に少々困りました。

解法

GitLab omnibusの設定項目でRegistration Tokenの初期値を設定することができます。
docker runする際のオプションに、以下を追加します。

-e GITLAB_OMNIBUS_CONFIG="gitlab_rails['initial_shared_runners_registration_token'] = 'HOGEHOGETOKEN'"

もし、ほかの理由ですでにGITLAB_OMNIBUS_CONFIGの指定がある場合、セミコロン区切りで複数の値を指定することができます。たとえば、初期パスワードを与えている場合は、以下の様にできます。

-e GITLAB_OMNIBUS_CONFIG="gitlab_rails['initial_root_password'] = 'FUGAFUGAPASSWORD'; gitlab_rails['initial_shared_runners_registration_token'] = 'HOGEHOGETOKEN'"

ここで指定した値をrunnerの登録時に与えれば、OKです。

docker exec GITLAB_RUNNER_CONTAINER_NAME gitlab-runner register -n -r HOGEHOGETOKEN --run-untagged --executor docker --docker-image alpine:latest --url http://GITLAB_URL --docker-volumes /var/run/docker.sock:/var/run/docker.sock

このとき、GITLAB_RUNNER_CONTAINER_NAMEとGITLAB_URLは適宜置き換えてください。


Application Specific Context
Previous article

Application Specific Context

元ネタは@lestrratさんの「Abusing type aliases to augment context.Context」。 golangを用いてHTTPサーバを作る場合、ルーティングを定義するのに以下の様な関数を用います。 http.HandleFunc(path string, handler func(w http.ResponseWriter, r *http.Request) もちろん、http.

kubesprayを使用してkubernetes clusterを構築する
Next article

kubesprayを使用してkubernetes clusterを構築する

注意: 情報が古くなっています。新しい情報にあわせて記事を書いたので、そちらをご覧ください。 kubesprayはproduction readyなkubernetes(k8s)クラスタを構成できるツールです。 Ansibleをベースに作られているため、任意のサーバでk8sクラスタを構成できます。 今回は、3台のVMを用意してクラスタを構成してみます[1]。 検証環境 今回用意したVMは以下の構成です。 2Core 8GB RAM 80GB HDD CentOS 7 IPアドレスは以下の様になっているものとします。 192.168.


GO TOP

🎉 You've successfully subscribed to something tech.!
OK