もうリモートを意識しない。XPipeで実現するシームレスなサーバー管理術
お前、散らばったサーバーの鍵(SSHキー)や、どこにあるかもわからねぇDockerコンテナ、それにKubernetesのクラスターの管理で、頭がパンクしそうになってるんだろ?
俺たち「裏のエンジニア」にとっちゃ、証拠を残さず、素早く、スマートにターゲット(サーバー)へ潜り込むのが鉄則だ。そこで使えるのが、この 「XPipe」 って代物さ。
こいつがどうエンジニアの役に立つのか、吐かせてやるよ。
一言で言えば、「ローカルのシェルから、世界中のあらゆる環境へ一瞬でワープできるポータル」だ。
煩わしいSSH設定からの解放
~/.ssh/config をいちいち手書きでチマチマ編集して、インデントがずれて発狂……なんてことはもう終わりだ。
コンテナ・K8sへの直通
サーバーの中のDockerコンテナや、K8s Podの中へ、コマンド一つで潜り込める。
ローカル環境の持ち込み
これが一番デカい。リモートサーバーに何もインストールされてなくても、お前が普段使っているローカルのツール(VS Codeやターミナル)をそのまま使って作業ができるんだ。
Javaで動いているが、インストールは簡単だ。各OS用のインストーラーが用意されている。
Macなら brew で一発だ。
# Mac (Homebrew)
brew install --cask xpipe
# Linux (Debian/Ubuntu)
# 公式サイトから .deb を落としてくるのが確実だが、スクリプトでもいける
curl -sL https://xpipe.io/install.sh | sudo sh
インストールしたら、GUIを立ち上げてみろ。そこから「Connection」を追加していくんだ。
エンジニアなら、GUIでポチポチするより、「どうやって自動化するか」が気になるよな? XPipeには強力なCLIツール(xpipe コマンド)がある。
登録した接続先をコマンドラインから一覧表示できる。
xpipe connection list
名前を指定するだけで、即座にそのサーバーへ接続したターミナルが開く。
xpipe open [接続名]
例えば、特定のリモートサーバーにあるログをローカルに吸い出したい時、XPipe経由でコマンドを叩かせることもできる。
#!/bin/bash
# ターゲットサーバー "production-web" の中にある docker コンテナの中でコマンドを実行
xpipe exec "production-web" "docker logs my-app-container --tail 50"
Java
XPipe本体がJavaで作られている。だからマルチプラットフォームで安定して動くし、重厚な接続管理が得意なんだ。
Docker XPipeの真骨頂は「入れ子構造」の管理だ。SSHで入った先のサーバーで動いているDockerコンテナを自動検出し、お前のデスクトップから「SSH ➔ Docker ➔ Shell」という経路をワンクリックで繋いでくれる。
これを使えば、お前のローカル環境は「全知全能」になる。 複数のクラウド、オンプレ、コンテナ……それらすべてが、まるで自分のPCの中にあるフォルダのように扱えるようになるのさ。
どうだ? 試してみる気になったか? ……もし使い方がわからなくなったら、また俺を呼びな。