Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Chef to narzędzie do zarządzania konfiguracją, które automatyzuje wdrażanie aplikacji i infrastruktury oraz zarządzanie nimi. Używa języka specyficznego dla domeny (DSL) do pisania konfiguracji systemu "przepisy". Te przepisy są przechowywane w "książkach kucharskich", które mogą być udostępniane i ponownie używane w różnych systemach.
Każda specyfikacja typu cluster-init może odwoływać się do co najmniej jednej roli chef i/lub przepisów książki kucharskiej , które należy wykonać na rozruchowej maszynie wirtualnej.
Uwaga / Notatka
Usługa CycleCloud używa programu Chef w trybie autonomicznym, który nie opiera się na scentralizowanym serwerze Chef. Zestaw książek kucharskich programu Chef potrzebnych do przygotowania każdej maszyny wirtualnej jest pobierany z konta usługi Azure Storage wraz z pozostałymi plikami w projekcie.
Struktura projektu
Katalog specyfikacje w projekcie może również zawierać podkatalog chef. Ten katalog zawiera trzy katalogi: site-cookbooks (dla definicji cookbooków), data_bags (definicje data bagów) i role (pliki definicji ról programu Chef).
myproject
├── specs
│ ├── default
│ └── chef
│ ├── site-cookbooks
│ ├── data_bags
│ └── roles
Listy uruchomień programu Chef
Możesz określić run_list na poziomie projektu lub specyfikacji w project.ini:
[spec scheduler]
run_list = role[a], recipe[b]
Gdy węzeł zawiera specyfikację scheduler , definiowana run_list automatycznie dołącza się do wszystkich wcześniej zdefiniowanych run_list. Jeśli na przykład run_list w obszarze [configuration] to run_list = recipe[test], to ostateczny run_list to run_list = recipe[cyclecloud], recipe[test], role[a], recipe[b], recipe[cluster_init].
Można również zastąpić run_list na poziomie specyfikacji w węźle. To zastąpienie run_list usuwa wszystkie run_list uwzględnione w project.ini. Możesz na przykład zmienić definicję węzła na następującą definicję:
[cluster-init test-project:scheduler:1.0.0]
run_list = recipe[different-test]
Użycie tej run_list powoduje zignorowanie run_list zdefiniowanych w projekcie. Końcowa lista uruchomień na węźle staje się run_list = recipe[cyclecloud], recipe[test], recipe[different-test], recipe[cluster_init].
Niestandardowe specyfikacje Chef i komponowalne specyfikacje
Każda specyfikacja może zawierać katalog chef . Przed połączeniem węzła proces rozpakuje i wyodrębnia każdy plik specyfikacji do lokalnego katalogu chef-repo, zastępując wszystkie istniejące cookbooki, role i worki danych pasującymi nazwami. Proces jest zgodny z kolejnością definiowania specyfikacji, więc ostatnia zdefiniowana specyfikacja wygrywa, jeśli występuje konflikt nazewnictwa.
Lokalizacje plików
Po przesłaniu zawartości projektu, usługa CycleCloud kompresuje trzy niestandardowe katalogi Chef i synchronizuje je z docelowym miejscem przechowywania pod adresem (locker)/projects/(project)/(version)/(spec_name)/chef.
Węzeł pobiera spakowane pliki Chef podczas fazy bootstrappingu w trakcie uruchamiania węzła. Węzeł pobiera pliki do $JETPACK_HOME/system/chef/tarballs*, rozpakowuje je do $JETPACK_HOME/system/chef/chef-repo/ i używa ich, aby połączyć węzeł.
Uwaga / Notatka
Aby uruchomić niestandardowe książki kucharskie, należy dodać je do „run_list” dla węzła.
Dostawca zasobów do pobierania Jetpack
W poniższym przykładzie pokazano, jak utworzyć uproszczonego dostawcę jetpack_download zasobów dla użytkowników programu Chef:
jetpack_download "big-file1.tgz" do
project "my-project"
end
W programie Chef domyślną lokalizacją pobierania jest #{node[:jetpack][:downloads]}. Aby zmienić miejsce docelowe pliku, użyj następującego kodu:
jetpack_download "foo.tgz" do
project "my-project"
dest "/tmp/download.tgz"
end
Jeśli używasz polecenia w programie Chef, musisz określić projekt.