概要
Jenkinsの運用をしていると全てのジョブの設定を一律に変更したい事があったりします。
ジョブ数が少なければブラウザからぽちぽちと設定を変更して行けば良いのですが、
僕のプロジェクトではジョブが数百有るのでブラウザ経由で変更していたらそれだけで一日が終わってしまいます。
ということで、いつも使っているジョブの一括変更方法を共有します。
方法
今回はjenkinsのhipchatプラグインの通知設定(notifySuccess)を一括変更する方法を紹介します。
Jenkinsのジョブの設定はJenkinsのホームディレクトリ配下のjobディレクトリに格納されています。
(何も設定をいじっていなければ/usr/local/jenkins/jobsにジョブがあるはずです)
このディレクトリに移動して以下のコマンドを実行します。
find ./*/config.xml | xargs grep "notifySuccess"
全てのジョブのconfig.xmlからnotifySuccessの記述を取得してまず既存の設定を確認しました。
以下の様にtrueとfalseの設定が混在していたので、全てfalseにする事にします。
./backup_jenkins/config.xml: <notifySuccess>true</notifySuccess>
./backup_storage/config.xml: <notifySuccess>false</notifySuccess>
先ほどgrepしたものを今度はsedに置き換えて、、実行します。
(注意)思い通りの変更にならないと困るので、コマンド実行前に一度jobs配下のcopyを取っておくと良いかもしれません。
find ./*/config.xml | xargs sed -i -e "s%<notifySuccess>true</notifySuccess>%<notifySuccess>false</notifySuccess>%g"
※設定反映の為にJenkins起動中の場合は設定を再読み込み(Jenkinsの管理→設定の再読み込み)をする必要が有ります。