Jak skonfigurować węzły zarządzane ansible i uruchomić polecenia ad -hoc - część 3

- 3014
- 884
- Tomasz Szatkowski
W poprzednich dwóch artykułach tej serii Ansible wyjaśniliśmy podstawowe elementy Ansible i skonfigurowaliśmy węzeł kontrolny Ansible. W tej części 3 pokazamy, w jaki sposób możesz skonfigurować węzły zarządzane Ansible do uruchamiania poleceń ad-hoc na zdalnych hostach.
Konfiguracja Uwierzytelnianie SSH bez hasła na zarządzane węzły Ansible
Jako podsumowanie naszego ostatniego tematu, zarządzanie zdalnymi hostami z Ansible wymaga skonfigurowania uwierzytelniania SSH bez hasła między węzłem sterującym Ansible a zarządzanymi hostami. Obejmuje to generowanie pary kluczowej (publiczna i prywatna para klucza SSH) w węźle kontrolnym Ansible i kopiowanie klucza publicznego do wszystkich zdalnych hostów. To będzie kluczowy krok w przyszłości i ułatwi twoją pracę.
Skonfiguruj eskalację przywilejów na zarządzanych węzłach
Po zalogowaniu się jako zwykły użytkownik, możesz być zobowiązany do wykonywania niektórych zadań w zarządzanych węzłach, które wymagają podwyższonych uprawnień lub uprawnień korzeniowych. Zadania te obejmują zarządzanie pakietami, dodawanie nowych użytkowników i grup oraz modyfikowanie konfiguracji systemu, aby wymienić tylko kilka. Aby to osiągnąć, musisz wywołać niektóre dyrektywy w podręczniku, aby uruchomić zadania jako uprzywilejowany użytkownik na zdalnych hostach.
stać się
Ansible pozwala na to 'stać się' inny użytkownik w zarządzanym węźle inaczej niż ten aktualnie zalogowany. stać się: tak
dyrektywa podnosi twoje uprawnienia i pozwala wykonywać zadania wymagające uprawnień korzeniowych, takich jak instalowanie i aktualizacja pakietów oraz ponowne uruchomienie systemu.
Rozważ podręcznik httpd.yml
który instaluje i uruchamia Apache Webserver, jak pokazano:
--- - Nazwa: Zainstaluj i uruchom apache Webserver Hosty: Webservers Zadania: - Nazwa: Zainstaluj httpd yum: name = httpd stan = najnowszy stać się: tak - Nazwa: Sprawdź status HTTPD: name = httpd stan = uruchomienie
stać się: tak
Dyrektywa umożliwia wykonywanie poleceń jako użytkownika root na zdalnym hoście.
stać się_user
Kolejną dyrektywą, której możesz użyć, aby zostać innym użytkownikiem, jest stać się_user. To pozwala przejść na użytkownika Sudo na zdalnym hoście po zalogowaniu się, a nie użytkownika, który zalogujesz się jako.
Na przykład, aby uruchomić polecenie jako Tecmint Użytkownik na pilocie używa dyrektywy, jak pokazano.
- Nazwa: Uruchom polecenie jako polecenie użytkownika Apache: SomeCommand: Tak Zostań_user: Tecmint
stać się_method
Ta dyrektywa zastąpi domyślną metodę ustawioną Ansible.CFG plik, który zwykle jest ustawiony na sudo.
stać się_flagów
Są one używane na poziomie odtwarzania lub zadania, na przykład, gdy musisz przejść na użytkownika, gdy powłoka jest ustawiona na Nologin.
Na przykład,
- Nazwa: Uruchom polecenie jako nikogo: someCommand staje się: true boks_method: Su stać się_user: nikt nie staje się_flags: „-s /bin /sh”
Opcje wiersza poleceń w eskalacji przywileju
Rzućmy okiem na niektóre opcje wiersza poleceń, których możesz użyć, aby podnieść swoje uprawnienia podczas uruchamiania poleceń:
--Ask-Become-Pass
,-K
- To skłania do hasła użytkownika Sudo w systemie zdalnym, które próbujesz połączyć.
$ Ansible-Playbook MyPlaybook.YML-CASK-BECOME-PASS

--stać się
,-B
- Umożliwia to uruchomienie zadania jako użytkownika root bez monitu o hasło.
$ Ansible-Playbook MyPlaybook.yml - -become
--stać się-użytkownika = stać się_user
- Pozwala na uruchamianie zadań jako inny użytkownik.
$ Ansible-Playbook MyPlaybook.yml--become-użytkownik = Tecmint

Sprawdzaj konfigurację działającą za pomocą poleceń ad-hoc ansible
Czasami możesz chcieć wykonywać szybkie i proste zadania na zdalnych hostach lub serwerach w Ansible, niekoniecznie tworząc podręcznik. W takim przypadku trzeba było uruchomić ad-hoc Komenda.
Co to jest polecenie Adhoc?
Ansible Polecenie ad-hoc jest poleceniem jednoliniowym, które pomaga wykonywać proste zadania w prosty, ale wydajny sposób bez potrzeby tworzenia podręczników. Takie zadania obejmują kopiowanie plików między hostami, ponowne uruchomienie serwerów, dodawanie i usunięcie użytkowników oraz instalowanie pojedynczego pakietu.
W tym samouczku badamy różne aplikacje poleceń adible ad-hoc. Będziemy używać Plik zapasowy poniżej w celu demonstracji.
[WebServers] 173.82.115.165 [Database_servers] 173.82.202.239
Podstawowe użycie poleceń Adhoc
Najbardziej podstawowym użyciem poleceń Ansible-Adhoc jest pingowanie hosta lub grupy hostów.
# ansible -m ping wszystko
W powyższym poleceniu, -M
Parametr to opcja modułu. Ping jest poleceniem Adhoc, a drugi parametr reprezentuje wszystkie hosty w pliku ekwipunku. Wyjście polecenia pokazano poniżej:

Do ping, konkretna grupa hostów, wymień 'Wszystko' parametr o nazwie grupy. W poniższym przykładzie testujemy łączność z hostami w grupie WebServers.
# ansible -m ping Webservers

Dodatkowo możesz użyć -A
Atrybut do określania zwykłych poleceń Linux w podwójnych znakach cytatowych. Na przykład, aby sprawdzić czas aktualizacji systemów zdalnych, uruchom:
# ansible -a „uptime”

Aby sprawdzić użycie dysku od zdalnych hostów.
# ansible -a „df -th”

Istnieją setki modułów, których można użyć z poleceniem Adhoc. Aby wyświetlić całą listę modułów za pomocą ich opisów, uruchom poniższe polecenie.
# ansible -doc -l
Aby wyświetlić szczegółowe informacje o określonym module, uruchom polecenie.
# ansible-doc module_name
Na przykład, aby wyszukać więcej szczegółów na temat moduł menogi uruchomić:
# ansible-doc yum

Zarządzanie pakietami / usługami z Ansible
Do instalacji i usunięcia pakietów za pomocą pakietów za pomocą pakietów za pomocą pakietów za pomocą pakietów za pomocą pakietów za pomocą pakietów za pomocą pakietów można mniam I trafny Menedżerowie pakietów.
Aby zainstalować serwer WWW Apache na Centos 7 Host w grupie WebServers w pliku ekwipunku Uruchom polecenie:
# Ansible Webservers -m yum -a "name = httpd stan = prezent"

Aby zweryfikować instalację serwera WWW Apache, zaloguj się do klienta zdalnego i uruchom.
# rpm -qa | GREP HTTPD

Aby odinstalować Apache, proste zmień stan z obecny Do nieobecny.
# Ansible Webservers -m yum -a "name = httpd State = nieobecny"

