web-dev-qa-db-ja.com

Drush:複数のサーバーにインストールされているすべてのモジュールを一覧表示

同じネットワークに多数のサーバーがインストールされているので、それらすべてをチェックして、更新が必要かどうかを確認したいと思います。これには、各サーバーにログインしてdrush upを実行し、結果を確認する必要があります。

誰かがこれを行うためのより良い方法、おそらくスクリプトまたは同様のものを提案できますか?

1
VanD

サイトごとに Drush Aliases を追加してから、すべてのサイトを含むエイリアスを追加できます。

次に:

$ drush @allsites up

2
mtro

最初のステップ:drush-5.x-devにアップグレードします。次に、サイトごとにSITENAME.aliases.drushrc.incというエイリアスファイルを1つ作成し、それぞれをエイリアスの有効な場所に配置します。これらのそれぞれの中で、一貫した方法でライブサイトのエイリアスを定義します。

$aliases['live'] = array(
  'uri' => ...
  'root' => ...
);

Drush-5.x-devでは、特別なグループエイリアス@liveに対する操作はすべて、「live」という名前のすべてのエイリアスで実行されるため、次のようにすることができます。

drush @live --no pm-updatecode

それはあなたにあなたのライブサイトのそれぞれの名前でタグ付けされた素敵なレポートを与えるでしょう。 Drush 4(またはDrush 5)では、エイリアスリストを明示的に定義することもできます。

$aliases['all-live'] = array(
  'site-list' => '@site1.live', '@site2.live'
);

このエイリアスの使用法は、以前と同じになります。

drush @ all-live --no pm-updatecode

これをシームレスに機能させるには、Drushがパスワードなしで接続できるように、リモートシステムにsshキーを設定する必要もあります。 http://www.debian.org/devel/passwordlessssh など、これを行う方法に関する優れたドキュメントがたくさんあります。また、drush-extrasプロジェクトには、公開鍵をリモートサーバーにプッシュするのに役立つDrushコマンドがあります。

1
greg_1_anderson