Łatwo instalowanie wielu pakietów w centos za pomocą ansible

Łatwo instalowanie wielu pakietów w centos za pomocą ansible
Na ansible możesz użyć DNF Lub mniam moduł do instalowania pakietów oprogramowania na hostach CentOS lub RHEL. Domyślnie te moduły instalują tylko jeden pakiet oprogramowania. Możesz użyć DNF Lub mniam moduł wiele razy w swoim podręczniku Ansible, aby zainstalować tyle pakietów oprogramowania, ile chcesz. Chociaż nie jest to najskuteczniejszy sposób tego robienia, ponieważ będzie wiele powtórzeń kodu, którego chcielibyśmy uniknąć, jeśli to możliwe. Na szczęście możemy użyć pętli do łatwego zainstalowania jak największej liczby pakietów oprogramowania bez powtórzenia kodu.

W tym artykule pokaże, jak zainstalować wiele pakietów oprogramowania na hostach CentOS/RHEL za pomocą pętli Ansible. Więc zacznijmy.

Wymagania wstępne

Jeśli chcesz wypróbować przykłady w tym artykule,
1) Musisz mieć zainstalowany na komputerze Ansible.
2) Musisz mieć skonfigurowany host Centos/Rhel 7 lub 8 do automatyzacji Ansible.

Istnieje wiele artykułów na temat Linuxhint poświęconych instalacji ansible i konfiguracji hostów do automatyzacji ansible. W razie potrzeby możesz je sprawdzić.

Konfigurowanie katalogu projektów

Zanim przeprowadzimy się dalej, stworzymy katalog projektu, aby wszystko było zorganizowane.

Aby utworzyć katalog projektu centos-pkg/ i wszystkie wymagane podkatalog (w bieżącym katalogu roboczym) uruchom następujące polecenie:

$ mkdir -pv centos -pkg/podręczniki

Po utworzeniu katalogu projektu przejdź do katalogu projektu, w następujący sposób:

$ CD Centos-PKG/

Następnie utwórz zastępy niebieskie Plik zapasowy, w następujący sposób:

$ nano gospodarze

Dodaj nazwę IP lub DNS hosta (VM3.Nodekite.com, w moim przypadku) twoich hostów CentOS/RHEL w pliku ekwipunku (jeden host na wiersz).

Po zakończeniu zapisz plik, naciskając + X, śledzony przez Y I .

Utwórz plik konfiguracyjny Ansible Ansible.CFG W katalogu projektu, w następujący sposób:

$ nano ansible.CFG

Następnie wpisz następujące linie w Ansible.CFG plik.

[domyślne]
Inwentaryzacja = hosty
host_key_checking = false

Po zakończeniu zapisz Ansible.CFG plik naciskając + X, śledzony przez Y I .

Spróbuj pingować wszystkie hosty Centos/Rhel, które dodałeś w swoim zastępy niebieskie Plik zapasowy, w następujący sposób:

$ ansible all -u ansible -m ping

Jak widać, mój host Centos 8 jest dostępny.

Instalowanie pojedynczego pakietu oprogramowania

Ta sekcja pokaże, jak zainstalować pojedynczy pakiet oprogramowania za pomocą DNF Lub mniam moduł ansible na hostach centu/rhel.

Najpierw stwórz nowy podręcznik instalt_package.Yaml w podręczniki/ katalog, jak następuje:

$ Nano Playbooks/instalt_package.Yaml

Następnie wpisz następujące wiersze w instalt_package.Yaml plik.

- Gospodarze: Wszyscy
Użytkownik: Ansible
staje się prawdą
Zadania:
- Nazwa: Zainstaluj pakiet HTTPD
DNF:
Nazwa: httpd
Stan: obecny
aktualizacja_cache: true

Po zakończeniu zapisz plik, naciskając + X, śledzony przez Y I .

Tutaj dodałem tylko jedno zadanie, Zainstaluj pakiet HTTPD. Celem tego zadania jest zainstalowanie httpd Pakiet na Centos/Rhel 8.

