RPM yum repozitář

Tento playbook slouží pro development a staging repozitář, který je dostupný v BCV. Teprve po otestování se balíčky dostávají na oficiální repozitáře dostupné i zákazníkům.

Playbooky base.yml a rpmrepo.yml připraví samostatnou adresářovou strukturu pro RPM repozitář. Pokud nenalezne existující kontejner repozitáře, vytvoří a nastartuje nový. Pokud už kontejner existuje (byť vypnutý), nedělá s ním nic. Používáme kontejner dgutierrez1287/yum-repo.

Dokumentace prostředí iam-rpmrepo.bcv je aktuální kromě GPG klíčů.

Na disku stroje vzniká nová adresářová struktura v /data/containers/rpmrepo, která je servována nGinxem v kontejneru. Repozitář se sám inicializuje, pokud je v něm alespoň jeden RPM balíček, a automaticky reaguje na přidání/změnu/odebrání RPM souborů.

Nalezené adresáře ve www rootu kontejner automaticky považuje za jednotlivé repozitáře. Z repa je možné servovat i jiné statické soubory - přegenerování se děje pouze pokud se něco stane s RPM souborem.

Deploy podepsaných (nebo i nepodepsaných) balíčků do development repozitáře develop. Staging repozitář má cestu staging.

[root@iam-rpmrepo ~]# cp -v /data/containers/rpmbuild/results/hello-world/*rpm /data/containers/rpmrepo/develop/
'/data/containers/rpmbuild/results/hello-world/hello-world-1-1.src.rpm' -> '/data/containers/rpmrepo/develop/hello-world-1-1.src.rpm'
'/data/containers/rpmbuild/results/hello-world/hello-world-1-1.x86_64.rpm' -> '/data/containers/rpmrepo/develop/hello-world-1-1.x86_64.rpm'

Výsledná struktura na disku.

[root@iam-rpmrepo ~]# tree /data/containers/rpmrepo
/data/containers/rpmrepo
├── develop
│   ├── hello-world-1-1.src.rpm
│   ├── hello-world-1-1.x86_64.rpm
│   └── repodata
│       ├── 07c2b6ab5cb4ea8e041228b8bca830e645d92fc43b02129c89f20c0b37dee447-other.xml.gz
│       ├── 481b346fc5bc17fe545aa5c6fb7ebc5fe7edeb99a33500d366b5d725d07bf15b-other.sqlite.bz2
│       ├── 4905322c2244e2b21208cc8aae32fffc3ea10e7ac980e7d8b35e33ee9ca7fec2-filelists.xml.gz
│       ├── 6defa7e98c8372fc22e6e5e596ad678f3edc92ff94bd9f0076e8ae55f1913509-primary.xml.gz
│       ├── 82b860be75313bf8273681eb0dca6161693bf06145c3aa9b77a1b6658e6f4755-filelists.sqlite.bz2
│       ├── e0ef2ed6ca35b2914e9706f932738a477799b85529393027293c5035eb7d7860-primary.sqlite.bz2
│       └── repomd.xml
└── bcv-iam-development.repo

V rámci rootu repozitáře nyní poskytujeme veřejný klíč pro ověření podpisu balíčků (pro staging repozitář) a také bcv-iam-development.repo a bcv-iam-staging.repo soubory pro přidání konkrétního repozitáře do testovaného prostředí.

# přidání našeho public repozitáře
yum-config-manager --add-repo http://iam-rpmrepo.bcv:8080/bcv-iam-development.repo

# pak můžeme nainstalovat balíček
dnf install hello-world