Tworzę grupę różnych dostawców Chef, aby wdrożyć różne typy aplikacji. Dokumentacja szefa kuchni dla Extend a Lightweight Provider sugeruje, że jest to możliwe, ale tak naprawdę nie mówi, co robić. Ta strona sugeruje, że być może potrzebne jest połączenie z mixin
, ale nie wiem, jaką strukturę powinien mieć mój kod w pliku pod numerem /libraries
lub jak faktycznie włączyć ten kod do czegoś pod numerem /providers
.Jak rozszerzyć lekkiego dostawcę w Chef
Oto przykłady tego, co chcę zrobić.
W mojej klasie bazowej pod /libraries
:
repository "http://my.svn.server/#{deployment[:project]}/branches/#{node[:chef_environment]}/"
user "deploy"
scm_provider Chef::Provider::Subversion
svn_username "svn_user"
svn_password "password"
W moim dostawcy aplikacji Rails dla Torquebox wdrożeń:
deploy_revision "/my/deployment/directory/#{deployment[:project]}" do
# Magically mixin the code from libraries
environment "RAILS_ENV" => node[:chef_environment]
restart_command "rake torquebox:deploy"
end
a potem oczywiście inne typy dostawców dla różnych typów aplikacji.
Czy ktoś może wskazać mi właściwy kierunek? Czy gdzieś brakuje mojej dokumentacji?
Awesome, dziękuję za napisanie. Spróbuję zrobić trochę czasu, aby ponownie odwiedzić restaurację Chef-land wkrótce i wypróbować to. –
@sethvargo tutaj odpowiedź wydaje się być w konflikcie z inną z twoich odpowiedzi na temat [rozszerzania LWRP] (http://stackoverflow.com/a/21152840/1995977), gdzie powiedziałeś, że dość trudno jest rozszerzyć LWRP. Czy możesz to wyjaśnić? Jestem bardzo zainteresowany robieniem tego z LWRP 'simple_iptables' ... –
Trudne! = Niemożliwe ... – sethvargo