Powrót do bloga

Instalacja i konfiguracja Ansible na Ubuntu 20.04

Instalacja i konfiguracja Ansible na Ubuntu 20.04

Jeśli jesteś administratorem systemu, ważne jest, abyś miał spójny sposób zarządzania wszystkimi serwerami i komputerami, których używasz. Systemy zarządzania konfiguracją mogą w znacznym stopniu usprawnić ten proces. Wydajnie zarządzają wszystkimi systemami z centralnej lokalizacji.

W systemie Linux dostępnych jest wiele systemów zarządzania konfiguracją. Na przykład Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine, itp. Podczas gdy narzędzia takie jak Puppet i Chef bywają bardziej złożone i zaawansowane, Ansible oferuje prostotę i łatwość użycia. Nie musisz instalować żadnego dodatkowego oprogramowania klienckiego na węzłach, aby Ansible działał. Zamiast tego Ansible używa SSH do zarządzania i automatyzacji systemów. Ansible to oprogramowanie typu open-source. Jest również wysoce skalowalne, spójne i niezawodne.

Ten przewodnik pokazuje, jak zainstalować i skonfigurować Ansible na Ubuntu 20.04.

Ansible na Ubuntu

Ansible może realizować trzy rodzaje automatyzacji:

  • Provisioning: Umożliwia tworzenie różnych serwerów zgodnie z potrzebami infrastruktury.

  • Zarządzanie konfiguracją: Może wykonywać różne zmiany konfiguracji serwerów. Na przykład uruchamianie i zatrzymywanie usług, instalowanie aplikacji i aktualizacji, wdrażanie polityk bezpieczeństwa itp.

  • Wdrażanie aplikacji: Ułatwia pracę DevOps dzięki automatycznemu wdrażaniu wewnętrznie opracowanych aplikacji do systemu produkcyjnego.

Ansible może działać idealnie w niemal każdym środowisku IT – niezależnie od tego, czy są to serwery hostowane, czy tradycyjne, platformy wirtualizacji, czy też chmura. Obsługuje również zarządzanie różnymi systemami, takimi jak bazy danych, sieci, zapory sieciowe, urządzenia pamięci masowej i wieloma innymi. CloudSigma również wspiera Ansible w naszej infrastrukturze chmurowej.

Wymagania wstępne

Do tego przewodnika potrzebujemy kilku maszyn:

  • Węzeł kontrolny: Węzeł kontrolny to centralny węzeł, który łączy się ze wszystkimi węzłami hosta, zleca zadania i zarządza różnymi aspektami systemu. Węzłem kontrolnym może być cokolwiek – maszyna lokalna lub serwer zdalny.

  • Węzeł hosta: Hosty Ansible to maszyny, które węzeł kontrolny Ansible może automatyzować.

Jak sugeruje tytuł przewodnika, oczekuje się, że wszystkie te maszyny będą skonfigurowane z systemem Ubuntu 20.04 z najnowszymi pakietami. Oto krótki przewodnik dotyczący konfiguracji serwera Ubuntu. Ponieważ Ansible używa SSH do łączenia się z maszynami, wszystkie węzły hosta muszą mieć odpowiednio skonfigurowane klucze SSH z węzłem kontrolnym. Upewnij się, że wszystkie węzły hosta mają publiczny klucz SSH węzła kontrolnego dodany do pliku authentication_keys. Postępuj zgodnie z naszym samouczkiem, aby dowiedzieć się, jak generować i dodawać klucze SSH do serwerów Linux.

Krok 1: Instalacja Ansible

W przypadku Ubuntu nie ma potrzeby dodatkowej konfiguracji pakietów ani repozytoriów. Ansible jest bezpośrednio dostępny z oficjalnych serwerów pakietów Ubuntu. Wykonywanie jakichkolwiek zmian na poziomie systemu wymaga dostępu administracyjnego – użytkownika root lub użytkownika innego niż root z uprawnieniami sudo. Plik sudoers zarządza uprawnieniami sudo dla użytkowników i grup.

Najpierw zainstalujemy Ansible na komputerze, który będzie służył jako węzeł kontrolny. Aby zainstalować Ansible na węźle kontrolnym, uruchom następujące polecenia:

Control apt update

Install ansible

Jeśli zamierzasz używać hasła jako mechanizmu uwierzytelniania SSH, musisz mieć zainstalowany pakiet sshpass zainstalowany:

