Jak zainstalować i skonfigurować Ansible w Rocky Linux 9

Wprowadzenie do Ansible

Ansible to wszechstronne narzędzie open-source do automatyzacji zadań IT. Umożliwia administratorom łatwe i efektywne zarządzanie oraz konfigurację infrastrukturą informatyczną. Jest to popularne rozwiązanie wykorzystywane do automatyzacji wdrażania oprogramowania, zarządzania konfiguracją oraz provisioningu serwerów. W tym przewodniku szczegółowo omówimy kroki niezbędne do zainstalowania i skonfigurowania Ansible w systemie operacyjnym Rocky Linux 9.

Wymagania wstępne

Aby pomyślnie przeprowadzić proces instalacji i konfiguracji Ansible, upewnij się, że spełnione są następujące warunki:

  • Zainstalowany system operacyjny Rocky Linux 9.
  • Dostęp do konta z uprawnieniami administratora (root lub z użyciem sudo).
  • Aktywne połączenie z Internetem, aby pobrać niezbędne pakiety.

Etapy instalacji Ansible

1. Aktualizacja systemu: Zanim przystąpisz do instalacji jakichkolwiek nowych pakietów, zaleca się uaktualnienie systemu do najnowszej wersji. Wykorzystaj w tym celu następujące polecenie:

sudo dnf update

2. Instalacja Ansible: Ansible znajduje się w oficjalnych repozytoriach pakietów Rocky Linux 9. Aby go zainstalować, użyj polecenia:

sudo dnf install ansible

3. Weryfikacja instalacji: Po zakończeniu instalacji zweryfikuj poprawność, sprawdzając zainstalowaną wersję Ansible. Wpisz w terminalu:

ansible --version

Konfiguracja Ansible – krok po kroku

1. Tworzenie pliku inwentarza: Ansible wymaga pliku inwentarzowego, który zawiera informacje o hostach (serwerach), którymi zamierzamy zarządzać. Utwórz plik o nazwie inventory.ini w katalogu /home/nazwa_użytkownika/.ansible/. Zdefiniuj przynajmniej jedną grupę i jeden host. Przykładowa konfiguracja:


[servers]
srv1 ansible_host=192.168.1.100

2. Utworzenie playbooka: Playbook to plik w formacie YAML, który zawiera sekwencję zadań do wykonania na zdefiniowanych w inwentarzu hostach. Stwórz plik playbook.yml w katalogu /home/nazwa_użytkownika/.ansible/ z przykładową zawartością:


---
- name: Test połączenia z hostami
hosts: servers
tasks:
- name: Sprawdź dostępność
ping:

Uruchamianie playbooka

1. Wykonanie playbooka: Aby uruchomić przygotowany playbook, przejdź do katalogu, gdzie się on znajduje i wykonaj polecenie:

ansible-playbook playbook.yml

2. Analiza wyników: Wyniki wykonania playbooka zostaną wyświetlone w konsoli. Istnieje również możliwość zapisania wyników do pliku, korzystając z opcji --output-file.

Konfiguracja autoryzacji za pomocą klucza SSH

1. Generowanie kluczy SSH: Na komputerze zarządzającym wygeneruj parę kluczy SSH, co pozwoli na bezhasłowe połączenie z hostami docelowymi. Użyj następującego polecenia:

ssh-keygen -t ed25519 -C "nazwa_użytkownika@komputer_kliencki"

2. Kopiowanie klucza publicznego: Skopiuj wygenerowany klucz publiczny na każdy serwer zdefiniowany w pliku inwentarza. Wykonaj polecenie:

ssh-copy-id -i ~/.ssh/id_ed25519.pub nazwa_użytkownika@srv1

3. Wyłączenie weryfikacji klucza: W celu wyłączenia weryfikacji klucza hosta, co pozwala na automatyczne połączenia, stwórz plik host_key_checking=false w katalogu /etc/ansible/ na komputerze zarządzającym.

