Ansible Teil 1 - YUM und RPM-Pakete

In einem der letzten Blog-Posts hatte ich gezeigt, wie mit wenigen Schritten ein Yum-Repository für RPM-Pakete auf einem NAS angelegt werden kann. Nun soll es darum gehen, diese Pakete auf einem System mit Rocky Linux 9 via Ansible automatisiert zu installieren.

Einer der Grundbaustein von Ansible sind die Tasks in denen definiert wird, was auf einem System automatisiert werden soll. Glück für uns, für die Konfiguration von Yum-Repositories und die Installation von RPM-Paketen gibt es schon fertige Standard-Module.

Hier ein Beispiel für die YUM-Repository Konfiguration und die Installation der Oracle 23ai Free Edition:

- name: "Handle local YUM Repository"
  ansible.builtin.yum_repository:
    name: "local-yum-repo"
    baseurl: "{{ yum_repo_url }}"
    file: "local_yum_repo"
    description: "Local YUM Repo on NAS"
    enabled: yes
    gpgcheck: no
    proxy: "_none_"
    state: "present"

- name: Install Oracle RPM Packages for 23ai
  ansible.builtin.dnf:
    name: 
      - oracle-database-preinstall-23ai
      - oracle-database-free-23ai
    state: installed

In weiteren Blog-Posts werde ich zeigen, wie sich im Anschluss eine Oracle Datenbank erstellen lässt und welche weiteren Bausteine für eine Ansible Automatisierung notwendig sind.

Lokales YUM-Repository für eigene RPM-Pakete

Speziell für eigene RPM-Pakete bietet sich ein YUM-Repository im LAN an. Damit lässt sich die Installation von RPM-Paketen automatisieren und man spart sich - gerade bei großen Paketen - den Download aus dem Netz.

Für Test- und Entwicklungszwecke hat sich bei mir ein NAS der Firma Synology bewährt. Als Basis dient ein NFS-Share und der "Web Station"-Service. So lassen sich die RPM-Pakete bequem von meiner Workstation auf das NAS schieben. Das YUM-Repository lässt sich im zweiten Schritt mit dem Befehl createrepo anlegen oder aktualisieren.

Zunächst die gewünschen RPM-Pakete auf das NFS-Share verschieben / kopieren:

mv oracle-database-preinstall-23ai-1.0-2.el9.x86_64.rpm /media/web/
mv oracle-database-free-23ai-1.0-1.el9.x86_64.rpm /media/web/

Falls noch kein YUM-Repository existiert:

createrepo /media/web/

Nach diesem Aufruf gibt es ein Unterverzeichnis repodata mit den entsprechenden Metadaten des Repository.

Um die Metadaten nach dem Hinzufügen von Paketen zu aktualisieren reicht ein:

createrepo --update /media/web/