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]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.YamlNastępnie wpisz następujące wiersze w instalt_package.Yaml plik.
- Gospodarze: WszyscyPo 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.YamlJak 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 HTTPDJeś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 HTTPDInstalowanie 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.YamlWpisz następujące wiersze w Instalowanie_paków.Yaml plik.
- Gospodarze: WszyscyPo 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.YamlJak 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.Yamlw 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.YamlJak 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 HTTPDInstalowanie 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.YamlUsunąć 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.YamlJak widać, oprogramowanie pakuje httpd, php, I VSFTPD są instalowane na moim hoście Centos 8.
zainstalowana lista $ sudo DNF | GREP HTTPDWniosek
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