Spisu treści:

Raspberry Pi 3 "Bramble": 5 kroków
Raspberry Pi 3 "Bramble": 5 kroków

Wideo: Raspberry Pi 3 "Bramble": 5 kroków

Wideo: Raspberry Pi 3
Wideo: Assemble Bramble - Intro to Raspberry Pi-Cluster 2024, Listopad
Anonim
Raspberry Pi 3
Raspberry Pi 3

Wdrażanie serwera Apache2 na skalowalnym "bramble" Raspberry Pi3 Model B za pośrednictwem systemu równoważenia obciążenia HAProxy!

Dużo pracuję nad tworzeniem stron internetowych i dużo czytałem o konfigurowaniu geo-redundancji i równoważenia obciążenia, więc pomyślałem, że nadszedł czas, aby spróbować samemu to wszystko skonfigurować. Byłem niezadowolony z powodu awarii serwera i chciałem, aby to się nie powtórzyło w przyszłości!

Poza tym wygląda po prostu fajnie.

Krok 1: Pierwsze kroki

** AKTUALIZACJA **

**************************************************************************************************************************

Właściwie sprawiłem, że ten Instruktaż był nieco łatwiejszy. Zrefaktorowałem repozytorium na Github, aby automatycznie instalować, konfigurować i wdrażać loadbalancer HAProxy na wybranym Pi! Mniej kodu, mniej edycji, mniej szans na błąd i więcej szans na zabawę!

**************************************************************************************************************************

Przejdź do https://www.raspberrypi.org/downloads/raspbian/ i pobierz nową kopię Raspbian Stretch Lite.

Wyodrębnij plik. ZIP i zapisz plik.img na każdej karcie MicroSD dla każdego Pi w klastrze. Użytkownicy OSX, świetnym narzędziem do tego jest

Po wytrawieniu pliku.img na karcie MicroSD przejdź do karty w nowym oknie Findera lub Eksploratora plików - domyślnie powinno to mieć nazwę rozruch. Następnie utwórz nowy plik o nazwie SSH. Upewnij się, że nie wstawiasz niczego dla rozszerzenia pliku. Umożliwi to SSH na twoim Rpi3. Wyjmij kartę i umieść ją w swoim Pi. Powtórz ten krok dla pozostałych 2 Pi (lub dowolnej liczby, których ostatecznie użyjesz).

Krok 2: Konfiguracja sprzętu

Konfigurowanie sprzętu
Konfigurowanie sprzętu
Konfigurowanie sprzętu
Konfigurowanie sprzętu

W tym przykładzie założono klaster Rpi z 3 węzłami, a lista urządzeń znajduje się poniżej:

  1. 5-portowy przełącznik Ethernet x 1

      https://www.amazon.ca/gp/product/B00QR6XFHQ/ref=oh…

  2. 5-portowy zasilacz USB x 1 **

      https://www.amazon.ca/gp/product/B017R9IJTU/ref=oh…

  3. Kable Ethernet x 4

      https://www.amazon.ca/gp/product/B01J8KFTB2/ref=oh…

  4. Kable zasilające USB 2. do Micro USB B x 3

      https://www.amazon.ca/gp/product/B019U0V75W/ref=oh…

  5. Raspberry Pi3 Model B x 3

      https://www.amazon.ca/gp/product/B01CD5VC92/ref=od…

  6. Radiatory x 6

      https://www.amazon.ca/gp/product/B010ER7UN8/ref=od_aui_detailpages00?ie=UTF8&psc=1

* Ważne jest, aby używać zasilacza USB, który jest w stanie zasilić Raspberry Pi z minimalnym wymaganym napięciem roboczym

  • Podłącz kabel Ethernet x1 z routera do przełącznika Ethernet.
  • Podłącz kabel Ethernet x1 z przełącznika Ethernet do każdego z twoich Pi
  • Podłącz x1 USB-do-MicroUSB z każdego z twoich Pi do zasilacza USB.
  • Podłącz to wszystko i spójrz na mrugające światła

