Jestem nowy w Puppet i chociaż korzystam z systemów * nix od wielu lat, nigdy nie pracowałem jako sysadmin ani w operacjach.
Obecnie piszę manifesty Puppet do obsługi zestawu aplikacji internetowych (PHP / MySQL / MongoDB, kod w git). Najwyraźniej Puppet musi mieć trochę wiedzy na temat rzeczywistych aplikacji, ponieważ dla każdego z nich skonfiguruję wirtualny host, ale nie jestem pewien, czy Puppet powinien zarządzać takimi rzeczami, jak wdrażanie kodu i tworzenie bazy danych.
Czy Puppet jest odpowiednim narzędziem do wdrażania aplikacji? Jeśli nie, czy możesz polecić bardziej odpowiednie narzędzie?
deployment
puppet
michaeltwofish
źródło
źródło
Odpowiedzi:
Zajrzałbym do Capistrano lub Fabric do wdrożeń ..
Dzięki tym dwóm narzędziom będziesz mieć lepszą kontrolę nad sposobem wdrażania.
źródło
Puppet jest używany do wdrażania w wielu dużych organizacjach, ale nie zawsze jest idealny. Wiele z nich zależy od metodologii wdrażania. Czy wdrażasz na wielu komputerach jednocześnie? Czy wykonujesz wdrożenia cykliczne?
Niektóre organizacje korzystają z Puppet, budując pakiety swoich wdrożeń, a następnie wprowadzając zasady wymuszające stosowanie marionetek w celu uzyskania właściwej wersji tego pakietu. Ponieważ marionetka zawiera koncepcję środowisk, możesz używać środowisk do wykonywania wdrożeń etapami (na przykład tworzenie, testowanie, prod).
Inne organizacje używają marionetki do organizowania wdrażania, odpalając rsync, git checkout lub niektóre rekurencyjne kopie plików przy użyciu marionetki (choć jest to dość powolne).
Istnieją również inne całkiem dobre narzędzia do wdrożenia. W przeszłości korzystałem z Whisky Disk (proste narzędzie do rubinów) i bardzo mi się podobało.
(Uwaga, pracuję w Puppet Labs)
źródło
Jeśli chcesz zbudować pakiet z aplikacji, możesz zajrzeć do FPM . Kod znajduje się na GitHub .
źródło
Moim zdaniem Puppet nie jest odpowiednim narzędziem do wdrażania aplikacji.
Używam Jenkinsa do budowania i wdrażania naszego kodu do testowania i przemieszczania.
Jenkins jest pierwotnie serwerem ciągłej integracji, ale jest naprawdę elastyczny i modułowy. Istnieje wiele wtyczek dla Jenkins, które mogą pomóc we wdrożeniu aplikacji:
Dla naszej aplikacji skonfigurowałem Jenkins z funkcją Publikuj przez SSH, która kopiuje pomyślnie zbudowany plik WAR na serwer docelowy, a następnie wykonuje skrypt, który wykonuje kopię zapasową i wdraża. Mam nadzieję że to pomoże!
źródło
Zdalne wykonanie + narzędzie do zarządzania konfiguracją byłoby dobre do wdrażania aplikacji. Sól jest tego dobrym przykładem .
źródło
Puppet nie jest tak naprawdę przeznaczony do wdrożenia, ponieważ gdy w grę wchodzi duża liczba plików, mogą wystąpić problemy. Możesz zajrzeć do capistrano w celu wdrożenia aplikacji.
http://rubyforge.org/projects/capistrano/
źródło