Jenkins と Windows タスクスケジューラ
仕事のお話。
Jenkins という大変よく出来た自動実行ツール *01ほんまはCIツールって言うんですけどね。 がありまして。
今回の案件ではそれを使って定期実行処理を実装しようとしていたのですよ。
ところが、これがあと一歩という所で、思うように動いてくれない。
あーでもない、こーでもないとしている内に納期は迫る。
結局、Windows タスクスケジューラを使い実装して、納期に間に合わせました。
元からこの事態は想定していたので、検討段階から両天秤で動いてはいたのですが、やっぱり「できなかった」というのは悔しいですよね。
そんなわけで、諦め悪く次回案件では使えるように、勉強と試行錯誤は続けるのでした。
ちなみに
うまく行かなかったのは、Windows 上にインストールしたJenkins からGit bash のシェル実行ないし、Windows バッチコマンドを使ってRails のrake コマンドを定期実行するという処理。
直接Git bash やコマンドプロンプトからrake コマンドを叩くのは問題ないのですが、Jenkins に実行させるとユーザーがWindows のSYSTEMプロセスになっちゃうんですよね。
で、そのせいで処理中に使用するネットワーク共有ディレクトリへのアクセス権が取得できず、処理がコケるという…。
仕方ないので、シェルスクリプトに書いたrake コマンドをWindows タスクスケジューラから蹴っ飛ばして実行させております。
ただ、これだと実行失敗した場合とかにメール通知が飛ばせない。
別途、メール通知処理を自前で書かないとならんのですよ。
Jenkins だと実行監視にメール通知も組み込めるので、色々と楽だったんですけどね。
脚注
↩01 | ほんまはCIツールって言うんですけどね。 |
---|