何がしたかったか
業務でとあるシステムを開発しているが、ローカルでOracleDBを動かすのはちょっと大変で、そこそこファイルサイズのでかいzipが必要だったりする。
環境構築自体は一通り流れは確立していてREADME.mdの通りにコマンド1つ1つ実行したら出来はするが、実行すべきコマンドが多いのと、Oracleのzipのサイズが2.8GBあるし、手動でダウンロードして長い時間を待って手動で指定したフォルダに移動してdockerコマンド実行したりと新人なら何かしらミスして失敗する可能性がある。あと新人じゃなくてもラクをしたい。一部環境構築し直しもラクしたい。
ということで、全ての環境構築を1つのシェル実行だけで完了してしまうシェルを作りたくなり、作った。
2.8GBあるzipファイルのダウンロード・指定フォルダへの配置の自動化
今回の環境構築シェル実装前はGoogleドライブに配置していて手動でダウンロードする手順になっていたが、会社からもらっているアカウントのファイルに対して誰でもアクセス可能な権限をつけたくなかったのとダウンロードが多少複雑になるので、他に何か探していたら、普段タスク管理しているbacklogを思い出した。
backlogのファイルアップロードはブラウザからだと1GBまでしかできない。これは詰んだ??と思って調べてみたら、WEBDAV経由だと3GBまでいけることが分かった
すぐに設定して、ローカルからbacklogのファイルデータにアクセスできるようになった。(Gドライブみたいなもの)
そこでアップロードしたらいけた。
backlogのAPIはわりとゆるくて、簡単に取得できるAPI Keyを指定するだけで様々なことができてしまう。
今回アップロードするzipは「Oracle Instant Client」で社内オリジナルのデータでもなんでもなく以下からアクセスしてダウンロード可能なデータなので、backlogのAPIをcurlで実行してダウンロードできるようシェルの中に組み込んだ
https://www.oracle.com/jp/database/technologies/instant-client/downloads.html
API Keyの管理についてだが、プロジェクトに参画して実行するのは基本1回だけなので、何か設定ファイル作ってそこに書くようにしたりせず、シェル実行時にターミナルでコピペで入力するようにした。
これが適切かどうかは人によって意見割れそうだが、まああくまで環境構築シェルなので、、、
感想
他の案件で僕が新人のとき、誰かが作った環境構築シェルで感動した記憶があるが、今度は僕がそれを作れるようになってなんか嬉しい