忘れられてしまったかもしれませんが、
システム保守をRPA化して劇的改善!としてお話をさせていただいた
その後の近況報告となります。
RPA化した自動保守にいくつか問題が発生しました。
RPAの保守運用で5時間かかっていた作業がたったの5分で行えるようになったまでは良かったのですが、RPAの実行が途中で失敗した場合、RPAの調査及び手動での保守チェックの必要が発生し逆に工数が増えてしまう事態が発生。
本来チェックが終わっているべき時間過ぎても通知が来ない、と思い確認すると、処理が途中で異常終了をしてしまっている。
RPAの問題は随時修正を行い対応していけるのですが、RPAを実行しているサーバの問題に関しては頭を悩ませています。
異常終了する大半の原因が、Chromeが自動更新されてしまいchromedriverとのドライバーバージョンが異なりAPIが正常時動作しなくなってしまう、というものです。
自動で更新されてしまうchromedriverに対してどのような対策を行えばよいのか、調査したところ下記の2つの方法に行きつきました。
1.chromeの自動更新を無効化
一番簡単な方法としてアップデート用のEXEをリネームしてしまい強制的にアップデートを行わせない方法。但し、セキュリティの脆弱性が発生する可能性がある為、出来るだけ最新を利用したい為、望ましくない。
2.chromedriverを自動更新させる
まずはchromeのバージョンアップが発生しているかをチェックするプログラムが必要。次にアップデートされていた場合、対象バージョンのchromedriverをダウンロードして適用する処理が必要。新たにチェックと更新の処理を行うRPAを作成する必要が発生し、プログラムの処理を調べている中、欲しいものが既にあるではないですか!!
同じ問題にぶち当たり、それを回避できる画期的な方法としてwebdriver_managerのインストール。
1から仕組みを作り検証を行うより、実績のあるものを利用した方がてっとり早いので、今回これを利用してRPAのツールを作成。
RPAのプログラムでWebdriver _managerを組み込んでやると、現在のChromeのバージョンをチェックし、対応するchromedriverをダウンロードしてくれる。
ダウントードしたchromedriverを指定のディレクトリに配置してやれば、Chromeの自動更新を気にせずRPAの保守自動化運用が続けられる。
これでChromeの自動更新されるたびに、プログラムが停止する問題と手動でchromedriverを更新する運用からおさらばだ。
まだまだ課題としてサーバフリーズ、プロセスフリーズ等問題はありますが地道に1歩づつ解決して完全自動化をめざします。
サーバフリーズの場合このような仕組みで自動再起動をさせています等、情報がありましたらコメントいただけると助かります。