Powrót do bloga

Instalacja i konfiguracja LAMP na Ubuntu 20.04 za pomocą Ansible

Instalacja i konfiguracja LAMP na Ubuntu 20.04 za pomocą Ansible

Automatyzacja serwerów to bezpieczny i niezawodny proces zarządzania serwerami i ich monitorowania w efektywny i nowoczesny sposób. W przeciwieństwie do tradycyjnego stylu zarządzania serwerami w centrach danych kontrolowanych przez dedykowany zespół ekspertów, wszystkie serwery są zarządzane za pomocą automatyzacji. W rezultacie błędy ludzkie są zminimalizowane.

Narzędzia do zarządzania konfiguracją, takie jak Ansible, Puppet, Terraform, by wymienić tylko kilka, są zazwyczaj używane do automatyzacji serwerów. Narzędzia te konfigurują serwery za pomocą automatyzacji, ustanawiając standardowe procedury dla nowych serwerów, jednocześnie eliminując potencjalne błędy występujące przy ręcznym wdrażaniu.

Ansible to solidny projekt open-source. Jest elastyczny, łatwy w użyciu i ma maksymalnie uproszczoną architekturę. Do korzystania z playbooków Ansible nie jest wymagane doświadczenie w programowaniu, nie wymaga on również instalowania oprogramowania na węzłach. Przede wszystkim jest wyposażony w doskonałe możliwości, które pozwalają na pisanie skryptów i usprawnianie automatyzacji.

W tym przewodniku przeprowadzimy Cię przez kroki instalacji i konfiguracji LAMP na Ubuntu 20.04 za pomocą Ansible.

Wymagania wstępne

Aby móc śledzić ten samouczek, będziesz potrzebować:

Jaki jest cel playbooka Ansible?

Ten playbook Ansible to alternatywny sposób na przejście przez procedurę opisaną w naszym przewodniku Konfiguracja stosu LAMP Linux Apache MySQL PHP.

Uruchomienie playbooka Ansible spowoduje wykonanie następujących działań na hostach Ansible:

  • Zainstalowanie aptitude, alternatywy dla menedżera pakietów apt preferowanej przez Ansible.

  • Zainstalowanie wszystkich niezbędnych pakietów LAMP.

  • Utworzenie nowego Apache VirtualHost i skonfigurowanie dedykowanego katalogu głównego dokumentów.

  • Włączenie WŁĄCZONE nowego VirtualHost.

  • Wyłączenie WYŁĄCZONE domyślnej strony Apache, tj. ustawienie zmiennej disable_default na true.

  • Wybór hasła dla użytkownika MySQL root.

  • Usunięcie anonimowych kont MySQL i testowej bazy danych.

  • Skonfigurowanie UFW w celu zezwolenia na ruch HTTP na skonfigurowanym porcie, gdzie domyślnym jest 80.

  • Skonfigurowanie testowego skryptu PHP.

Po zakończeniu działania playbooka Ansible zobaczysz środowisko internetowe PHP działające na serwerze Apache zgodnie z ustawionymi konfiguracjami.

Korzystanie z playbooka Ansible

Najpierw pobierz playbook LAMP i jego zależności z repozytorium do-community/ansible-playbooks. Następnie sklonuj repozytorium z playbookiem LAMP do lokalnego folderu wewnątrz węzła kontrolnego Ansible.

Uruchom polecenie git pull, aby upewnić się, że masz dostęp do odpowiedniej zawartości, której będziemy używać w tym samouczku:

Jeśli korzystasz z repozytorium do-community/ansible-playbooks po raz pierwszy, rozważ sklonowanie repozytorium do swojego folderu domowego:

Przejdź do folderu lamp_ubuntu2004 i zobaczysz strukturę:

Oto przegląd tego, co oznaczają te pliki:

  • files/info.php.j2: To jest plik szablonu, w którym można skonfigurować testową stronę PHP w katalogu głównym serwera WWW.

  • files/apache.conf.j2: Kolejny plik szablonu używany do konfiguracji Apache VirtualHost.

  • vars/default.yml: Jest to plik zmiennych służący do dostosowywania ustawień playbooka.

  • playbook.yml: Ten plik zawiera całą zawartość zadań do wykonania na zdalnym serwerze (lub serwerach).

  • readme.md: Plik zawierający informacje o tym playbooku.

Dostosujmy konfigurację MySQL i Apache, wprowadzając zmiany w pliku zmiennych playbooka. Przejdź do katalogu lamp_ubuntu2004 i otwórz plik vars/default.yml za pomocą nano edytora:

Po otwarciu pliku vars/default.yml, zobaczysz listę zmiennych, które należy zmodyfikować:

Przyjrzyjmy się szczegółowo każdej ze zmiennych:

  • mysql_root_password: Przechowuje hasło dla konta root MySQL.

  • app_user: Jest to zdalny użytkownik niebędący rootem na hoście Ansible, który działa jako właściciel plików aplikacji.

  • http_host: Wyświetla Twoją nazwę domeny.

  • http_conf: Wyświetla nazwę pliku konfiguracyjnego utworzonego w Apache.

  • http_port: To port HTTP dla tego wirtualnego hosta, a 80 jest domyślny.

  • disable_default: Służy do cofania domyślnych opcji dostarczanych z Apache.

Następnie zapisz i zamknij plik vars/default.yml.

Po zakończeniu konfiguracji jesteśmy gotowi do uruchomienia tego playbooka na serwerach. Domyślnie większość serwerów w playbookach jest skonfigurowana do uruchamiania na każdym serwerze w plikach inventories. Użyjmy flagi -l, aby wpłynąć tylko na pojedynczy serwer lub wybrany podzbiór grup, na które wpływa playbook. Alternatywnie możemy użyć flagi -u, aby uzyskać szczegółowy widok tego, który zdalny serwer jest podłączany i wykonuje zadania na zdalnych hostach.

Uruchommy playbook na jednym serwerze server1 i połączmy go z jednym użytkownikiem jako justin:

Otrzymasz dane wyjściowe podobne do tych:

Gdy zobaczysz, że działanie playbooka dobiegło końca, przejdź do przeglądarki internetowej i uzyskaj dostęp do hosta serwera. Nie zapomnij dodać /info.php na końcu adresu IP:

Po kliknięciu w ten adres URL zobaczysz stronę taką jak ta:

Ostrzeżenie: Wyświetlona strona zawiera poufne informacje o Twoim środowisku PHP. Dlatego zaleca się usunięcie swoich informacji z serwera za pomocą następującego polecenia:

rm -f /var/www/info.php

Co znajduje się w Playbooku?

Następnie zrozummy znaczenie i istotę plików używanych w ansible-playbook zawartości:

  • vars/default.yml

Plik default.yml ze zmiennymi zawiera nazwę domeny i hasło do konta MySQL root . Są to domyślne wartości używane w ansible-playbook zadaniach:

  • files/apache.conf.j2

Plik apache.conf.j2 to plik szablonu Jinja 2 służący do konfiguracji nowego wirtualnego hosta Apache (VirtualHost). Zmienne użyte w tym szablonie muszą być zdefiniowane w pliku zmiennych vars/default.yml :

  • files/info.php.j2

Podobnie jak files/apache.conf.j2, plik info.php.j2 jest również szablonem Jinja. Używamy tego pliku do skonfigurowania testowego skryptu PHP w katalogu głównym dokumentów nowo skonfigurowanego serwera LAMP:

  • playbook.yml

Plik playbook.yml definiuje wszystkie zadania z tej konfiguracji. W tym pliku konfigurowane są wszystkie stosy LAMP. Zaczyna się od zdefiniowania grupy serwerów docelowych, która jest ustawiona na all. Przyjmuje również wartość become jako true ( become: true), i definiuje wszystkie zadania, które muszą zostać wykonane. Następnie plik yaml zawiera plik domyślny, którym jest plik zmiennych vars/default.yml , służący do ładowania opcji konfiguracyjnych:

Możesz modyfikować te pliki w zależności od potrzeb i wymagań swojego projektu.

Podsumowanie

W tym samouczku przeszliśmy przez kroki instalacji i konfiguracji LAMP na zdalnym serwerze za pomocą Ansible. Istnieje wiele innych opcji dostosowywania, z którymi możesz eksperymentować. Na przykład, korzystając z oficjalnej dokumentacji Ansible i wykorzystując przypadki użycia mysql_user z modułu Ansible to doskonały sposób na wejście na wyższy poziom. Ponadto postępuj zgodnie z krokami omówionymi w tym przewodniku, aby ćwiczyć automatyzację przy użyciu innych narzędzi do zarządzania konfiguracją i systemów operacyjnych, aby zwiększyć poziom trudności.

Czy jesteś nowym użytkownikiem stosu LAMP i chcesz zgłębić ten temat? Zapoznaj się z poniższymi samouczkami na naszym blogu:

Miłego korzystania z komputera!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.