Ponownie, aby potwierdzić usunięcie biegu HTTPD.
# rpm -qa | GREP HTTPD

Jak zaobserwowano, pakiety serwerów Apache zostały oczyszczone.
Tworzenie użytkowników i grup korzystających z Ansible
Podczas tworzenia użytkowników ''użytkownik„Moduł jest przydatny. Aby utworzyć nowego użytkownika James z hasłem czerwony kapelusz W systemie Batabase_Server, wydaj polecenie.
# ansible baza danych_server -m użytkownik -a "nazwa = James hasło = redhat"

Aby potwierdzić tworzenie nowego użytkownika, uruchom polecenie:
# Ansible Database_Servers -a „id James”

Aby usunąć użytkownika, uruchom polecenie:
# ansible baza danych_servers -m użytkownik -a "nazwa = James State = nieobecny"

Eskalacja przywileju
Jeśli działasz Ansible jako zwykły użytkownik, Ansible zapewnia eskalację uprawnień w zdalnych hostach za pomocą --stać się
opcja nabycia uprawnień root i -k
Aby uzyskać monit o hasło.
Na przykład, aby uruchomić polecenie ansible adhoc 'netstat -pnltu„Z uprzywilejowaną opcją --stać się
i opcja -K
Aby uzyskać monit o hasło użytkownika root, aby uruchomić polecenie.
$ ansible WebServers -m Shell -a 'netstat -pnltu' - -become -k

Aby zostać innym użytkownikiem innym niż root, użyj --Zostań użytkownikiem
atrybut.
Na przykład uruchomić 'df -th' Jak Tecmint Użytkownik na zdalnych hostach i monit o uruchomienie hasła:
$ ansible all -m shell -a 'df -th' - -become -user tecmint -k

Zbieranie faktów na temat systemów hosta
Fakty patrz szczegółowe informacje o systemie. Obejmuje to informacje o adresie IP, architekturze systemu, pamięci i procesora, aby wymienić kilka.
Aby pobrać informacje o zdalnych hostach, uruchom polecenie:
$ Ansible All -Metup

Pliki transferu / kopiowania plików
Ansible używa modułu Kopiuj Aby bezpiecznie skopiować pliki z kontroli Ansible do wielu zdalnych hostów.
Poniżej znajduje się przykład operacji kopiowania:
# ansible WebServers -m copy -a "src =/var/log/bezpieczne dest =/tmp/"

Polecenie kopiuje /var/log/bezpiecznie plik w węźle kontrolnym Ansible do zdalnych hostów w grupie WebServers w /TMP miejsce docelowe.
Możesz użyć moduł pliku Aby zmienić uprawnienia i własność plików.
# Ansible WebServers -m Plik -a "dest =/tmp/bezpieczny tryb = 600"

Dodatkowo możesz dołączyć argumenty właściciela i grupowe, jak pokazano:
# Ansible WebServers -m Plik -a "dest =/tmp/bezpieczny tryb = 600 właściciel = TecMint Group = TecMint"

Możesz także tworzyć katalogi w podobny sposób mkdir -p
jak pokazano.
$ ansible WebServers -m Plik -a "dest =/ścieżka/do/Tryb katalogu = 755 właściciel = TecMint Group = TecMint State = Directory"
Na przykład,
$ ansible Webservers -m Plik -a "dest =/home/tecMint/Data Trib = 755 właściciel = TecMint Group = TecMint State = Directory"

Wniosek
W tym artykule rzucamy światło na sposób skonfigurowania zarządzanych węzłów do uruchamiania poleceń ad-hoc ansible w celu zarządzania zdalnymi hostami. Mamy nadzieję, że uznałeś to za przydatne. Spróbuj i daj nam znać, jak poszło.
- « Jak instalować i używać MS SQL Server w Linux
- Jak zainstalować konsolę internetową kokpitu w RHEL 8 »