Centos/Rhel 7 nie używa DNF Menedżer pakietów, używa mniam Menedżer pakietów. Tak więc, jeśli używasz CentOS/RHEL 7, zmień DNF Do mniam, jak zaznaczono na zrzucie ekranu poniżej. Żadne inne zmiany nie są wymagane.

nazwa Opcja służy do poinformowania DNF Lub mniam moduł nazwę pakietu, który próbujesz zainstalować. W takim przypadku będzie to httpd pakiet.

państwo Opcja służy do poinformowania DNF Lub mniam moduł akcję (i.mi. Zainstaluj, aktualizuj, usuń) Powinien przyjmować dany pakiet. W takim przypadku działanie jest obecny.

Obsługiwane wartości państwo Opcja to:

obecny - zainstaluje pakiet, jeśli jeszcze nie zainstalowany.

najnowszy - zainstaluje pakiet, jeśli jeszcze nie zostanie zainstalowany; Jeśli już zostanie zainstalowany, moduł sprawdzi aktualizacje; Jeśli dostępna jest zaktualizowana wersja pakietu, zainstaluje nową wersję.

nieobecny - Wyjmi pakiet, jeśli zostanie zainstalowany.

Jeśli aktualizacja_cache opcja jest ustawiona na PRAWDA, Pamięć podręczna repozytorium pakietów DNF/Yum zostanie zaktualizowana przed zainstalowaniem pakietu.

Uruchom instalt_package.Yaml Playbook, w następujący sposób:

$ Ansible-Playbook Playbooks/Instalt_package.Yaml

Jak widać, podręcznik instalt_package.Yaml działał pomyślnie.

Jak widać, httpd Pakiet jest zainstalowany na moim hoście Centos 8, który dodałem do mojego zastępy niebieskie Plik zapasowy.

zainstalowana lista $ sudo DNF | GREP HTTPD

Jeśli jesteś na Centos/RHEL 7, użyj mniam Menedżer pakietu zamiast DNF Menedżer pakietów, aby sprawdzić, czy pakiet jest zainstalowany.

zainstalowana lista $ sudo yum | GREP HTTPD

Instalowanie wielu pakietów oprogramowania za pomocą pętli with_Items

Poprzednia sekcja tego artykułu pokazała, jak zainstalować pojedynczy pakiet oprogramowania na hoście Centos/Rhel za pomocą Ansible DNF/mniam moduł. W tej sekcji pokaże, jak zainstalować wiele pakietów oprogramowania na hostach CentOS/RHEL za pomocą Ansible Z_ITEMS pętla.

Najpierw stwórz nowy podręcznik Instalowanie_paków.Yaml, następująco:

$ Nano Playbooks/Instalt_packages.Yaml

Wpisz następujące wiersze w Instalowanie_paków.Yaml plik.

- Gospodarze: Wszyscy
Użytkownik: Ansible
staje się prawdą
Zadania:
- Nazwa: Zainstaluj wszystkie pakiety
DNF:
Nazwa: 'item'
Stan: obecny
aktualizacja_cache: true
Z_ITEMS:
httpd
php
VSFTPD

Po zakończeniu naciśnij + X, śledzony przez Y I , Aby uratować Instalowanie_paków.Yaml plik.

Tutaj zdefiniowałem nazwy pakietów (httpd, php, VSFTPD) które chcę zainstalować za pomocą Z_ITEMS pętla.

Zastąpiłem nazwę pakietu zmienną przedmiot. przedmiot Zmienna zostanie zaktualizowana o nazwę pakietu w każdej iteracji.

Uruchom Instalowanie_paków.Yaml Playbook, w następujący sposób:

$ Ansible-Playbook Playbooks/Instalt_packages.Yaml

Jak widać, podręcznik Instalowanie_paków.Yaml działał pomyślnie.

httpd, php, I VSFTPD Pakiety są zainstalowane na moim hoście Centos 8, jak widać na zrzucie ekranu poniżej.

zainstalowana lista $ sudo DNF | GREP HTTPD
zainstalowana lista $ sudo DNF | GREP PHP
zainstalowana lista $ sudo DNF | GREP VSFTPD

