さんさろ

さんさろ

プロダクトエンジニアの雑記&技術、たまにドイツ

iTerm2で本番とステージング環境の取り違えを防ぐための対策一例

 

 

SSHクライアント上での本番との取り違え

先日、別のプロジェクトをやってる後輩が、SSHクライアント上で同時に開いていたステージング(テスト)環境とローカル環境の窓を取り違えて、ローカルで叩くはずだったコマンドをステージングで叩いてしまい、ステージングのDBをふっ飛ばしたことがありました。

土日をかけてお客さんがデータを入れていたそうで、月曜日にふっ飛ばしたらしいです。チャット上での会話を見ていましたが、見てるこっちまで「ひえー…Σ(´∀`;)」ってなりました。

Truncate を叩いたらしいです。怖……

元請けはもちろん即謝罪に客先に行きました。「本番じゃなくてよかったですよ」と元請けは言ってくださってましたが……。

元請けさんがいい人でホントよかったですね、後輩くん。

 

視覚的に分かりやすく

私は幸いにも、本番とローカルやステージングを取り違えたことはありません。

もともとサーバエンジニアだった時代に先輩からも「本番とテスト、絶対に間違えるなよ」ときつく言われていたし、そのための工夫の仕方も教わりました。

当時 WindowsSSHクライアントは PuTTY を使っていたんですが、PuTTY は環境ごとに背景色や文字色を変えることが出来ましたので、ローカル・テスト・本番で文字色を変えていたのです。ですので、ひと目で本番かローカルかが分かるようになっていて、取り違えを防止出来ました。

仕事PCが Mac になって、Mac 上でコンソールを叩くようになってから、iTerm2 でも同じように出来ないかなーと思っていたら、同じように出来る設定を見つけたので、環境によって文字色を変えることで取り違えの防止対策にしています。

これで本番とステージングの取り違えを「完全に」防げるとはもちろん言い切れませんし、これが最適解でもないと思いますが、防止策の1つにはなるのではないかと思います。

もし取り違え対策で悩んでいる方がいれば、参考になればと思います。

 

iTerm2での表示に工夫

Mac 使ってらっしゃる方は、コンソールに iTerm2 使ってるよ、という方も多いのではないでしょうか。

iTerm2 - macOS Terminal Replacement

 

今回は iTerm2 での設定方法をご紹介します。

私の iTerm2 での表示はこんな感じです。

上からローカル環境、ステージング(テスト)環境、本番環境の表示です。

多分この記事読んでる方の9割以上が「背景白かよ」って思いましたね。思ったでしょう?!

……よく言われます。

私はどうにも黒背景に色文字だと、5分と持たずに目がチカチカしてしょうがないので、例えコンソールだろうと背景は白です!

まあそこはいいとして。

設定はこんな感じになっています。

 

設定方法

 Preferences → Profiles から、名前を付けた設定を追加することが出来ます。

ここで好きなだけ設定を増やす事が出来ます。

 左側の窓に、設定名が並んでいます。

「★」がついているのが、Command+T で開くデフォルトの設定名です。

……本番環境が Honban なの、別にいいじゃないですか。直感的に分かりやすくって思ったんです。Production ですよね、はいスミマセン…。

 

コツは、各設定にショートカットキーを割り振る所です。

 Preferences → Profiles → General タブから設定出来ます。

赤丸がついている所です。

各設定にショートカットキーを振っていますので、例えば本番環境につなぐ時には、

Command + Control + H

で本番用のコンソールが開くようになっています。

もちろんメニューから開いても同じように名前付き設定を開くことは可能ですが、一々マウスに手を戻すの面倒くさい効率が悪いですからね…。

 

いかがでしたでしょうか。

エンジニアさんにはあんまりウケが良くなさそうな手段だな……とは思いますが(笑)

そもそもディレクトリ構造とかコンソール上のサーバ名とか見たら本番かステージングかなんて一目瞭然じゃないか!というお方もいるとは思いますが、視覚的に瞬時に理解出来る方法として、ご紹介しました。

 

もしどこかの誰かのお役に立てれば、これ幸い!