Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Ansible – yum Repository automatisieren auf CentOS mit yum_repository

Veröffentlicht am 27. Juli 2018 von Christian Piazzi Hinterlasse ein Kommentar , Aktualisiert am 12. Februar 2019
Geschätzte Lesezeit: 1 Minute

Immer wieder kann es sein, dass man auf dem Server den man betreut zusätzliche Repositories einbindet um spezielle Software zu installieren. Auch dies kann man mit Ansible automatisieren. Dafür gibt es das Modul yum_repository welches wir uns in diesem Artikel genauer anschauen wollen.

Inhaltsverzeichnis

Anlegen der Rolle EPEL

Wir starten damit, eine Rolle für das installieren des EPEL Repository anzulegen. Darin legen wir eine Ordner tasks mit einer Datei Namens main.yml an.

1
2
3
4
tree epel/
epel/
└── tasks
    └── main.yml

Nachdem die Struktur angelegt wurde, öffnet man die main.yml mit einem beliebigen Editor. Anschließend fügt man die folgenden Codezeilen ein:

YAML
1
2
3
4
5
- name: Add repository
  yum_repository:
    name: epel
    description: EPEL YUM repo
    baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/

In Zeile zwei rufen wir hier das Modul yum_repository auf. Innerhalb des Modules können wir dann den Namen, eine Beschreibung und die URL für das Repository hinterlegen. Anschließend speichern wir die Datei

Automatisierte Installation des EPEL Repository

Nachdem wir nun eine Rolle EPEL haben mit der das EPEL Repository auf einem CentOS System installieren könne, wollen wir diese nun testen. Dafür wird eine entsprechende Konfiguration in Form einer hosts und site.yml Datei angelegt.

Der Inhalt sieht dann wie folgt aus:

site.yml:

1
2
3
4
5
- name: epel
  hosts: epel
  remote_user: root
  roles:
    - epel

hosts:

1
2
[epel]
192.168.10.37

Nachdem die Dateien angelegt sind, können wir das ganze mit ansible-playbook starten.

1
2
3
4
5
6
7
8
9
10
11
12
ansible-playbook  site.yml -i hosts
 
PLAY [epel] ************************************************************************************************
 
TASK [Gathering Facts] *************************************************************************************
ok: [192.168.10.37]
 
TASK [epel : Add repository] *******************************************************************************
changed: [192.168.10.37]
 
PLAY RECAP *************************************************************************************************
192.168.10.37              : ok=2    changed=1    unreachable=0    failed=0

Wenn man sich nun auf das Zielsystem verbindet, findet man unter /etc/yum.repos.d die Repository Datei für EPEL.

1
2
3
4
5
6
7
8
9
10
11
12
13
ll
insgesamt 48
-rw-r--r--  1 root root 1664 17. Mai 15:53 CentOS-Base.repo
-rw-r--r--  1 root root 1309 17. Mai 15:53 CentOS-CR.repo
-rw-r--r--  1 root root  649 17. Mai 15:53 CentOS-Debuginfo.repo
-rw-r--r--  1 root root  314 17. Mai 15:53 CentOS-fasttrack.repo
-rw-r--r--  1 root root  630 17. Mai 15:53 CentOS-Media.repo
-rw-r--r--  1 root root  916 23. Mai 2016  CentOS-SCLo-scl.repo
-rw-r--r--  1 root root  892 23. Mai 2016  CentOS-SCLo-scl-rh.repo
-rw-r--r--  1 root root 1331 17. Mai 15:53 CentOS-Sources.repo
-rw-r--r--  1 root root 4768 17. Mai 15:53 CentOS-Vault.repo
-rw-r--r--  1 root root  106 22. Jul 16:16 epel.repo
-rw-r--r--. 1 root root  189 22. Mai 2014  ICINGA-reelase.repo

Automatisiertes entfernen eines Repository

Nachdem wir uns angeschaut haben, wie man das EPEL Repository automatisiert anlegen kann, wollen dieses nun wieder vom Zielsystem entfernen. Dafür legen wir eine Rolle epel_remove an. Die Struktur ist so aufgebaut wie auch bei der EPEL Rolle.

1
2
3
4
tree epel_remove/
epel_remove/
└── tasks
    └── main.yml

In die Datei main.yml fügen wir diesmal den Code zum Löschen des EPEL Repository ein.

1
2
3
4
5
- name: Remove repository from a specific repo file
  yum_repository:
    name: epel
    file: epel
    state: absent

Testlauf zum Repository entfernen

Zum Testen dieser Rolle ändern wir die Dateien hosts und site.yml entsprechend ab.

site.yml:

1
2
3
4
5
- name: epel_remove
  hosts: epel_remove
  remote_user: root
  roles:
    - epel_remove

hosts:

1
2
[epel_remove]
192.168.10.37

Nun können wir mit ansible-playbook das ganze starten.

1
2
3
4
5
6
7
8
9
10
11
12
ansible-playbook  site.yml -i hosts
 
PLAY [epel_remove] *****************************************************************************************
 
TASK [Gathering Facts] *************************************************************************************
ok: [192.168.10.37]
 
TASK [epel_remove : Remove repository from a specific repo file] *******************************************
changed: [192.168.10.37]
 
PLAY RECAP *************************************************************************************************
192.168.10.37              : ok=2    changed=1    unreachable=0    failed=0

Wenn man sich jetzt den Inhalt von /etc/yum.repos.d auf dem Zielsystem anschaut, ist die Repository Datei von EPEL entfernt.

1
2
3
4
5
6
7
8
9
10
11
12
ll
insgesamt 44
-rw-r--r--  1 root root 1664 17. Mai 15:53 CentOS-Base.repo
-rw-r--r--  1 root root 1309 17. Mai 15:53 CentOS-CR.repo
-rw-r--r--  1 root root  649 17. Mai 15:53 CentOS-Debuginfo.repo
-rw-r--r--  1 root root  314 17. Mai 15:53 CentOS-fasttrack.repo
-rw-r--r--  1 root root  630 17. Mai 15:53 CentOS-Media.repo
-rw-r--r--  1 root root  916 23. Mai 2016  CentOS-SCLo-scl.repo
-rw-r--r--  1 root root  892 23. Mai 2016  CentOS-SCLo-scl-rh.repo
-rw-r--r--  1 root root 1331 17. Mai 15:53 CentOS-Sources.repo
-rw-r--r--  1 root root 4768 17. Mai 15:53 CentOS-Vault.repo
-rw-r--r--. 1 root root  189 22. Mai 2014  ICINGA-reelase.repo

Kategorie: Ansible Tags: Centos, repository, yum, yum_repository

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden