Jak zautomatyzować jednoczesne wdrażania WordPress w wielu serwerach Linux za pomocą ansible - część 3

Jak zautomatyzować jednoczesne wdrażania WordPress w wielu serwerach Linux za pomocą ansible - część 3

W poprzednich dwóch artykułach tego Ansible Seria, wyjaśniliśmy, jak zainstalować i skonfigurować Ansible Aby uruchomić polecenia i wykonywać złożone zadania na kilku zdalnych serwerach jednocześnie.

Zautomatyzuj wiele instalacji WordPress za pomocą ansible - część 3

W obecnym samouczku wyjaśnimy, jak skonfigurować WordPress Na tych samych zdalnych serwerach:

Node1: 192.168.0.29 Node2: 192.168.0.30 

gdzie zainstalowaliśmy, włączyliśmy i zaczęliśmy Apache (prawdopodobnie wiesz, dlaczego zdecydowaliśmy się pracować z serwerem WWW jako początkowy przykład w ostatnim samouczku).

Gorąco zachęcam do czytania Część 1 I Część 2 Przed kontynuowaniem, aby upewnić się, że znasz koncepcje związane z Ansible.

Jak zainstalować i skonfigurować narzędzie automatyzacji „Ansible” do zarządzania IT - Część 1

Jak używać anizble podręczników do automatyzacji złożonych zadań na wielu zdalnych serwerach - Część 2

Krok 1: Wprowadzenie ról Ansible

Gdy zaczniesz dodawać coraz więcej zadań do sztuk, twój Podręczniki może stać się coraz trudniej. Z tego powodu zalecanym podejściem w takich sytuacjach (w rzeczywistości we wszystkich przypadkach) jest użycie struktury katalogu, która zawiera dyrektywy dla każdej grupy zadań w różnych plikach.

To podejście pozwala nam ponownie wykorzystać te pliki konfiguracyjne w osobnych projektach dalej. Każdy z tych plików definiuje to, co się nazywa w Ansible Ecosystem rola.

W naszym przypadku stworzymy dwie role. Jeden z nich (nazywany zależności WP) będzie używany do instalacji zależności WordPress (Php I Mariadb - Nie trzeba instalować Apache Jak już jest zainstalowane).

Druga rola (nazwana WP-install-config) obejmie wszystkie niezbędne zadania związane z instalacją i konfiguracją WordPress.

Krok 2: Tworzenie ról Ansible

Ansible jest wyposażony w narzędzie o nazwie Ansible-Galaxy Pomoże nam to stworzyć strukturę katalogu dla naszych ról. Zrobimy to w /itp./ansible/podręczniki (W którym stworzyliśmy Część 2) Ale teoretycznie możesz skonfigurować go w innym katalogu, jeśli chcesz.

# cd/etc/ansible/podręczniki # ansible-galaksy init intpendencje # ansible-galaxy init wp-install-config 
Ansible: Twórz role WordPress

Następnie potwierdza nowo utworzone role.

# ls -r/etc/ansible/podręczniki 
Ansible: potwierdź strukturę katalogu WordPress

Na powyższym obrazie możemy to zobaczyć Ansible-Galaxy stworzył dwa katalogi o tej samej nazwie, co nasze role i inne subkredyty (domyślne, akta, Handlery, Meta, zadania, szablony, I vars) i Readme.MD Plik w każdym z nich.

Ponadto nazwany plik YAML główny.yml został utworzony we wszystkich wcześniej wymienionych katalogach, z wyjątkiem plików i szablonów.

Zaczniemy od edytowania następujących plików konfiguracyjnych, jak wskazano:

1. /etc/ansible/podręczniki/WP-zależności/zadania/główne.yml. Zauważ, że włączamy httpd na wypadek, gdybyś nie śledził poprzednich samouczków tej serii.

główny.yml
--- # Plik zadań dla WP -zależności - Nazwa: Aktualizacja pakietów (jest to równoważne z aktualizacją Yum -y) : - httpd - mariadb -server - mariadb - php - php -mysql - mysql -python - Nazwa: Upewnij się, że mariadb jest uruchomiony (i włącz go w rozruchu) Service: name = mariadb stan = uruchomion.Mój.CNF do węzłów Kopia: src =/root/.Mój.cnf dest =/root/.Mój.cnf - Nazwa: Utwórz bazę danych mariadb mysql_db: name = wp_mysql_db state = Present - Nazwa: Utwórz nazwa użytkownika i hasło mysql_user: login_user = root login_password = yourMariadPashewreWhere Nazwa =*.*:WSZYSTKO 

2. /etc/ansible/podręczniki/WP-zależności/domyślne/główne.yml

