Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Puppet + Ruby DSL

Puppet + Ruby DSL

Short talk in Polish on Puppet and it's Ruby DSL

Mateusz Lenik

May 23, 2012
Tweet

More Decks by Mateusz Lenik

Other Decks in Technology

Transcript

  1. • Mateusz Lenik • @_mlen, github.com/mlen • student III roku

    Informatyki na PWr • użytkownik Ruby od 2010 • uczestnik GSoC 2012 @PuppetLabs
  2. • podstawa dla Puppet Enterprise • ponad 350 modułów +

    PuppetForge • konieczność własnego zarządzanie serwerem konfiguracji Puppet OpenSource
  3. • kod wykonywany na serwerze • deklaratywny • jawne zależności

    • template’y ERB • Puppet DSL • kod wykonywany na kliencie • deklaratywny • ukryte zależności • kiepska obsługa template’ów • CFEngine syntax Puppet vs CFEngine
  4. • kod wykonywany na serwerze • deklaratywny • jawne zależności

    • template’y ERB • Puppet DSL • kod wykonywany na kliencie • deklaratywny • ukryte zależności • template’y ERB • It’s Ruby! Puppet vs Chef
  5. • nie da się w nim zrobić wszystkiego • ograniczone

    instrukcje sterujące • specyficzna składnia “<|| ||>”
  6. class foo ($param = "value") { notice($param) } node "default"

    { class { "foo": param => "foo" } } Parametry
  7. hostclass :foo, :arguments => {"param" => AST::String.new(:value => "value")} do

    notice [scope.lookupvar("param")] end node "default" do create_resource :class, :foo, :param => "foo" end Parametry
  8. hostclass :foo, :arguments => {:param => "value"} do notice params[:param]

    end node "default" do use :foo, :param => "foo" end Parametry
  9. Q&A