Capistrano'da tam olarak “rol” nedir?


86

Bir Capistrano tarifindeki "rollerin" amacı ve işlevi nedir? Örnek tariflere baktığımda genellikle şöyle bir şey görüyorum:

role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db,  'somedomain.com', :primary => true

Dolayısıyla, bir rol , temelde Capistrano'nun komutları yürüttüğü bir sunucu gibi görünüyor . Durum buysa, neden "ana bilgisayar" veya "sunucu" yerine "rol" olarak adlandırılsın?

Yukarıdaki örnekte, :appve :webroller arasındaki fark nedir?

Ne geliyor :primary => trueseçenek mi?

Yanıtlar:


67

Roller, yalnızca belirli sunucular için geçerli olan capistrano görevleri yazmanıza izin verir. Bu gerçekten yalnızca çok sunuculu dağıtımlar için geçerlidir. Varsayılan "uygulama", "web" ve "db" rolleri de dahili olarak kullanıldığından, bunların varlığı isteğe bağlı değildir (AFAIK)

Sağladığınız örnekte işlevsel bir fark yoktur.

": Primary => true", özel görevlerde sunucuları belirtmede daha fazla ayrıntıya izin veren bir özniteliktir.

İşte bir görev tanımındaki rol spesifikasyonuna bir örnek:

task :migrate, :roles => :db, :only => { :primary => true } do
  # ...
end

Daha kapsamlı bir açıklama için capistrano web sitesine @ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role bakın.


2
Ayrıca unutmayın: :only => { :primary => true }bence satırınız olmalıdır ... veya bunun yerine rolesorudaki komut kullanılmalıdır :master => true. Bu niteliklerin tamamen serbest biçimli olduğuna inanıyorum.
docwhat

3

": Birincil => true" seçeneği, veritabanı sunucusunun birincil sunucu olduğunu belirtir. Bu, örneğin MySQL ile çoğaltma kullanmak istediğinizde önemlidir. Otomatik yük devretme için kullanılabilecek başka bir yansıtılmış veritabanı sunucusu oluşturmanıza olanak tanır. Ayrıca, model geçişlerinin hangi veritabanı sunucusunda çalıştırılması gerektiğine karar vermek için de kullanılır (bu değişiklikler yük devretme sunucularına kopyalanacağından). Bu bağlantı biraz daha açıklığa kavuşturuyor: https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.