główny.yml
--- # domyślnie plik dla WP-zaległości WP_MYSQL_DB: MYWP WP_MYSQL_USER: WPUSER WP_MYSQL_PASSWORD: WPP4SS 

3. /etc/ansible/podręczniki/WP-install-config/zadania/main.yml:

główny.yml
--- # Plik zadań dla WP -Install -Config -Nazwa: Utwórz katalog do pobrania Polecenie WordPress: mkdir -p/opt/source/surdepress -Nazwa: Pobierz WordPress get_url: url = https: // www.WordPress.org/najnowszy.smoła.GZ dest =/opt/source/WordPress/WordPress.smoła.GZ VALIDATE_CERTS = Nie - Nazwa: Wyodrębnij polecenie WordPress: „TAR XZF/Opt/Source/WordPress/WordPress.smoła.GZ -C/var/www/html--Strip-Components 1 "-Nazwa: Wyślij kopię pliku konfiguracyjnego: src =/root/wp-config-sample.php dest =/var/www/html/wp-config.Tryb PHP = 0644 

4. wp-config-próba.php (podane w tej pastebinie) w następujący sposób i zapisz go na swoim komputerze kontrolera Ansible (jak widać w ostatniej dyrektywie kopii powyżej, pobrałem go do katalogu domowego superuseru (/root/wp-config-próba.php).

Ważny: Należy pamiętać, że wartość dla zmiennych Db_name, Db_user, I Db_password są takie same jak w /etc/ansible/podręczniki/WP-zależności/domyślne/główne.yml:

wp-config-próba.php
… / ** Nazwa bazy danych dla WordPress* / define („db_name”, „myWp”); / ** nazwa użytkownika bazy danych mysql*/ define („db_user”, 'wpuser'); / ** hasło bazy danych mysql*/ definiuj („db_password”, „wpp4ss”);… 

5. W przypadku nowych instalacji serwera bazy danych, w których hasło root jest puste Mysql_Secure_Instalation.

O ile mi wiadomo, nie ma dostępnego obejścia, które pozwoli ci skonfigurować hasło rootowe przez Ansible W tym samym kroku, w którym tworzysz konto administracyjnego bazy danych dla WordPress.

Upewnij się, że używasz tego samego hasła we wszystkich hostach, a następnie skopiuj poświadczenia w /źródło/.Mój.CNF (Rzeczywista lokalizacja może się różnić w twoim przypadku, ale we wszystkich przypadkach musi dopasować wartość src parametr zadania Kopiuj ~/.Mój.CNF do węzłów /etc/ansible/podręczniki/WP-zależności/zadania/główne.yml).

W tym pliku (patrz wyżej) założyliśmy, że hasło dla root jest YourmariadbrootPassword.

Hasło ansible bazy danych

6. Następnie nasz podręcznik (/etc/ansible/podręczniki/podręcznik.yml) będzie wyglądać znacznie bardziej zorganizowanymi i prosto w porównaniu z poprzednim samouczkiem:

# Cat Playbook.yml 
Ansible WordPress Playbooks
- Gospodarze: WebServers Role:-WP-zależności-WP-install-config 

Wreszcie nadszedł czas, aby uruchomić te zadania, wywołując nasz podręcznik:

# Ansible-Playbook Playbook.yml 

Teraz sprawdźmy, czy możemy uzyskać dostęp do strony administratora WordPress za pomocą adresów IP Node1 192.168.0.29 I Node2 192.168.0.30:

Ansible WordPress instalacja

Możesz wyświetlić dwa ostatnie kroki w następującym screencast:

Jak widać, możesz skonfigurować wiele instalacji WordPress z niewielkim lub żadnym wysiłkiem, używając Ansible. Następnie możesz użyć odpowiedniego Admin Interfejs użytkownika do konfiguracji każdej witryny osobno.

Ostateczne rozważania

Jeśli używasz innego dystrybucji do wdrożenia WordPress, Nazwa pakietów może się różnić, ale sprowadza się to do instalacji serwera WWW Apache, serwera bazy danych Mariadb i modułu Python MySQL. W takim przypadku użyj systemu zarządzania oprogramowaniem dystrybucji, aby wyszukać dokładną nazwę pakietu, którą musisz zainstalować.

Streszczenie

W tej serii wyjaśniliśmy, jak używać Ansible Aby uruchomić polecenia i wykonywać złożone zadania w kilku maszynach Linux jednocześnie.

Jednym z takich przykładów jest konfiguracja WordPress, Jak omówiliśmy w tym przewodniku. Niezależnie od tego, czy jesteś administratorem systemu, czy blogerem, mam nadzieję, że znalazłeś koncepcje i przykłady w tym samouczku.

Powodzenia i nie wahaj się zrzucić nam linii, jeśli potrzebujesz pomocy lub masz jakieś komentarze lub sugestie!