2

2 つのノードを持つ Web サーバー クラスターがあります。それらは、同じファイル サーバーを使用してファイルをホストします。ファイルは共有されているため、デプロイを行うためにサーバーの 1 つにアクセスするだけで済みますが、両方のサーバーで APC キャッシュをクリアしたいと考えています。Capifony に 2 番目のサーバーにデプロイせず、"symfony:clear_apc" を実行するように指示する方法はありますか?

現在の私の deploy.rb は次のとおりです。

set :application, "app.domain.net"
set :domain,      "#{application}"
set :deploy_to,   "/hosting_files/#{application}"
set :app_path,    "app"
set :web_path,    "web"

set :repository,  "git@bitbucket.org:company/#{application}.git"
set :scm,         :git
set :deploy_via,  :remote_cache

set :model_manager, "doctrine"

role :web,        "X.domain.com"
role :app,        "X.domain.com"
role :db,         "X.domain.com", :primary => true

set :keep_releases,  10
set :shared_files,      ["app/config/parameters.yml"]
set :shared_children,   [app_path + "/logs", web_path + "/uploads", "vendor"]
set :permission_method, :acl
set :use_composer,      true

set :interactive_mode,  false
set :branch, `git tag`.split("\n").last

set :user,  "applicationUser"
set :use_sudo, false
ssh_options[:forward_agent] = true
ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "id_rsa")]

"symfony:cache:warmup"

logger.level = Logger::MAX_LEVEL

namespace :symfony do
  desc "Clear apc cache"
  task :clear_apc do
    capifony_pretty_print "--> Clear apc cache"
    run "php #{deploy_to}/current/app/console apc:clear"
    capifony_puts_ok
  end
end

after "deploy", "symfony:clear_apc"
4

1 に答える 1

2

両方のノードのアクセス パラメータを設定するには、マルチステージ拡張機能を使用する必要があります: http://capifony.org/cookbook/using-the-multistage-extension.html

デプロイメント構成 node1 および node2 を作成します。ファイルを任意のノードにデプロイできます。さらに良いことに、ノードの1つをデフォルトステージとして設定します

set :default_stage "node1"

その後、cap コマンドの後にステージ (ノード) 名を追加することで、各サーバーで個別に symfony コマンドを実行できるようになります。

cap node2 symfony:clear_apc
于 2013-06-04T13:06:59.860 に答える