2020年10月11日日曜日

【祝】Install SSH Key 100stars突破【慶】

まあなんつうかタイトルまんまです。

1年ほど前に作成したInstall SSH Keyがいつの間にか100starsを突破していました。今回はただのポエムです。

思い出話

v1の頃

GitHub Actionsのことは前から以前から気になっていたんですが、昔(v1の頃)はHCL(HashiCorp Configuration Language)で記述する必要があったのでちょっととっつきにくく、また動かせるOSもLinuxのみ(Dockerコンテナ)だったので自由度が低かった記憶があります。

v2のベータ版登場

v2でYAML形式で記述できるようになり、またOSもWindowsやmacOSが選べるようになったので、ここぞとばかりに飛びつきました。

それまでTravis CIで実行していた自動テストを早速GitHub Actionsに移動して、GitHub内でいろいろ完結することに感動を覚えたとか覚えなかったとか。

SSHを使いたい

ただ、自動テストだけならいいんですが、CDつまり自動デプロイを行うときにSSH接続が必要になるケースがありました。当然SSH鍵をCDのホストマシンに入れる必要があったのですが、いろいろ調べても鍵を入れてくれるactionが存在しない!SSHコマンドを実行するactionや、rsyncを実行するactionはいくつかあったんですが、SSH鍵のみ入れるactionというものがありませんでした。

GitHub公式で存在しないだけでなく、有志が作ったactionにも存在しなかったのです。

「え、需要ないの?みんなSSHとかrsyncを単独で走らせてるの?シェルスクリプト内でSSHコマンド実行することないの?」みたいなことを思いました。

ないなら作ったろ!の精神でとりあえず作ったactionがこのInstall SSH Key。もしかしたら他に使いたい人がいるかもしれないから、自分で使うだけじゃなくて公開してあげようという優しさで全世界の開発者がSSH鍵をインストールできるようになりました

v2正式版リリース

その後なんやかんやでGitHubの中の人とやり取りしてv2の正式リリースの話も聞き、晴れて2019年11月に正式版がリリースされました。

そしてこのactionも少しずつではありますがstarと利用者が増えていき、SSH鍵インストールの需要がないのではなく、v2が出たばかりでGitHub Actionsの利用者自体が少なかっただけという結論に至りました。

Install SSH Keyの進化

利用者が増えるにつれ、バージョンアップでバグを仕込んでしまうわけにはいかないと思い、このaction自体もGitHub Actionsで自動テストをしたほうがいいんじゃね?と考えてGitHub Actionsがサポートしている全てのOSでテストするようになりました。最初は対応していなかったCIのバッジもいつの間にか対応していて、バッジをREADMEにペタペタ貼ることでめっちゃテストしてる高品質なactionだということがひと目でわかるようになりました。

さらに、実環境でいろいろ使っているうちに「GitHub ActionsからのSSHって常にインターネット回線を通るから、known_hostsは必須にしたほうがいいんじゃね?」と考え、次のメジャーバージョンでは必須パラメーターにしようという計画を立てました。ついでにSSHに直接必要ではない公開鍵をパラメーターから外したり、パラメーターの名前を変更したりと細かな変更を加えて2020年2月8日にバージョン2.0.0がリリースされました。

「known_hostsを省略可能にしてくれよ」っていう要望が時々ありますが、セキュリティー上の理由により丁重にお断りしています。おそらく今後も(署名付きSSH鍵が当たり前の時代にならない限り)known_hostsは必須パラメーターであり続けると思います。

とりとめのない文章になってしまいましたが、今後もよろしくおねがいします。使い倒してやってください。

0 件のコメント:

コメントを投稿