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í |
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