Chociaż nie jest to konieczne, ale chciałem, aby jeżyna wyglądała jak najfajniej i utrzymała wszystko w porządku. Postanowiłem odebrać 3 z tych skrzynek do układania w stos od Amazon. Nie uwzględniłem tego w tej instrukcji, ponieważ _technicznie_ nie jest to wymagane, ale w przypadku punktów estetycznych sugerowałbym pobranie niektórych.

www.amazon.ca/gp/product/B07BNDFXN9/ref=oh…

** Punkty bonusowe **

Zdecydowałem się na dodatkowe punkty dla nerdów i chciałem lepszego wizualnego wskazania, z którym serwerem mam interakcję. Miałem trochę zapasowej płyty prototypowej i kilka diod LED i rezystorów, więc szybko zhakowałem kilka płytek, aby położyć je na pinach GPIO pi. Idealnie użyłbym kilku żeńskich nagłówków, ale miałem tylko męskie, więc musiałem przyciąć kilka przewodów połączeniowych.

Jeśli chcesz iść tą drogą (ponieważ diody LED są niesamowite), będziesz chciał postępować zgodnie z tym samouczkiem pod adresem:

thepihut.com/blogs/raspberry-pi-tutorials/…

Krok 3: Skonfiguruj swoje Pi

Musisz znać adresy IP każdego z Pi w Twojej sieci lokalnej. Jeśli jesteś ninja CLI, powinno to być łatwe. Dla wszystkich innych możesz skorzystać z bezpłatnego skanera IP, takiego jak SuperScan (OSX). Zapisz adresy IP.

Następnie skopiuj swój klucz publiczny SSH do każdego ze swoich Pi, używając następującego polecenia z terminala:

ssh-copy-id

Przykład::

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Nie masz klucza SSH? Nie ma problemu! Po prostu biegnij:

ssh-keygen

w swoim terminalu i postępuj zgodnie z instrukcjami. Prawie jesteśmy na miejscu!

Krok 4: Zainstaluj Ansible

Jeśli dotarłeś tak daleko, gratulacje! Tylko kilka minut dzieli Cię od uruchomienia własnej rozproszonej sieci komputerowej.

Na lokalnym komputerze / laptopie będziesz chciał zainstalować Ansible z wiersza poleceń. Dla użytkowników komputerów Mac jest to:

sudo pip zainstalować ansible

Dla wszystkich innych odwiedź https://docs.ansible.com/ansible/latest/installat… dla swojego systemu operacyjnego.

Teraz będziesz chciał sklonować to repozytorium do folderu LUB pobrać plik. ZIP i rozpakować go do folderu na komputerze lokalnym.

github.com/Jtilley84/ansible-apache2-strona internetowa…

W tym repozytorium zobaczysz plik hosts.ini. Otwórz go w swoim ulubionym edytorze tekstu (lub nano lub vim):

[system równoważenia obciążenia]

pi-headnode ansible_host=192.168.0.228 # <--- Zmień to na adres IP Pi, na którym chcesz HAProxy.

[węzły]

node2 ansible_host=192.168.0.16 # <--- Zmień to na adres IP twojego drugiego Pi

node3 ansible_host=192.168.0.58 # <--- Zmień to na adres IP twojego trzeciego Pi

Otóż to! Aby uruchomić playbook, przejdź do folderu podstawowego repozytorium i wpisz w terminalu:

ansible-playbook playbook.yml

Krok 5: Gratulacje

Image
Image
Gratulacje!!
Gratulacje!!

Właśnie sprawiłeś, że magia komputerowa się wydarzyła. Gratulacje!

To tylko dowód koncepcji. W tym repozytorium Playbook wypycha unikalny plik index.html do każdego węzła, dzięki czemu można wizualnie debugować, czy działa, czy nie. W przypadku serwera produkcyjnego warto oczywiście edytować podręcznik, aby wdrożyć witrynę.

Jeśli masz jakieś pytania lub uwagi, chętnie je wysłucham! Sprawdź repozytorium Github i rozwidlej! Chętnie zobaczę, co wymyślisz.

Zalecana: