W tym wpisie pokażę tobie, że już na początku kontaktu z Ansible możesz wyciągnąć pewne potrzebne informacje z systemu zdalnego.
Ile można wyciągnąć bez playbook’a w Ansible?
Playbook jest zwykłym plikiem tekstowym z rozszerzeniem .yml, dzięki któremu możesz wykonać pewne czynności automatycznie. Można je porównać do skryptu lub programu, który wykonuje po prostu kolejne kroki. O tym jak pisać własne playbook’i zobaczysz później. Teraz zobaczysz ile można zrobić prostymi poleceniami z konsoli.
Musisz mieć wykonane wszystkie kroki, które opisałem w cz.1. Szczególnie część odnośnie pliku hosts, w którym jest rozpisana lista twoich maszyn.
Podstawowym poleceniem jest możliwość sprawdzenia czy wszystkie twoje maszyny działają – tzn. czy odpowiadają na ping.
1 |
ansible all -m ping |
Powyższe polecenie w odpowiedzi wyświetli komunikat w kolorze zielonym, że dodane maszyny (w tym przypadku 2) są online. Gdyby kolor odpowiedzi był czerwony oznacza, że maszyna jest w trybie offline.
Składnia polecenia jest prosta:
ansible – wywołanie ansible
all/nazwa_grupy – wykonuje polecenie na wszystkich maszynach z pliku hosts lub też dla konkretnej grupy serwerów.
-m – wykonanie konkretnego modułu, w tym przypadku ping

Kolejne polecenie pozwoli tobie na pobranie informacji o architetkurze systemu na naszych serwerach.
Zapewne widzisz kolejny moduł z którego możesz korzystać, jest nim setup. Dalej przy pomocy -a podajesz parametry filtrowania, w tym przypadku pobierasz tylko wiersze opisane jako ansible_distribution.
1 |
ansible servers -m setup -a "filter=ansible_distribution*" |
W odpowiedzi otrzymasz informację na temat architektury swoich maszyn.

Przy wykonywaniu poleceń ad-hoc możesz również wskazać w sposób jawny nazwę pliku hosts. Wystarczy, że dodasz -i nazwa_hosts.
1 |
ansible servers -i hosts -m setup -a "filter=ansible_distribution*" |
Zarządzanie dyskami
Za pomocą poleceń możesz również podejrzeć parametry dysków twardych twoich maszyn.
Widzisz kolejny moduł shell, następnie -a jest argumentem o wartości fdisk -l, dalej uruchamiany argument jako użytkowik ansible. Zupełnie nowe parametry –became -K wymuszają podanie hasła dla su.
1 |
ansible servers -m shell -a 'fdisk -l' -u ansible --become -K |
W odpowiedzi otrzymasz informacje na temat wielkości min. dysku, wielkości jego sektora oraz rodzaju partycji

Ilość pamięci ram? Żaden problem
Podobnie do wielkości dysku systemowego, możesz pokazać wolną pamięć ram. Przy pomocy przełącznika -m dla free zobaczysz jej ilość w MB.
1 |
ansible servers -m shell -a 'free -m' -u ansible --become -K |
W odpowiedzi otrzymasz pełne informacje na temat zainstalowanej ilości ram.

Update i upgrade pakietów w kilka sedund
Musisz przeprowadzić update wszystkich serwerów którymi zarządzasz. Myślisz nie ma problemu potrwa to trochę ale da się zrobić. Być może, co gdyby możliwe było zrobienie tych czynności „hurtem” jednym poleceniem?
Tak ansible jest w stanie tego dokonać. Jak? Poniżej widzisz przykład.
1 |
ansible servers -m yum -a "name=* state=latest" --become -K |
W moim przypadku wszystkie pakiety są w najnowszej wersji, więc polecenie to sprawdziło tylko aktualizacje.

Grupowe zarządzanie pakietami
Możesz również zdalnie instalować pakiety na wielu maszynach. W tym celu użyj nieco zmodyfikowanego polecenia yum install.
Zainstaluj pakiet nginx na wszystkich maszynach z grupy.
1 |
ansible servers -m yum -a 'name=nginx state=latest' --become -K |
Poniżej fragment listingu, który wygeneruje się po zainstalowaniu pakietu.

Jednak w tym momencie pakiet jest tylko zainstalowany. Musisz go jeszcze uruchomić a najlepiej, aby usługa startowała automatycznie po restarcie serwera. Jak tego dokonać?
Użyj poniższego polecenia, które przy pomocy modułu service zmienią status na started – czyli uruchomisz usługę oraz parametr enabled na yes, dzięki czemu usługa uruchomi się zawsze po starcie serwera.
1 |
ansible servers -m service -a 'name=nginx state=started enabled=yes' --become -K |
Poniżej fragment widoku, który otrzymasz po uruchomieniu oraz włączeniu suługi nginx.

Jeżeli chcesz zainstalowany wcześniej pakiet usunąć wystarczy, że użyjesz poniższego polecenia. Ustawienie statusu pakietu na absent spowoduje, że system go usunie, aby ustawić jego braku na liście pakietów.
1 |
ansible servers -m yum -a 'name=nginx state=absent' --become -K |
Poniżej fragment powiadomienia, które zobaczysz po odinstalowaniu pakietu.

Statystyki systemu
W prosty sposób możesz również wyświetlić parametry swoich serwerów takie jak obciążenie procesora, otwarte porty czy czas działania serwera.
W normalnych warunkach możesz użyć polecenia top. Natomiast zamiast tego możesz użyć mpstat.
Na początek musisz zainstalować pakiet sysstat. Użyj poleceni, które już znasz z wcześniejszych wpisów.
1 |
ansible servers -m yum -a 'name=sysstat state=latest' --become -K |
Po instalacji wykonaj poniższe polecenie, aby wyświetlić obciążenia procesora na maszynach. Brak przełącznika -K na końcu spowoduje uruchomienie polecenia jako su bez potrzeby podawania hasła.
1 |
ansible servers -m shell -a 'mpstat -P ALL' --become |

Kolejną rzeczą jaką możesz zrobić to wyświetlenie wszystkich otwartych portów w systemie.
W tym celu użyj narzędzia netstat.
1 |
ansible servers -m shell -a 'netstat -plntu' --become |
Poniżej fragment wyniku netstat z otwartmi portami.

Możesz również użyć polecenia uptime, aby pokazać od kiedy działa server, ilu użytkowników jest zalogowanych oraz jakie jest średnie obciążęnei systemu w ciągu ostatniej 1,5 oraz 15 minut.
1 |
ansible servers -m shell -a 'uptime' --become |
Poniżej wynik polecenia.

Podsumowanie
Nie musisz od razu pisać oddzielnych plików z lista poleceń, wystarczy, że poznasz kilka poleceń, które możesz wykonać bezpośrednio w konsoli. Zapraszam na kolejny wpis, w którym zobaczysz podstawowe polecenia przy tworzeniu playbook.
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:).