Jak zautomatyzować początkową konfigurację serwera wielu serwerów Ubuntu 22.04 za pomocą Ansible

Photo of author

By maciekx


Automatyzacja wstępnej konfiguracji serwerów Ubuntu 22.04 za pomocą Ansible

Wprowadzenie

Zarządzanie wieloma serwerami bywa skomplikowane i narażone na pomyłki, szczególnie gdy identyczne czynności konfiguracyjne trzeba powtarzać na każdym z nich. Ansible, platforma do automatyzacji konfiguracji, proponuje efektywne i jednolite podejście do automatyzacji początkowej konfiguracji serwera. Dysponuje on szerokim wachlarzem modułów umożliwiających wykonywanie różnorodnych zadań administracyjnych, w tym instalację oprogramowania, zarządzanie użytkownikami oraz konfigurację sieci.

W tym artykule zaprezentujemy wyczerpującą instrukcję, krok po kroku, jak zautomatyzować wstępną konfigurację szeregu serwerów Ubuntu 22.04 z wykorzystaniem Ansible. Pokażemy proces instalacji i konfiguracji Ansible, tworzenie playbooków Ansible do przeprowadzania rozmaitych zadań konfiguracyjnych, a także uruchamianie tych playbooków w celu automatyzacji konfiguracji serwerów.

Instalacja i konfiguracja Ansible

Zainstaluj Ansible na serwerze zarządzającym

  • Upewnij się, że Twój serwer zarządzający jest oparty na systemie Ubuntu 22.04.
  • Zainstaluj Ansible, wykorzystując poniższe polecenie:
          sudo apt update
    sudo apt install ansible
        

Skonfiguruj pliki konfiguracyjne Ansible

  • Stwórz katalog na pliki konfiguracyjne Ansible (/etc/ansible/):
          sudo mkdir /etc/ansible
         
  • Utwórz plik ansible.cfg w katalogu konfiguracji:
          sudo nano /etc/ansible/ansible.cfg
        
  • Dodaj następujące ustawienia do pliku ansible.cfg:
              
    [defaults]
    inventory = /etc/ansible/hosts
             
           

Utwórz plik inwentarza

  • Stwórz plik inwentarza (/etc/ansible/hosts), który będzie zawierał listę serwerów, którymi chcesz zarządzać:
          sudo nano /etc/ansible/hosts
        
  • Dodaj wpisy dla każdego serwera w formacie:
              
    [serwery_grupy]
    serwer1.twojadomena.com
    serwer2.twojadomena.com
             
          

Konfigurowanie playbooków Ansible

Podstawowa struktura playbooka

  • Playbooki Ansible to pliki YAML, które definiują operacje do wykonania na serwerach docelowych.
  • Podstawowa struktura playbooka wygląda następująco:
              
    ---
    - hosts: nazwa_grupy
      tasks:
        - name: nazwa_zadania
          moduł: nazwa_modułu_ansible
          argumenty: ...
             
          

Instalacja pakietów

  • Utwórz playbook o nazwie install-packages.yml:
          nano install-packages.yml
          
  • Wklej poniższą treść do playbooka:
              
    ---
    - hosts: serwery
      tasks:
        - name: Zainstaluj serwer Apache
          apt:
            name: apache2
            state: present
             
            

Tworzenie użytkowników

  • Utwórz playbook o nazwie create-users.yml:
             nano create-users.yml
          
  • Wpisz poniższą treść w playbooku:
              
    ---
    - hosts: serwery
      tasks:
        - name: Utwórz użytkownika "użytkownik"
          user:
            name: użytkownik
            password: zhaszowane_hasło
             
             

Konfiguracja usług sieciowych

  • Utwórz playbook o nazwie configure-services.yml:
               nano configure-services.yml
             
  • Umieść w playbooku następującą treść:
              
    ---
    - hosts: serwery
      tasks:
        - name: Aktywuj i uruchom usługę SSH
          service:
            name: ssh
            state: started
            enabled: yes
             
             

Uruchamianie playbooków Ansible

Uruchom playbook

  • Aby uruchomić playbook, użyj następującego polecenia:
               ansible-playbook nazwa_playbooka.yml
            
  • Na przykład, aby uruchomić playbook install-packages.yml, wykonaj:
              ansible-playbook install-packages.yml
            

Monitoruj postęp

  • Możesz śledzić postęp wykonywania playbooka za pomocą polecenia tail:
              tail -f nazwa_playbooka.log
           

Podsumowanie

Ansible to zaawansowane narzędzie umożliwiające administratorom systemów automatyzację procesów konfiguracyjnych na wielu serwerach, co pozwala oszczędzić czas i zredukować ryzyko błędów. W tym artykule przedstawiliśmy kompleksowy przewodnik po wykorzystaniu Ansible do automatyzacji początkowej konfiguracji serwerów Ubuntu 22.04. Pokazaliśmy, jak zainstalować i skonfigurować Ansible, jak tworzyć playbooki do wykonywania różnych zadań, a także jak je uruchamiać, aby zautomatyzować proces konfiguracji serwerów. Dzięki Ansible administratorzy systemów mogą skutecznie zarządzać wieloma serwerami, zachowując spójność i niezawodność konfiguracji.

Najczęściej zadawane pytania:

P1: Czy Ansible jest darmowy?
O: Tak, Ansible jest bezpłatnym narzędziem open source.

P2: Jakie korzyści płyną z używania Ansible?
O: Ansible oferuje liczne zalety, w tym:
* Automatyzacja zadań konfiguracyjnych
* Zwiększona efektywność pracy
* Zminimalizowanie błędów
* Utrzymanie spójnej konfiguracji

P3: Gdzie znajdę dokumentację Ansible?
O: Dokładna dokumentacja Ansible jest dostępna pod adresem https://docs.ansible.com/ansible/latest/index.html.

P4: Czy Ansible współpracuje z innymi systemami operacyjnymi niż Ubuntu?
O: Tak, Ansible może być wykorzystywany do konfiguracji wielu systemów operacyjnych, takich jak CentOS, Red Hat Enterprise Linux i Windows.

P5: Czy Ansible można zintegrować z innymi narzędziami?
O: Tak, Ansible można zintegrować z narzędziami takimi jak Git, Jenkins i Tower.

P6: Czy Ansible nadaje się do zarządzania infrastrukturą chmurową?
O: Tak, Ansible jest odpowiedni do zarządzania infrastrukturą chmurową, taką jak AWS, Azure i Google Cloud Platform.

P7: Jakie są zalecane praktyki przy korzystaniu z Ansible?
O: Dobre praktyki w Ansible obejmują:
* Używanie zmiennych i gotowych ról
* Testowanie playbooków na serwerach testowych
* Monitorowanie procesu wykonywania playbooków

P8: Gdzie mogę szukać pomocy w zakresie Ansible?
O: Istnieje wiele zasobów pomocnych w nauce Ansible, między innymi:
* Dokumentacja Ansible: https://docs.ansible.com/ansible/latest/index.html
* Forum społeczności Ansible: https://discuss.ansible.com/
* Stack Overflow: https://stackoverflow.com/questions/tagged/ansible


newsblog.pl