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

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

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 
Ansible stają się przepustką
  • --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 
Ansible stać się użytkownikiem

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:

Ansible ping wszystkich gospodarzy

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 
Ansible ping grupa gospodarzy

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” 
Ansible sprawdź czas aktualnego zdalnego hosta

Aby sprawdzić użycie dysku od zdalnych hostów.

# ansible -a „df -th” 
Ansible Check Disk Używanie zdalnych hostów

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 
Ansible sprawdź moduł mniam

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" 
Ansible instaluj apache na zdalnych hostach

Aby zweryfikować instalację serwera WWW Apache, zaloguj się do klienta zdalnego i uruchom.

# rpm -qa | GREP HTTPD 
Potwierdź instalację Apache

Aby odinstalować Apache, proste zmień stan z obecny Do nieobecny.

# Ansible Webservers -m yum -a "name = httpd State = nieobecny" 
Ansible Usuń Apache

Ponownie, aby potwierdzić usunięcie biegu HTTPD.

# rpm -qa | GREP HTTPD 
Potwierdź usunięcie Apache

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" 
Ansible Utwórz użytkownika na zdalnych hostach

Aby potwierdzić tworzenie nowego użytkownika, uruchom polecenie:

# Ansible Database_Servers -a „id James” 
Ansible potwierdź tworzenie użytkowników

Aby usunąć użytkownika, uruchom polecenie:

# ansible baza danych_servers -m użytkownik -a "nazwa = James State = nieobecny" 
Ansible Usuń użytkownika

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 
Eskalacja przywileju

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 
Ansible stają się innym użytkownikiem

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 
Ansible gromadzi fakty systemowe

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/" 
Ansible kopiuj pliki do zdalnego hosta

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" 
Uprawnienia pliku zmiany zmiany

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" 
Atrybuty użytkownika i grupy dołączają atrybuty użytkowników

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" 
Ansible Utwórz katalog
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.