Nota prawna: Jestem jednym z twórców lalek.
Spowoduje to wykonanie go w spójnej, ale nieprzewidywalnej kolejności, z wyjątkiem wyraźnych lub niejawnych zależności w kodzie. Jawne zależności są określane za pomocą metaparametrów subscribe
lub require
. Niejawne zależności pochodzą z funkcji autorequire , która robi takie rzeczy, jak automatycznie stosuje zasoby plików w rozsądnej kolejności.
Powodem tego nie jest to, że język jest deklaratywny, ale język jest deklaratywny, ponieważ porządek nie ma znaczenia dla większości rzeczy leżących u podstaw problemu.
Na przykład, nie ma większego związku między zarządzaniem ssh a zarządzaniem postfixem dla większości ludzi - można wykonać pracę w dowolnej kolejności, a nawet w tym samym czasie, a wszystko będzie działać tak samo.
To uwalnia nas do ulepszania rzeczy na wiele sposobów, że "wszystko jest w porządku liniowym". Pracujemy, na przykład, nad zbiorami instalacji pakietów, zachowując jednocześnie wyraźne zależności poza pakietami.
Tak więc kolejność wykonania i zależności są zgodne z podstawowym problemem, a my zachowaliśmy tę właściwość, aby móc robić bardziej niesamowite rzeczy.
Cel jest dokładnie taki, jak mówisz na końcu: że deklarujesz to, co chcesz, a my zajmiemy się wszystkimi szczegółami, aby go uzyskać. Z czasem mamy nadzieję, że będziemy znacznie mądrzejsi w kwestii zależności logicznych, więc musisz powiedzieć jeszcze mniej, aby to osiągnąć.
Czy możesz określić, co jest * spójnym, ale nieprzewidywalnym zamówieniem *? Mamy wiele problemów, gdy Puppet 2.6 po prostu ponownie zamawia kroki i z powodu pewnych brakujących zależności się nie powiedzie. To jest niewykonalne. Czy mogę wymusić jakieś przetasowanie, abyśmy mogli przetestować to poprawnie? Słyszałem też, że nowa wersja nadaje mu stałe zamówienie. – lzap
Tak, na przykład, mam pakiet do zainstalowania, który zależy od istniejącego repozytorium w yum.repos.d. Jak mogę wymusić zainstalowanie repozytorium, zanim spróbuje zainstalować pakiet? – Mojo