skończyło się zamieszczając pytanie na Kapistrana Lista użytkowników here, i otrzymał następującą odpowiedź od Jamis (red trochę przeze mnie tu dla jasności):
spróbować gospodarze zmienną środowiskową:
cap HOSTS=app2.example.com production deploy
Należy zauważyć, że w ten sposób będą traktować app2 jako w każdej roli nie tylko cokolwiek rola (e) zdarza się być zadeklarowane.
Jeśli to, co chcesz robić regularne wdrażanie, ale tylko działać na App2 i tylko jako app2 jest zadeklarowana w pliku receptury, ty może używać HOSTFILTER zmienna zamiast:
cap HOSTFILTER=app2.example.com production deploy
[...]
Rozważmy ten konkretny przykład. Załóżmy, że Twój skrypt definiuje trzy serwery, A, B, i C i określa zadania, "foo", że (domyślnie) chce uruchomić na A i B, ale nie C. Podobnie jak to:
role :app, "A", "B"
role :web, "C"
task :foo, :roles => :app do
run "echo hello"
end
teraz, jeśli zrobić cap foo
, to będzie działać z polecenia echo zarówno a i B.
Jeśli nie cap HOSTS=C foo
, to będzie działać na polecenie echo C, niezależnie od: role parametr do zadania .
Jeśli wykonasz cap HOSTFILTER=C foo
, to nie uruchomisz komendy echo pod numerem , ponieważ przecięcie (A B) i (C) jest zbiorem pustym.(Nie żadnych gospodarze listy gospodarza Foo pasujących C)
Jeśli nie cap HOSTFILTER=A foo
, to będzie działać echa polecenia tylko na A ponieważ (A B) przecinają się z (A) (A).
Wreszcie, jeśli nie cap HOSTFILTER=A,B,C foo
, to będzie działać echa polecenie na A i B (ale nie C), ponieważ (A B) przecinają się z (A B C) jest (A B).
Podsumowując: HOSTS całkowicie przesłania deklarację gospodarzy lub ról zadania i zmusza do uruchomienia wszystkiego względem podanych hostów. Z kolei HOSTFILTER po prostu filtruje istniejące hosty na podstawie podanej listy, wybierając tylko te serwery, które są już na liście serwerów zadań na stronie .
Wygląda na to, że to już nie działa z Capistrano 3.4 – collimarco
W Capistrano 3, użyjesz zmiennej środowiskowej HOSTS dla tego, co HOSTFILTER znajduje się w Capistrano 2. http://capistranorb.com/documentation/advanced-features/host-filtering / – codener