Ansible jest chyba jednym z łatwiejszych jak nie najłatwiejszym narzędziem do globalnego zarządzania infrastrukturą pod względem wymagań. Po instalacji wystarczy, skonfigurować połączenie SSH pomiędzy maszynami i już możemy pobierać oraz wysyłać dane. Możliwe jest to przy użyciu poleceń w konsoli jak również w bardziej złożonych przypadkach przy pomocy playbook.
Instalacja oraz konfiguracja Ansible dla Centos/RedHat
Musisz rozpocząć od dodania repozytorium do systemu. Instalację przeprowadzasz tylko na jednej z maszyn.
1 |
sudo yum install epel-release |
Następnie dla pewności wykonaj aktualizację systemu.
1 |
sudo yum update |
Następnie z repozytorium pobierasz pakiet instalacyjny Ansible.
1 |
sudo yum install ansible |
Plik konfiguracyjny Ansible znajduje się w
1 |
/etc/ansible/ansible.cfg |
Widzisz, że dostępnych jest kilka opcji. Inventory jest plikiem, w których przechowywana jest lista twoich maszyn(serwerów), które mają odpowiadać na polecenia czy też playbooki.
Poniżej przykład pliku inventory.
Widzisz, że serwery są pogrupowane w zależności od tego jakie prace wykonują. Mogą mieć również jawnie zdefiniowane adresy IP, port oraz jaki user ma mieć do niej dostęp.
Utworzenie bezpiecznego połączenia między serwerem z którego zarządzamy infrastrukturą a serwerami, które pracują.
Musisz dodać nowego użytkownika, który będzie miał uprawnienia do pracy z Ansible.
1 2 |
useradd ansible passwd ansible |
Na każdej maszynie, na której chcesz testować działanie Ansible, musisz zapewnić uprawnienia do uruchomienia Ansible.
Uruchom do edycji plik suoders
1 |
sudo visudo |
Odnajdź w pliku poniższe paragrafy i zmień je zgodnie z tym co widać poniżej. Dzięki czemu użytkownik ansible, będzie mógł wykonywać polecenia bez konieczności podawania hasła.
1 |
#Allow root to run any commands anywhere root |
1 2 |
ALL=(ALL) ALL ansible ALL=(ALL) NOPASSWD: ALL |
1 |
#Same thing without a password |
1 |
Ansible ALL=(ALL) NOPASSWD: ALL |
Warto również wyłączyć SELinux (nie wnikaj teraz co to jest). Musisz otworzyć do edycji śceżkę z plikiem konfiguracyjnym, użyj poniższego polecenia(wykonaj poniższe kroki na wszystkich maszynach)
1 |
sudo nano /etc/selinux/config |
W nowo otwartym pliku odnajdź wiersz, któy wygląda tak jak poniżej.
1 2 3 |
SELINUX=enforcing zamień go na SELINUX=disabled |
Po zapisaniu zmian, musisz uruchomić system ponownie.
Ostatnim krokiem jest utworzenie kanałów komunikacji poprzez SSH pomiędzy serwerem zarządzającym a serwerami, które wykonują zadania w infrastrukturze IT. Poniższe polecenia musisz wykonać na każdym serwerze, przy czym połączenie z danego serwera musisz utworzyć ze wszystkimi pozostałymi.
Pozostawiasz wszystkie opcje domyślnie.
1 |
ssh-keygen |
Kopiujesz utworzony klucz na zdalny serwer:
1 2 |
ssh-copy-id nazwa_konta_zdalnego@nazwa_domeny ssh-copy-id ansible@10.0.0.1 |
Podłączasz się do zdalnego serwera, żeby sprawdzić czy w tym momencie nie potrzebujesz już hasła.
1 2 |
ssh nazwa_komputera_zdalnego@nazwa_domeny ssh ansible@10.0.0.1 |
Podsumowanie
Jak widzisz, jest nieco konfiguracji, ale musisz wykonać je w większości tylko na jednej maszynie, z której będą wykonywane playbook’i.
W kolejnym wpisie pokażę podstawowe polecenia, których można użyć do pobrania informacji z serwera.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).