Jenkinsのラベル式
どう使うのが良いのだろうか。
少しだけ触った印象では、
あるジョブを実行してよいノードを条件付けるために使うものに思える。制限するっていうのだから当たり前か。
細かく条件としてのラベルを書くこともできなくはない。
でも、やればやるほどラベルが増える。
やればやるほどてんやわんや。
仮にRHEL6.5ラベルを付けたノードがあり、バージョンアップ対応でRHEL7.1をこさえた別ノードで動作確認をさせるためには、ジョブのラベル式も書き換えないといけない。
なかなか面倒くさい。
ラベルを使い、負荷分散をするのには使える。
まるっきり同一構成の環境を複数ノード作り、それぞれのノードに同じラベルを付ける。
ジョブのラベル式には、その単一のラベルを書く。でも、どちらのノードも混雑してたら、どちらのキューに積まれるのだろうか、試したことがない。この使い方がわりとしっくり来る。
ラベルは、ノードのローリングメンテナンスに使えるかもしれない。
ラベルは、アクセス制御に使えるかもしれない。テストアプリの稼働環境が非スレーブで、そのテスト環境にリクエストを投げつけてよい唯一のスレーブに、それと分かるラベルを付けて制御する形式。
ああ、でも、その唯一のスレーブで動かなくてよいジョブには、どう書けばいいんだろう。ジョブのラベル式には否定を書けるんだっけかな。
なんだかんだ嫌になって、ノード=ラベルになってしまいそうだ。
とりあえず、細かくやればやるほど、直すところが増えるので、やり過ぎないようにしよう。
ノードのラベルは空白区切り、
ジョブのラベル式は&&や||を使って書く。
記号の前後に空白を付けても、裏で作られるラベル空白が取り除かれてるようだ。
試してないけど、A&&BとB&&Aは同じ意味を持つラベル式だけど、裏で作られるラベル式はそのままの文字列で作られるんだろうな、きっと。