Instalowanie wielu pakietów oprogramowania za pomocą pętli pętli

Zaczynając od Ansible 2.5, zalecanym sposobem używania pętli w swoim podręczniku jest użycie pętla Słowo kluczowe zamiast Z_ITEMS Słowo kluczowe. Dlatego widziałeś wiadomość ostrzegawczą, kiedy prowadziłem Instalowanie_paków.Yaml podręcznik we wcześniejszej sekcji tego artykułu.

Praca z pętlami za pomocą pętla Słowo kluczowe jest bardzo łatwe.

Najpierw otwórz podręcznik Instalowanie_paków.Yaml (z poprzedniego przykładu), w następujący sposób:

$ Nano Playbooks/Instalt_packages.Yaml

w Instalowanie_paków.Yaml podręcznik, po prostu wymień termin Z_ITEMS z terminem pętla, jak zaznaczono na zrzucie ekranu poniżej. Nie musisz niczego zmienić.

Po zakończeniu naciśnij + X, śledzony przez Y I , Aby uratować Instalowanie_paków.Yaml plik.

Uruchom Instalowanie_paków.Yaml Playbook, w następujący sposób:

$ Ansible-Playbook Playbooks/Instalt_packages.Yaml

Jak widać, zadanie Zainstaluj wszystkie pakiety uruchomił DNF/mniam W sumie trzy razy; Raz dla każdej pętli przedmiot.

httpd, php, I VSFTPD Pakiety są zainstalowane na moim hoście Centos 8, jak widać na zrzucie ekranu poniżej.

zainstalowana lista $ sudo DNF | GREP HTTPD
zainstalowana lista $ sudo DNF | GREP PHP
zainstalowana lista $ sudo DNF | GREP VSFTPD

Instalowanie wielu pakietów oprogramowania za pomocą składni tablicy

Wcześniejsze sekcje tego artykułu pokazały, jak korzystać z Z_ITEMS I pętla Pętle w Ansible w celu zainstalowania wielu pakietów oprogramowania na centos/RHEL 7 lub 8, bez powtórzenia kodu. Ta sekcja pokaże, jak zrobić to samo z prostszą składnią tablicy.

Najpierw otwórz Instalowanie_paków.Yaml Playbook, w następujący sposób:

$ Nano Playbooks/Instalt_packages.Yaml

Usunąć Z_ITEMS Lub pętla sekcja z zadania i zmień nazwa opcja [„httpd”, „php”, vsftpd '], jak zaznaczono na zrzucie ekranu poniżej.

Po zakończeniu naciśnij + X, śledzony przez Y I , Aby uratować Instalowanie_paków.Yaml podręcznik.

Tutaj każdy cytowany sznur wewnątrz kwadratowych nawiasów ([] []) to element tablicy (w moim przypadku nazwa pakietu oprogramowania). Każdy element tablicy powinien być oddzielony przecinkiem (,). Możesz dodać tyle elementów tablicy, ile chcesz. Dodałem tylko trzy elementy, httpd, php, I VSFTPD.

Uruchom Instalowanie_paków.Yaml Playbook, w następujący sposób:

$ Ansible-Playbook Playbooks/Instalt_packages.Yaml

Jak widać, oprogramowanie pakuje httpd, php, I VSFTPD są instalowane na moim hoście Centos 8.

zainstalowana lista $ sudo DNF | GREP HTTPD
zainstalowana lista $ sudo DNF | GREP PHP
zainstalowana lista $ sudo DNF | GREP VSFTPD

Wniosek

Ten artykuł pokazał, jak korzystać z Z_ITEMS I pętla pętle, a także składnia tablicy, z ansible mniam/DNF Moduł do instalowania wielu pakietów oprogramowania na hostach CentOS/RHEL 7 lub 8.

Aby uzyskać więcej informacji, sprawdź oficjalną dokumentację Ansible.

[1] Oficjalna dokumentacja pętli Ansible
[2] Oficjalna dokumentacja Ansible with_items
[3] Oficjalna dokumentacja modułu Ansible DNF
[4] Oficjalna dokumentacja modułu ansible Yum