0
Capistrano v3의 설정을 한 단계의 여러 서버에 구현하는 데 문제가 있습니다. 아니면 불가능한 것을 원합니다.Capistrano 3 다중 서버 지연 변수 무시
namespace :test do
task :run do
on roles(:all) do
print "\nenvcode:\n"
p fetch(:envcode)
print "\nglobal_var:\n"
p fetch(:global_var)
print "\nssh_options:\n"
p fetch(:ssh_options)
print "\nmain_domain_name:\n"
p fetch(:main_domain_name)
end
end
end
을 그리고 여기에 같은 무대에서 시뮬 서버에 정의하는 설정입니다 :
나는 deploy.rb에서 테스트 작업을 만든은 다음과 같습니다
role :app, %w{ip1 ip2}
role :web, %w{ip1 ip2}
role :db, %w{ip1 ip2}
set :main_domain_name, "#{fetch(:envcode)}.mytestdomain.com"
set :global_var, 'foobar'
set :ssh_options, -> do
{
user: 'userip0'
}
end
server 'ip1',
roles: %w{web db app},
ssh_options: { user: 'userip1' },
user: 'userip1',
envcode: "envip1",
dbname: 'userip1',
dbuser: 'userip1',
dbpass: 'password',
dbhost: 'localhost'
server 'ip2',
roles: %w{web db app},
ssh_options: { user: 'userip2' },
user: 'userip2',
envcode: "envip2",
dbname: 'userip2',
dbuser: 'userip2',
dbpass: 'password',
dbhost: 'localhost'
내가 실행 캡 스테이징 테스트 : 실행이 출력 결과는 카피 스트라노가 서버 우선 적용을 완전히 무시한다는 것을 의미합니다.
envcode:
nil
global_var:
"foobar"
ssh_options:
{:user=>"userip0"}
envcode:
nil
main_domain_name:
".mytestdomain.com"
global_var:
"foobar"
ssh_options:
{:user=>"userip0"}
main_domain_name:
".mytestdomain.com"
들려주고 싶어 :
envcode:
envip1
global_var:
"foobar"
ssh_options:
{:user=>"userip1"}
envcode:
envip2
main_domain_name:
"envip1.mytestdomain.com"
global_var:
"foobar"
ssh_options:
{:user=>"userip2"}
main_domain_name:
"envip2.mytestdomain.com"
나는 무엇인가 잘못하고있다, 또는, 내가이 서버 설정 어레이로 할 수있는 것에 대해 나의 이해가 틀린가?