コンテンツへスキップ

WP-CLIのaliasで複数のWordPress環境を安全に切り替える

WP-CLIで複数のWordPress環境(本番・ステージング・言語別サイトなど)を扱っていると、コマンドを打つたびにSSHの接続先やインストールパスを指定し直す作業が発生する。この指定を手作業で毎回組み立てていると、コピー&ペーストのミスや古いパスの使い回しによって、意図しない環境にコマンドを実行してしまうリスクが積み重なっていく。特にプラグインの一括更新やデータベース操作のような書き込み系コマンドでは、接続先を取り違えることの影響が大きい。

WP-CLIには、こうした接続情報に短い名前を割り当てておく「エイリアス」という仕組みがある。

補足: WP-CLIの「エイリアス」は、SSH接続先やWordPressのインストールパスといった接続情報に短い名前(@production 等)を割り当てておく機能。一度登録すれば、長い接続情報を毎回入力する代わりに短い名前でコマンドを呼び出せる。

エイリアスの登録先

エイリアスは2つの設定ファイルのどちらかに登録する。

  • プロジェクト単位: 作業ディレクトリの wp-cli.yml
  • グローバル: ホームディレクトリの ~/.wp-cli/config.yml

両方に同名のエイリアスがある場合は wp-cli.yml(プロジェクト単位)が優先される。複数のプロジェクトをまたいで同じ環境を扱うなら ~/.wp-cli/config.yml に集約したほうが管理しやすい。

登録例(config.yml):

@production:
  ssh: user@production.example.com:22
  path: /var/www/production/wordpress

@staging:
  ssh: user@staging.example.com:22
  path: /var/www/staging/wordpress

ssh にユーザー名・ホスト・ポートを、path にWordPressのインストールディレクトリを指定する。SSH認証は鍵認証を前提とし、パスワードを config.yml に書き込まない。このファイルをリポジトリで管理している場合、誤ってコミットしてしまうと接続情報が漏れる経路になるため、.gitignore に含めておくか、リポジトリ外のホームディレクトリ側に置く運用が安全である。

単体エイリアスを呼び出す

登録後は、通常 ssh で接続してから実行していたコマンドを、ローカルから1行で実行できる。

wp @production plugin list
wp @staging plugin list

内部的にはWP-CLIがエイリアスの接続情報を読み取り、SSH経由でリモートのWordPressに対してコマンドを実行している。実行結果はローカルの端末にそのまま表示される。

グループエイリアスで複数環境に同じコマンドを実行する

個別のエイリアスをまとめた「グループエイリアス」も定義できる。

@all:
  - @production
  - @staging
wp @all plugin list

グループエイリアスを実行すると、WP-CLIは登録された各エイリアスに対して順番にコマンドを実行し、それぞれの結果を「どのエイリアスに対する出力か」が分かる見出し付きで返す。同じコマンドを環境ごとに手作業で打ち直す必要がなく、実行結果がどの環境のものかを見失いにくい形式で証跡が残る。

安全に使うための注意点

エイリアスは便利さと引き換えに、指定ミスの影響範囲を広げる側面も持つ。運用する上で意識しておきたい点をまとめる。

  • エイリアス名は環境が一目で分かるものにする@a @b のような省略形は、後から見返したときにどちらが本番か判断できなくなる。@production @staging のように用途が明示された名前を使う
  • 実行前に wp cli alias list で登録済み一覧を確認する癖をつける。設定ファイルを直接見なくても、現在有効なエイリアスと接続先の対応を一覧で確認できる
  • 書き込み系のコマンドはグループエイリアスで一括実行しないwp plugin update --allwp db 系のコマンドをまとめて流すと、1つの環境で予期しない結果が出ても他の環境への実行を止められない。読み取り系のコマンド(plugin listcore version の確認など)はグループ実行でまとめて状況把握し、変更を伴うコマンドは1エイリアスずつ確認しながら実行するほうが安全である
  • SSHの鍵は環境ごとに分ける選択肢も検討する。同一の鍵を複数の本番環境に使い回していると、鍵1つの漏洩がすべての環境に及ぶ。環境の重要度に応じて鍵を分離する判断もありうる

まとめ

したいこと コマンド
登録済みエイリアスの一覧確認 wp cli alias list
単体エイリアスでコマンド実行 wp @production plugin list
グループエイリアスで複数環境に一括実行 wp @all plugin list
個別に確認しながら実行(書き込み系の安全策) エイリアスごとに1つずつ手動実行

複数のWordPress環境を横断的に扱う場面では、接続情報を毎回手作業で組み立てるよりも、エイリアスとして一度登録してしまったほうが、指定ミスによる事故を防ぎやすい。特にグループエイリアスの出力は「どの環境の結果か」が明示されるため、読み取り系の状況確認には向いている。一方で書き込み系のコマンドをまとめて一括実行することには慎重になる必要があり、正確さと証跡を優先する場面では、あえて1環境ずつ手を動かす選択も残しておきたい。

WP-CLIが管理画面を経由せずにWordPressの内部にアクセスできる仕組みは、WP-Cronの中身を確認する管理画面ロックアウトからのWP-CLI復旧でも触れている。エイリアスはその延長線上にある、複数環境を扱う際の接続管理の定石といえる。