この記事は, Mackerel Advent Calendar 2016の19日目の記事です.
「踏み台サーバ」とMackerel
以前, 「サーバにログインした時に任意のメッセージを表示する 〜Mackerelで管理しているホスト一覧を出す〜」という記事を書いたことがあります.
この記事では, いわゆる「踏み台サーバ」にログインしたタイミングで, MackerelのAPIを使って「踏み台サーバ」に紐づくサービスのホスト一覧を取得して, 次のように表示してあげる便利! というTips? を紹介しました.
----------------------------------------------------------------- My Service Host Information ----------------------------------------------------------------- App 10.0.xxx.xxx (instance-size) ... working 10.0.xxx.xxx (instance-size) ... working : : -----------------------------------------------------------------
今回もまたまた小さいTipsなのですが, これを改良(?)する機会があったので, そのお話をしたいと思います.
IPアドレスをちまちま入力するのは面倒じゃないですか?
...と思った訳です.
ここから, 実際に各サーバに接続しようとすると, ssh 10.0.xxx.xxx
のように, 手動でIPアドレスを入力していく必要があります.
ちょっと面倒ですし, 例えば10.0.123.456
とするべきところを, 10.0.124.456
とタイポしてしまうことも多々ありました.
補完を効かせたい!
...と思うのは, 自然なことだと思います.
やり方はいろいろありますが, 今回は「任意のサーバに接続するコマンド」を用意して, これを補完させるというアプローチを取りました.
具体的には, 「ホストの一覧を表示」するスクリプトの中で, ホストごとに次のようなファイルを生成するようにします.
#!/bin/sh ssh [user]@[ip address]
これを, 例えば/usr/local/bin/ssh/[ip address]
というファイルに設置して, 実行権限を与えた後, /usr/local/bin/ssh
にパスを通せば良いでしょう.
なお, Mackerelで管理しているサーバが入れ替わるなどしてIPアドレスが使われなくなる事は多々あると思うので, 「ホストの一覧を表示」するスクリプトが実行される度に/usr/local/bin/ssh
の中に存在するファイルを全て削除して, 都度生成しなおすようにしています.
結果
こうすることによって, 例えば「踏み台サーバ」から10.0.123.456
というホストに接続したいのであれば, 10.0.123.456
とタイプするだけで接続することができるようになりました.
更に, 10.0.
辺りまで入力して「TAB」キーを押せば, よしなに補完してくれるので, 「踏み台サーバ」から目的のサーバに移動するのが非常に簡単になりました.
非常に細かいTipsではあるのですが, チームメイトからの評判? は非常に良くて, 便利だと思ったので紹介させて頂いた次第です.