Najlepsza praktyka testowania przepisów kulinarnych?

18

Mój zespół stworzył wiele książek kucharskich. Zastanawiałem się, jakie metody i struktury powinienem sprawdzić, abyśmy mogli zacząć tworzyć testy, aby upewnić się, że nasze węzły są poprawnie skonfigurowane?

linusthe3rd
źródło
Wygląda na to, że należy do gotowania.se;)
Mark Henderson
Przez chwilę myślałem, że mówisz o szefie kuchni: en.wikipedia.org/wiki/Chef_%28programming_language%29
Janne Pikkarainen

Odpowiedzi:

7

Możesz (również) poszukać w tym Vagrant . Wideo pokazuje, jak korzystać z combo Vagrant i Chef kucharskich. I jest strona poświęcona Vagrant i Chef na stronie Opscode (aktualizacja 2015-01-23: strona już nie ma ...).

Henk
źródło
3

Jest cucumber-chefrubinowy klejnot i niedawno wydana książka Nelson-Smith i in. - „Test-Driven Infrastructure with Chef”, która korzysta z tego klejnotu - http://www.cucumber-chef.org/

Właśnie to zapamiętałem z mojej listy obserwacyjnej github: https://github.com/gregretkowski/vmth/

VMTH (Virtual Machine Test Harness) zapewnia mechanizm do testowania jednostkowego automatyzacji infrastruktury - zasady marionetek, przepisy kulinarne, skrypty wdrażania wydań itp. Wykorzystuje funkcje nowoczesnych monitorów VM (takich jak qemu) do wykonywania migawek stanu systemu, a następnie resetowania stan ten po każdym teście, dzięki czemu można szybko wykonać serię testów na instancji maszyny wirtualnej

pfo
źródło
1

Niektóre odpowiedzi tutaj wydają się nieco stare. W przypadku testów CI i testów lokalnych chciałbym wykorzystać narzędzie do testowania uprzęży, takie jak Test Kitchen, które obsługuje również Vagrant, jeśli już go używasz.

Umożliwi ci uruchamianie swoich koobkoków w stosunku do wielu dostępnych obecnie rozwiązań chmurowych i wirtualizacyjnych: EC2, Digital Ocean, Vagrant, Docker itp.

Posiada również wtyczki, które pozwalają na uruchomienie jednego z wielu narzędzi testowania infrastruktury, które istnieją obecnie:

  • serverpec - Najpopularniejsze środowisko testowe.
  • goss - YAML, prosty, samodzielny plik binarny, niezwykle szybki.
  • inspec - pomyśl o tym jak o ulepszeniu serverpec (napisane przez szefów kuchni).
  • testinfra - platforma testowania serwera oparta na języku Python.
Ahmed Elsabbahy
źródło
0

Z mojego doświadczenia wynika, że ​​jedynym sposobem, aby to naprawdę zrobić, jest środowisko przejściowe i ostrożne praktyki programistyczne. Wyśmiewanie faktycznej pracy, którą należy wykonać, jest niezwykle nieuporządkowane i kruche, a zestawy testowe CI działające przy zatwierdzaniu lub wypychaniu wymagają dużo wysiłku, aby pisać i utrzymywać (chociaż szef kuchni jest prawdopodobnie o wiele lepszy od Puppet, co jest moim głównym doświadczeniem ) i poświęcić absurdalnie dużo czasu na bieganie.

EDYTOWAĆ

Zaraz po tym, jak to napisałem, nagle zdałem sobie sprawę, że może istnieć sposób na racjonalnie skuteczne „testowanie jednostkowe” przepisów Chef / Puppet z systemem plików Unii i znaczną ilością rusztowań. Nie mogę jednak znaleźć niczego, co ktoś zrobiłby już w tej dziedzinie. Mógłbym właśnie znaleźć projekt.

womble
źródło
Testowanie samej infrastruktury jest niezwykle ważne. Oczywiście istnieje wiele metodologii, tj. Funkcjonalnych i niefunkcjonalnych, niezbędnych do wdrożenia tego nieco inaczej niż metodologii oprogramowania.