みなさん、こんにちは。ピクトリンク事業部インフラ課の藤本佳世です。
今回は、使ってみてとても便利だった「sshfs」をご紹介したいと思います。
sshfsとは
SSHを経由して、他のサーバのディレクトリをマウントすることができるコマンドです。
なぜ便利なのか?
私は日々の業務でよくAnsibleを使ってサーバのミドルウェアのインストールや設定などを行います。
今までは自分のローカルUbuntu環境からAnsibleを実行していたのですが、Macから実行すると環境違いでエラーになる事などがありました。
この状況を解消すべく、インフラ課のメンバー全員が同じ環境でAnsibleを実行できるよう専用サーバを構築しました。しかし、ローカルとリモートのコードを2重で管理という面倒な仕様になってしまい、何か解消する方法はないかと悩んでいました。
そんな時見つけたのが「sshfs」です。
これを使ってリモートで直接コードを修正しつつ、ローカルでのデバッグ実行も可能となり、とても便利になりました。
NFSと比較した場合、リモートサーバでコマンドを実行する(=SSHでログインして実行する)環境が既にできあがっているので、ローカル側にプログラムをインストールするだけで実現可能というお手軽さもあります。
使い方は簡単
- sshfsのインストール(Ubuntuの場合)
apt -y install sshfs
- マウント方法
例として、私のローカルマシーンの/testというディレクトリを作成し、サーバserver1の/home/fujimoto.kayoディレクトリをマウントします。
mkdir /test
あとは、sshfsコマンドをローカルマシーンから実行するだけです。
sshfs ユーザ名@ホスト名(あるいはIPアドレス):ディレクトリ マウントポイント
sshfs fujimoto.kayo@server1:/home/fujimoto.kayo /test
これでマウントができた状態です。実際にサーバserver1の/home/fujimoto.kayo配下には、example-ansibleディレクトリが存在しますが、
ローカルマシーンの/test配下にも同じexample-ansibleが存在します。
ls /test example-ansible
- アンマウント方法も簡単
fusermount -u /test
最後に
コードの2重管理がなくなったり、コードの修正をローカルで使い慣れている環境のエディタで編集できたり、ちょっとした工夫で日々の業務がスムーズに行えるようになりました。
是非、皆さんもこの「sshfs」を使ってみて下さい!