Ansible jest używany do zarządzania i administrowania wieloma serwerami z centralnego komputera. Jest to narzędzie do zarządzania serwerami. Ansible nie wymaga żadnej konfiguracji po stronie serwera, tak jak Chef czy Puppet. Wystarczy zainstalować Ansible na swoim komputerze i zarządzać lub administrować serwerami przez SSH. Jest to bardzo proste i łatwe w użyciu. W tym artykule pokażę Ci, jak zainstalować i używać Ansible na CentOS 8. Więc, zaczynajmy.
Instalacja Ansible:
Ansible jest dostępne w repozytorium EPEL systemu CentOS 8. Więc, możesz łatwo zainstalować Ansible na CentOS 8.
Po pierwsze, zaktualizuj pamięć podręczną repozytorium pakietów DNF za pomocą następującego polecenia:
Teraz, aby włączyć repozytorium EPEL, zainstaluj pakiet epel-release za pomocą następującego polecenia:
Aby potwierdzić instalację, naciśnij Y, a następnie naciśnij <Enter>.
pakietepel-release powinien zostać zainstalowany, a repozytorium EPEL powinno zostać włączone.
Teraz zaktualizuj ponownie cache repozytorium pakietów DNF za pomocą następującego polecenia:
Teraz zainstaluj Ansible za pomocą następującego polecenia:
Aby potwierdzić instalację, naciśnij Y, a następnie naciśnij <Enter>.
DNF powinien rozpocząć pobieranie wszystkich wymaganych pakietów z Internetu.
Możesz zostać poproszony o zaakceptowanie klucza GPG repozytorium EPEL. Naciśnij Y, a następnie naciśnij <Enter>, aby go zaakceptować.
DNF powinien rozpocząć instalację wszystkich pobranych pakietów.
W tym momencie powinien zostać zainstalowany Ansible.
Teraz należy uruchomić następujące polecenie:
Jak widać, używam Ansible 2.9.3 i działa bez zarzutu.
Konfigurowanie serwerów dla Ansible:
Do zarządzania lub administrowania serwerami za pomocą Ansible musisz mieć zainstalowany i uruchomiony serwer SSH na serwerach. Port SSH serwerów musi być otwarty, a serwery powinny być dostępne z hosta Ansible. To jedyny wymóg korzystania z Ansible.
W tym artykule zamierzam użyć 4 maszyn wirtualnych (VMs) (2 Ubuntu Server 18.04 LTS VMs i 2 Debian 10 VMs) do zademonstrowania podstaw zarządzania i administrowania serwerami Ansible.
Cztery maszyny wirtualne to:
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.20.171
linuxhint-s41- 192.168.20.170
Możesz użyć adresów IP serwerów do zarządzania lub administrowania nimi za pomocą Ansible. Możesz również użyć nazw DNS serwerów.
W tym artykule użyję pliku /etc/hosts do rozwiązywania DNS adresów IP maszyn wirtualnych.
Jeśli chcesz śledzić, otwórz plik /etc/hosts za pomocą edytora tekstu vi w następujący sposób:
Następnie dodaj linie zaznaczone na poniższym zrzucie ekranu i zapisz plik.
Teraz wygeneruj klucz SSH na swoim hoście CentOS 8 Ansible w następujący sposób:
Naciśnij <Enter>.
Naciśnij <Enter>.
Naciśnij <Enter>.
Klucz SSH powinien zostać wygenerowany.
Teraz musisz przesłać klucz SSH do wszystkich serwerów, którymi chcesz zarządzać za pomocą Ansible.
Aby skopiować klucz SSH do serwera vm1.linuxhint.local, wykonaj następujące polecenie:
Teraz wpisz yes, a następnie naciśnij <Enter>.
Teraz wpisz hasło logowania do maszyny vm1.linuxhint.local VM i naciśnij <Enter>.
Klucz SSH powinien zostać skopiowany.
Zrób to samo dla serwera vm2.linuxhint.local, vm3.linuxhint.local i vm4.linuxhint.local.
Po skopiowaniu klucza SSH do maszyn wirtualnych, powinieneś być w stanie zalogować się do nich bez żadnego hasła, jak widać na poniższym zrzucie ekranu.
Teraz wykonaj następujące polecenie na każdym serwerze, aby umożliwić dostęp sudo bez hasła dla użytkownika logowania. Jest to wymagane, aby Ansible mógł uruchomić jakiekolwiek polecenia roota.
Wszystkie serwery są teraz gotowe do skonfigurowania lub zarządzania z poziomu Ansible.
Używanie Ansible:
Ansible przechowuje listę wszystkich hostów, którymi zarządza, w pliku zwanym plikiem inventory. Plik inventory Ansible jest po prostu zwykłym plikiem tekstowym.
Na początku utwórzmy nowy katalog projektu Ansible ~/ansible/, a następnie utworzymy nasz plik inventory.
Teraz przejdź do katalogu ~/ansible.
Teraz utwórz plik inwentarza Ansible w następujący sposób. Możesz nazwać ten plik jakkolwiek. Ja będę go nazywał hosts.
Teraz możesz dodać swoje serwery w następujący sposób. Opcja ansible_user służy do określenia użytkownika, którego Ansible będzie używał do wykonywania poleceń na tych serwerach. Zazwyczaj jest to użytkownik logujący się na serwerze.
Możesz również mieszać adresy IP i nazwy DNS serwerów w pliku inventory.
Możesz również grupować serwery. Tutaj mam 2 grupy, webserver i dbserver.
W grupie webserver, dodałem serwery vm1 i vm2. W grupie dbserver dodałem serwery vm3 i vm4.
Po utworzeniu pliku inwentarza można go użyć, używając opcji -i programu Ansible.
Możesz wylistować wszystkie hosty z pliku inwentarza w następujący sposób:
Możesz sprawdzić, czy wszystkie hosty są aktywne w następujący sposób:
Jak widać, wszystkie hosty są aktywne.
Możesz również pingować wszystkie hosty w pojedynczej grupie.
Możesz uruchamiać polecenia powłoki za pomocą Ansible w następujący sposób:
Możesz również uruchamiać polecenia powłoki (z uprawnieniami sudo) w następujący sposób.
|groupName>
Na przykład można zaktualizować pamięć podręczną repozytorium pakietów APT na hostach w grupie webserver za pomocą Ansible w następujący sposób:
Jak widać, pamięć podręczna repozytorium pakietów APT jest aktualizowana dla wszystkich hostów w grupie webserver.
Spróbujmy zainstalować serwer WWW Apache 2 na wszystkich hostach z grupy webserver.
’apt install -y apache2′ webserver
Serwer WWW Apache powinien być zainstalowany we wszystkich hostach grupy webserver.
Jak widać, serwer Apache działa na wszystkich hostach w grupie webserver.
http://localhost’ webserver
W ten sam sposób można uruchomić dowolne polecenie na wszystkich hostach w grupie dbserver.
Możesz również użyć Ansible Playbook do łatwiejszego zarządzania serwerami. Ansible Playbook jest poza zakresem tego artykułu. Przeczytaj dokumentację programu Ansible, aby uzyskać więcej informacji na temat Ansible Playbook.
Dziękuję za przeczytanie tego artykułu.