Warunki wstępne
Aby włączyć repozytorium EPEL na komputerach CentOS 7 lub CentOS 8 z Ansible:
- Musisz mieć zainstalowany Ansible na swoim komputerze.
- Musisz mieć komputery CentOS 7 lub CentOS 8 skonfigurowane do automatyzacji Ansible.
Istnieje wiele artykułów na LinuxHint poświęconych instalowaniu Ansible i konfigurowaniu hostów do automatyzacji Ansible. Możesz sprawdzić te artykuły, jeśli to konieczne, do swoich celów.
Włączanie repozytorium EPEL na hostach CentOS
Najpierw utwórz katalog projektu ~/projekt za pomocą następującego polecenia:
$ mkdir -pv ~/projekt/podręczniki
Przejdź do to ~/projekt katalog za pomocą następującego polecenia:
$ cd ~/projekt
Utwórz nowy plik zastępy niebieskie w katalogu projektu i otwórz go za pomocą edytora tekstu nano w następujący sposób:
$nano hosty
Pusty plik zastępy niebieskie należy utworzyć i otworzyć za pomocą edytora tekstu nano.
Wpisz adresy IP lub nazwy DNS docelowych maszyn CentOS 7 i CentOS 8 (w których chcesz włączyć repozytorium EPEL) w polu centos sekcja zastępy niebieskie plik w następujący sposób:
[centos]192.168.20.169
192.168.20.222
Tutaj, 192.168.20.169 to adres IP mojej maszyny wirtualnej CentOS 8 i 192.168.20.222 to adres IP mojej maszyny wirtualnej CentOS 7. To będzie dla ciebie inne. Pamiętaj, aby od teraz zastąpić przykładowe adresy IP własną listą.
UWAGA: Możesz znaleźć adresy IP swoich hostów CentOS za pomocą następującego polecenia:
$ nazwa hosta -I
Jeśli twoje hosty CentOS mają skonfigurowane nazwy DNS, powinieneś być w stanie je znaleźć za pomocą następującego polecenia:
$ nazwa hosta -A
Finał zastępy niebieskie plik powinien wyglądać tak, jak pokazano na poniższym zrzucie ekranu.
Teraz zapisz plik hosts, naciskając
Utwórz plik konfiguracyjny Ansible ansibl.cfg następująco:
$ nano ansibl.cfg
Wpisz następujące wiersze w ansible.plik cfg:
[domyślne]inwentarz=./zastępy niebieskie
Po wykonaniu tego kroku zapisz plik, naciskając
Teraz utwórz nowy podręcznik Ansible enable_epel_repo.jamla w podręczniki/ katalog w następujący sposób:
$ Poradniki nano/enable_epel_repo.jamla
Następnie wpisz następujące kody w enable_epel_repo.jamla plik:
- gospodarze: centosużytkownik: ansible
zadania:
- nazwa: Włącz repozytorium EPEL w CentOS 8
dnf:
nazwa: epel-release
stan: najnowszy
stać się prawdziwym
kiedy: ansible_facts['os_family'] == 'RedHat' i ansible_facts
['distribution_major_version'] == '8'
- nazwa: Włącz repozytorium EPEL w CentOS 7
mniam:
nazwa: epel-release
stan: najnowszy
stać się prawdziwym
kiedy: ansible_facts['os_family'] == 'RedHat' i ansible_facts
['distribution_major_version'] == '7'
W tym kodzie:
gospodarze: centos, wybiera tylko hosty w centos grupa z zastępy niebieskie plik.
użytkownik: ansible, nazwa użytkownika SSH hostów (gdzie Ansible będzie uruchamiać zadania) będzie ansibl.
Zdefiniowałem 2 zadania tutaj. Jeden dla hostów CentOS 8 i jeden dla hostów CentOS 7. Powodem, dla którego zrobiłem to w ten sposób, jest to, że domyślnym menedżerem pakietów dla CentOS 8 jest DNF, a CentOS 7 to MNIAM. Jedno zadanie (pierwsze zadanie) użyje menedżera pakietów DNF i będzie działać tylko na hostach CentOS 8. Drugie zadanie (ostatnie zadanie) użyje menedżera pakietów YUM i będzie działać tylko na hostach CentOS 7.
Te dwa zadania są prawie identyczne. Jedyne różnice to moduły menedżera pakietów (dnf i mniam) używane w zadaniach i kodzie sprawdzania wersji CentOSOS.
dnf i mniam Moduły Ansible akceptują te same parametry.
Tutaj, nazwa: epel-release, pakiet do zainstalowania to epel-uwolnienie.
stan: najnowszy, paczka epel-uwolnienie powinien być zainstalowany. Jeśli pakiet jest już zainstalowany i dostępna jest zaktualizowana wersja, pakiet zostanie zaktualizowany.
kiedy: stan, jeśli stan: schorzenie jest prawdziwe, wtedy zadanie zostanie uruchomione. W przeciwnym razie zadanie nie zostanie uruchomione.
ansible_facts, używany do uzyskiwania dostępu do zmiennych hosta Ansible.
ansible_facts['os_family'] == 'RedHat', sprawdza, czy system operacyjny hosta to CentOS lub RedHat.
ansible_facts['distribution_major_version'] == '8', sprawdza, czy wersja systemu operacyjnego hosta to 8 (w tym przypadku CentOS 8 lub RedHat 8).
ansible_facts['distribution_major_version'] == '7', sprawdza, czy wersja systemu operacyjnego hosta to 7 (w tym przypadku CentOS 7 lub RedHat 7).
Następnie zapisz enable_epel_repo.jamla plik, naciskając
Teraz możesz uruchomić podręcznik Ansible w następujący sposób:
$ ansible-playbook playbooks/enable_epel_repo.jamla
Poradnik powinien działać bez żadnych błędów, a repozytorium EPEL powinno być włączone zarówno na hostach CentOS 7, jak i CentOS 8.
Jak widać, repozytorium EPEL jest włączone na moim hoście CentOS 8.
Jak widać, repozytorium EPEL jest włączone na moim hoście CentOS 7.
W ten sposób włączasz repozytorium EPEL na CentOS za pomocą Ansible. Dziękujemy za przeczytanie tego artykułu.