Install sshpass

Krok 2: Konfiguracja pliku Inventory

W Ansible plik inventory zawiera informacje o wszystkich hostach, którymi będzie zarządzać Ansible. Mogą to być dziesiątki lub setki serwerów zarejestrowanych w pliku inventory. Serwery można również podzielić na grupy i podgrupy. Ogólnie rzecz biorąc, plik inventory służy do definiowania zmiennych, które będą ważne tylko dla określonych hostów lub grup. Jest to przydatna technika przy pisaniu playbooków i szablonów. Niektóre zmienne mogą również wpływać na sposób uruchamiania playbooka.

Ansible jest dostarczany z domyślnym plikiem inventory. Najpierw otwórz ten plik w edytorze tekstu:

Ansible hosts file

Domyślnie plik inventory zawiera różne przykłady referencyjne. Oto przykład z grupą o nazwie servers zawierającą trzy różne serwery. Zmienna ansible_python_interpreter definiuje interpreter Pythona dla wszystkich hostów uwzględnionych w pliku inventory. Za pomocą dyrektywy ansible_user, możemy zadeklarować konto użytkownika, z którym połączy się Ansible:

Ansible hosts file updated

Następnie zapisz plik i zamknij edytor. Aby sprawdzić plik inventory, uruchom następujące polecenie:

Dane wyjściowe powinny wyglądać mniej więcej tak:

Ansible inventory list

Krok 3: Testowanie połączenia

Po skonfigurowaniu pliku inventory musimy przetestować, czy Ansible może połączyć się z tymi serwerami przez SSH. Możemy to zrobić, po prostu pingując wszystkie węzły hostów. Z węzła kontrolnego węzła, spinguj wszystkie węzły hostów:

Moduł ping sprawdza następujące rzeczy:

  • Dostępność hosta

  • Ważność poświadczeń SSH

  • Czy hosty mogą uruchamiać moduły Ansible przy użyciu Pythona

Dane wyjściowe powinny wyglądać mniej więcej tak:

Ansible ping all

Jeśli odpowiedź z konkretnego węzła to pong, oznacza to, że węzeł jest gotowy do uruchamiania poleceń i playbooków Ansible na serwerze.

Krok 4: Uruchamianie poleceń ad-hoc

To jest krok opcjonalny. Może być jednak przydatny do weryfikacji pełnej funkcjonalności Ansible na zdalnych serwerach. Ta sekcja może również służyć jako podstawowe wprowadzenie do dodatkowego użycia i konfiguracji Ansible. Po potwierdzeniu łączności z węzłami możemy zacząć uruchamiać polecenia ad-hoc i playbooki. Każde polecenie, które normalnie uruchomiłbyś na zdalnych serwerach, można uruchomić za pomocą Ansible na wszystkich serwerach.

Uruchom poniższe polecenie. Sprawdzi ono użycie dysku na wszystkich węzłach jednocześnie:

Ansible all df cmd

Możemy również wykonywać różne moduły Ansible za pomocą funkcji poleceń ad-hoc, tak jak wykonaliśmy ping do testów. Na przykład moduł apt współpracuje z menedżerem pakietów APT w systemie Ubuntu. Może zarządzać pakietami na zdalnym węźle Ubuntu. Pamiętaj, że wymaga to uprawnień roota do wprowadzania zmian na poziomie systemu. Zdalny węzeł musi zezwalać na logowanie jako root lub użytkownik musi mieć uprawnienia do wykonywania zadań administracyjnych.

W poniższym przykładzie Ansible instaluje Nginx na wszystkich węzłach hostów:

A co z uruchamianiem poleceń tylko na jednym serwerze? Użyjemy nazwy serwera (przypisanej w pliku inventory), aby go określić:

Adhoc cmd df selected host

Możemy również określić wiele serwerów. Zadeklaruj nazwę każdego serwera docelowego, używając dwukropka jako separatora:

Adhoc cmd df multiple hosts

Podsumowanie

W tym poradniku pokazaliśmy krok po kroku, jak zainstalować Ansible i skonfigurować plik inventory do uruchamiania poleceń ad-hoc z węzła kontrolnego Ansible. Po skonfigurowaniu węzeł kontrolny może wykonać dowolne polecenie lub playbook, który chcesz uruchomić na hostach.

Miłego korzystania!

author

Pranay Kapgate

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.