概要
定常業務を自動で実行するツールを作って業務を効率化してすごく褒められた話
自動化してよかったこと
- 大体バッチファイル3クリックで完了するようになった
- 週1~3回ほど発生する作業を、1作業あたり50分短縮した
- 作業ミスが(ほとんど)なくなった
- 誰でも出来るようになった
- アップロード作業を私一人で担当しなくてよくなり、稼働が減った(分散された)
- アップロードチームがいつの間にか出来上がり、自然とチームリーダになれた
効率化した業務(引き継いだ当初)
- 開発が完了したモジュールの名称一覧を受け取る
- 開発したモジュールを、管理用のファイルサーバからローカルに回収する
- それをWinSCPを使って別環境上の全23サーバ・69ディレクトリに手作業でアップロードする
- 全サーバのアップロード前後の資源一覧を取得する
- その差分をチェックし、証跡として管理する
自動化イメージ
タスクごとの使った技術
- 反映したい資源を記載
- ここは手作業
- 記載された資源を回収
- バッチファイルで実装
- 1で記載された資源名のファイル名からファイルサーバにアクセスする
- 対象のファイルをローカル環境に移動
- バッチファイルで実装
- 回収した資源を共有ストレージにアップロード
- バッチファイルで実装
- 2で回収したファイルをバッチファイルからWinSCP(CLI)をキック
- バッチファイルで実装
- 共有ストレージからサーバにアップロード
- Teratermマクロで実装
- Teratermで対象の全環境に一括ログイン
- ログイン後、ShellScriptを実行
- ShellScriptで実装
- 共有ストレージから
cp
コマンドでファイルをサーバ移動 - 同時に反映前後の資源一覧を
ls -l
コマンドで取得
- 共有ストレージから
- Teratermマクロで実装
- 反映結果を取得
- バッチファイルで実装
- 4で取得した反映前後の資源一覧をWinSCP(CLI)をキックして回収
- WinMergeで反映前後の資源一覧の差分を確認
- バッチファイルで実装
手作業の問題点
- 管理用のファイルサーバからローカルに回収する時、目検ミスをする
- 命名規約が人間に優しくない案件なので特にミスが発生する
- AAAAXYAとAAAAYXA みたいな
- 間違ってアップロードした結果、バグが発生するなどの問題が発生していた
- 命名規約が人間に優しくない案件なので特にミスが発生する
- WinSCPで23サーバにログインするのがかなり手間
- 23サーバに接続するとウィンドウのタブが山のように出来て視認性も悪い
- そのせいでアップロード対象を間違えるなどのミスが発生していた
- 23サーバに接続するとウィンドウのタブが山のように出来て視認性も悪い
- ログインした後ぽちぽちディレクトリ切り替えながら69ディレクトリにアップロードするのがかなり手間
- 対象のサーバによってアップロードする先のディレクトリが変わるので作業ミスが多発する
- アップロード前後の資源一覧を回収するのが大変
- Teratermでログインして事前にls -l叩いてアップロードして再度ls -lを叩く→その結果をWinMergeで比較して差分を確認する
- そのため、証跡の取得に相当な時間をかけていた
- 証跡の取得ミス(特にアップロード前)が発生すると後戻りが出来ない
反省
- 自分でも把握できないくらい改修と修正を繰り返したため、ブラックボックス化している
- 読み解ける量だが自作ツールのため、自分以外は読んでくれない
- 仕様変更が発生した場合、修正に稼働を取られる
- ドキュメントを残さなかった
- 当初はもっと小さなツールだったため、ドキュメントを作る意識がなかった