Puppet: zarządzanie (wiele) Apache VirtualHosts

9

Uczę się, jak zarządzać konfiguracją w ogóle, aw szczególności za pomocą kukiełki . Przeprowadziłem już ogólne badania ( także dotyczące SF ), a teraz rozważam Apache VirtualHosts.

Prowadzimy wiele witryn LAMP (obecnie jest to w setkach) na dwóch systemach: Apache2 / mod_php i MySQL - w zasadzie odwrotnie niż inne pytanie już na SF, gdzie zarządza wieloma serwerami z kilkoma vhostami każdy (jeśli właściwie nie jeden, nie wiem). Nie stworzyłem jeszcze działającej konfiguracji w marionetce, ale nie powinno to stanowić problemu, istnieje wiele przykładów i przepisów.

Oprócz oczywistych plików konfiguracyjnych apache (tutaj chyba nie ma problemu) każdy vhost musiałby mieć utworzone katalogi i uprawnienia sprawdzone (np. Katalog główny dla każdego vhosta zawierający katalog główny, dedykowany katalog tmp, dedykowany katalog pliki sesji php, katalog, ewentualnie certyfikaty SSL itd.) na serwerze WWW oraz użytkownik + jedna lub więcej baz danych na serwerze MySQL.

Dodanie nowego vhosta wymagałoby utworzenia marionetki, usunięcie jednego wymagałoby uruchomienia przez marionetka skryptu, który wykona kopię zapasową danych użytkownika, a następnie usunie dane na żywo z dwóch serwerów, ale również każdy uruchomienie agenta marionetkowego sprawdziłby istnienie katalogi, db, uprawnienia itp.

Czy pytam o kłopoty przy przechodzeniu do setek wirtualnych hostów z tymi wszystkimi kontrolami uruchamianymi przy każdym uruchomieniu marionetki, szczególnie w systemie plików (na serwerze WWW), a zwłaszcza, gdy w przyszłości systemy będą ładowane więcej? (powiedzmy, że kierujemy reklamy na zakres 1000 ~ 2000 witryn jako rozsądne maksimum na serwer).

Czy jest jakieś doświadczenie w robieniu tego w sieci? Poszukałem go, ale nic nie znalazłem, również dlatego, że podczas wyszukiwania „marionetki” i „apache” istnieje niski stosunek sygnału do szumu ...

Luke404
źródło

Odpowiedzi:

4

Podejrzewam, że zarządzanie wieloma wirtualnymi hostami Apache nie będzie stanowiło problemu, ale nie jestem tego pewien. Dopuszczalna wydajność zależy od potrzeb biznesowych. Tylko Ty możesz zdecydować, czy jest wystarczająco szybki. Oto przyzwoity wątek na temat zmniejszania obciążenia procesora: https://groups.google.com/forum/?fromgroups#!topic/puppet-users/sxtMvCnKnys[1-25]

Podsumowując wątek:

  • Zwiększ opóźnienie między uruchomieniami agenta lalek
  • nie planuj marionetek i używaj tylko marionetek lub mcollective, aby uruchomić biegi
  • zaplanuj, aby zmiany w Apache pojawiały się tylko w określonych momentach.
  • użyj dwóch różnych środowisk (konserwacja i produkcja) do zarządzania rzeczami. Utrzymuj lekkość produkcji i używaj konserwacji do wprowadzania zmian.

Oto przykład zarządzania wirtualnym hostem Apache ze strony internetowej PuppetLabs: http://docs.puppetlabs.com/learning/definedtypes.html#an-example-apache-vhosts

Konfigurowanie i usuwanie konfiguracji nie powinno stanowić problemu. Największym problemem byłoby usunięcie plików danych dla aplikacji / witryn internetowych. W tym celu zaleciłbym współdzieloną pamięć masową, taką jak NFS / AFS. Jeśli nie korzystasz z pamięci współdzielonej, upewnij się, że dane wygenerowane przez użytkownika pozostaną nienaruszone, zostaną utworzone kopie zapasowe lub zostaną przeniesione na nowy serwer.

Podejrzewam, że znajdujesz się w sytuacji masowego hostingu, takiego jak firma hostingowa, dlatego zalecam, aby nazwy poszczególnych witryn nie były kodowane w manifestie marionetkowym. W tym celu zalecam użycie Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ . Hiera pozwala na użycie osobnego sposobu do przechowywania listy wirtualnych hostów do rzeczywistych mapowań serwerów. W Hiera możesz używać plików płaskich lub bazy danych. Niestety, nie znam Hiera na tyle, aby pomóc ci w konfiguracji wielopoziomowej struktury danych Hiera, której możesz potrzebować, ale mogę przynajmniej wskazać ci ogólny kierunek Hiera.

edgester
źródło