Vereisten
Om EPEL-repository in te schakelen op CentOS 7- of CentOS 8-machines met Ansible:
- Je moet Ansible op je computer hebben geïnstalleerd.
- U moet CentOS 7- of CentOS 8-machines hebben geconfigureerd voor Ansible-automatisering.
Er zijn veel artikelen over LinuxHint gewijd aan het installeren van Ansible en het configureren van hosts voor Ansible-automatisering. Misschien wilt u deze artikelen indien nodig bekijken voor uw doeleinden.
EPEL-repository inschakelen op CentOS-hosts
Maak eerst een projectdirectory ~/project met het volgende commando:
$ mkdir -pv ~/project/playbooks
Navigeer naar de ~/project map met het volgende commando:
$ cd ~/project
Een nieuw bestand maken gastheren in de projectdirectory en open deze als volgt met de nano-teksteditor:
$ nano-hosts
Een leeg bestand gastheren moet worden gemaakt en geopend met de nano-teksteditor.
Typ de IP-adressen of DNS-namen van de doel-CentOS 7- en CentOS 8-machines (waar u EPEL-repository wilt inschakelen) in de centos gedeelte van de gastheren bestand, als volgt:
[cento's]192.168.20.169
192.168.20.222
Hier, 192.168.20.169 is het IP-adres van mijn CentOS 8 virtuele machine en 192.168.20.222 is het IP-adres van mijn virtuele CentOS 7-machine. Deze zullen voor jou anders zijn. Zorg ervoor dat u vanaf nu de voorbeeld-IP-adressen vervangt door uw eigen lijst.
OPMERKING: U kunt de IP-adressen van uw CentOS-hosts vinden met de volgende opdracht:
$ hostnaam -I
Als uw CentOS-hosts DNS-namen hebben geconfigureerd, zou u ze moeten kunnen vinden met de volgende opdracht:
$ hostnaam -A
De laatste gastheren bestand zou eruit moeten zien zoals weergegeven in de onderstaande schermafbeelding.
Sla nu het hosts-bestand op door op . te drukken
Een Ansible-configuratiebestand maken weerbaar.cfg als volgt:
$ nano mogelijk.cfg
Typ de volgende regels in het ansible.cfg-bestand:
[standaard]inventaris=./hosts
Nadat u deze stap hebt voltooid, slaat u het bestand op door op te drukken
Maak nu een nieuw Ansible-playbook enable_epel_repo.yaml in de draaiboeken/ map als volgt:
$ nano playbooks/enable_epel_repo.yaml
Typ vervolgens de volgende codes in de enable_epel_repo.yaml het dossier:
- hosts: centosgebruiker: ansible
taken:
- naam: Schakel EPEL Repository in op CentOS 8
dnf:
naam: epel-release
staat: laatste
worden: True
wanneer: ansible_facts['os_family'] == 'RedHat' en ansible_facts
['distribution_major_version'] == '8'
- naam: Schakel EPEL Repository in op CentOS 7
jammie:
naam: epel-release
staat: laatste
worden: True
wanneer: ansible_facts['os_family'] == 'RedHat' en ansible_facts
['distribution_major_version'] == '7'
In deze code:
hosts: centos, selecteert alleen de hosts in de centos groep uit de gastheren het dossier.
gebruiker: ansible, de SSH-gebruikersnaam van de hosts (waar Ansible de taken zal uitvoeren) is: weerbaar.
ik heb 2 . gedefinieerd taken hier. Eén voor CentOS 8-hosts en één voor CentOS 7-hosts. De reden dat ik het op deze manier heb gedaan, is omdat de standaardpakketbeheerder voor CentOS 8 DNF is en CentOS 7 YUM is. Eén taak (eerste taak) gebruikt de DNF-pakketbeheerder en werkt alleen op CentOS 8-hosts. De andere taak (laatste taak) gebruikt de YUM-pakketbeheerder en draait alleen op CentOS 7-hosts.
Deze twee taken zijn bijna identiek. De enige verschillen zijn de pakketbeheermodules (dnf en jammie) gebruikt in de taken en de CentOS-versiecontrolecode.
dnf en jammie Ansible-modules accepteren dezelfde parameters.
Hier, naam: epel-release, het te installeren pakket is de is epel-release.
staat: laatste, het pakket epel-release moet worden geïnstalleerd. Als het pakket al is geïnstalleerd en er een bijgewerkte versie beschikbaar is, wordt het pakket bijgewerkt.
wanneer: voorwaarde, als de staat is waar, dan wordt de taak uitgevoerd. Anders wordt de taak niet uitgevoerd.
ansible_facts, gebruikt om toegang te krijgen tot de Ansible-hostvariabelen.
ansible_facts['os_family'] == 'RedHat', controleert of het host-besturingssysteem CentOS of RedHat is.
ansible_facts['distribution_major_version'] == '8', controleert of de host OS-versie 8 is (CentOS 8 of RedHat 8, in dit geval).
ansible_facts['distribution_major_version'] == '7', controleert of de host OS-versie 7 is (CentOS 7 of RedHat 7, in dit geval).
Sla dan op enable_epel_repo.yaml bestand door op te drukken
Nu kunt u het Ansible-playbook als volgt uitvoeren:
$ ansible-playbook playbooks/enable_epel_repo.yaml
Het playbook zou zonder fouten moeten werken en de EPEL-repository moet zijn ingeschakeld op zowel de CentOS 7- als de CentOS 8-hosts.
Zoals je kunt zien, is de EPEL-repository ingeschakeld in mijn CentOS 8-host.
Zoals je kunt zien, is EPEL-repository ingeschakeld in mijn CentOS 7-host.
Dus zo schakel je EPEL-repository op CentOS in met Ansible. Bedankt voor het lezen van dit artikel.