これはなに
GoogleAppsScript をローカルで開発するための Google 様謹製 CLI ツール clasp を使いはじめたんだけど、VirtualBox 上のゲストマシンから login するのにハマりかけたので、誰かがハマらないために情報共有するためのもの。
まだ、こういう情報が出まわってなさげだったので。
TL;DR
- ホストマシンの localhost:2020 をゲストマシン 2020 にポートフォワーディング
- ホストマシンのファイアウォールに穴あけ
- ゲストマシンのファイアウォールに穴あけ
経緯
Windows10 をホストマシンとした VirtualBox 上の CentOS 7 機で GAS (Google Apps Script) の開発を始めて数年。今までも
gas-master (やそれを利用して作った自前ツール) を使ってローカル開発をしてきたけれど、Google 先生が CLI ツール clasp を作ってくれたので、使ってみることにしました。ゲストマシンは、ネットワークアダプタを二つ持ち、一方は NAT ネットワーク、他方はホストオンリーアダプタとして接続してあります。
ゲストマシン上で clasp login したら、なにやら認可用の URL が表示されたので、ホストマシン上のブラウザでその URL に飛んでみたら、認証・認可のフローを経て、最終的に localhost:2020 にリダイレクトされました。ああ、clasp が 2020 番ポート開けて待っているのね、と思いました。
待ち受けのポート番号を変えるオプションか環境変数がないかと clasp login のマニュアルを見て探してみましたが、なさそうだったので、ホストマシンの 2020 をゲストマシンの 2020 にポートフォワードするしかないな、と思い至りました。
あとはホストマシンからゲストマシンにパケットが届くよう、ホストマシンのファイアウォールに穴を開け、ゲストマシンで clasp にパケットが届くようにゲストマシンのファイアウォールに穴を開けて解決しました。
clasp clone, clasp pull, clasp push なんかは問題なくできています。
clasp open もできると便利ですけどねぇ。