Zarządzanie konfiguracją hostów

1. Instalacja modułów: Ansible wykorzystuje moduły do zarządzania konfiguracją hostów. Możesz instalować dodatkowe moduły za pomocą ansible-galaxy:

ansible-galaxy collection install community.general

2. Dodawanie zadań konfiguracji: Dodaj zadania konfiguracji w swoim playbooku. Przykładowo, aby zainstalować pakiet Nginx, dodaj następujący fragment kodu:


- name: Instalacja Nginx
hosts: servers
tasks:
- name: Instalacja pakietu Nginx
yum:
name: nginx
state: present

Wykorzystanie zmiennych i ról

1. Zmienne: Ansible umożliwia używanie zmiennych, które można zdefiniować w plikach group_vars lub host_vars w katalogu .ansible/. Na przykład, aby zdefiniować zmienną web_port dla grupy servers, stwórz plik group_vars/servers z zawartością:


web_port: 80

2. Role: Role pozwalają na grupowanie powtarzalnych zadań. Utwórz katalog dla roli w /etc/ansible/roles/ i w nim pliki main.yml (główny plik definiujący rolę), vars/main.yml (zmienne) oraz tasks/main.yml (zadania).

Zaawansowane funkcje Ansible

  • Delegowanie zadań: Ansible umożliwia delegację zadań do wykonywania na różnych hostach, co zwiększa wydajność automatyzacji.
  • Zarządzanie kontenerami: Ansible oferuje wsparcie dla zarządzania kontenerami Docker i środowiskami Kubernetes.
  • Monitoring i raportowanie: Ansible Tower jest narzędziem, które oferuje graficzny interfejs użytkownika do monitorowania zadań i tworzenia raportów.

Przykładowe zastosowania Ansible

  • Automatyczna konfiguracja nowych serwerów.
  • Zarządzanie dystrybucją i aktualizacjami oprogramowania.
  • Monitorowanie infrastruktury i ustawianie alarmów.
  • Audytowanie konfiguracji systemów i ich zgodności z politykami bezpieczeństwa.

Podsumowanie

Ansible to wszechstronne narzędzie do automatyzacji, które pozwala administratorom efektywnie zarządzać infrastrukturą IT. Instalacja i konfiguracja Ansible w Rocky Linux 9 jest stosunkowo prosta. Wykorzystaj potencjał Ansible do automatyzacji powtarzalnych zadań i poprawy efektywności swojej pracy.

Najczęściej zadawane pytania (FAQ)

1. Czym jest Ansible?
Ansible to narzędzie automatyzujące zarządzanie i konfigurację infrastruktury IT.

2. Jak zainstalować Ansible na Rocky Linux 9?
Ansible można zainstalować za pomocą menedżera pakietów dnf.

3. Jak skonfigurować plik inwentarzowy w Ansible?
Plik inwentarzowy definiuje hosty, którymi zamierzasz zarządzać. Utwórz plik .ini z grupami i adresami hostów.

4. Jak uruchomić playbook w Ansible?
Playbook uruchamia się za pomocą polecenia ansible-playbook.

5. Jak skonfigurować autoryzację kluczem SSH w Ansible?
Wygeneruj klucze SSH i skopiuj klucz publiczny na zarządzane hosty. Następnie, wyłącz weryfikację kluczy hostów poprzez stworzenie pliku host_key_checking=false w katalogu /etc/ansible/.

6. Jak dodawać moduły do Ansible?
Moduły dodaje się za pomocą polecenia ansible-galaxy.

7. Jak pracować ze zmiennymi i rolami w Ansible?
Zmienne definiuje się w plikach group_vars lub host_vars. Role umożliwiają grupowanie zadań i zmiennych w celu ponownego wykorzystania.

8. Jakie są zaawansowane funkcje Ansible?
Delegowanie zadań, zarządzanie kontenerami i monitoring to tylko niektóre z zaawansowanych możliwości Ansible.


newsblog.pl