Automaattinen rakennusjärjestelmä remixeille ilman Kojia
Tämä asiakirja kuvaa automatisoidun RPM- ja ISO-rakennusinfrastruktuurin luomisen prosessia pienemmille Fedora Remix projekteille, jotka eivät hyödynnä Fedoran Koji-ekosysteemiä.
Perusasetelma
Paras käytäntö on pitää web-palvelin ja rakentaja erillään.
Web-palvelin on CentOS-järjestelmä. Sen päätarkoitus on isännöidä julkista ISO-latausta ja pakettivarastoa. Linkki:../_attachments/playbook-builder.yml[playbook-mirror.yml] Ansible-pelikirja, joka sijaitsee tässä arkistossa, automatisoi web-palvelimen provisioinnin. CentOS:n valinta oli maksimoida tukiaika ja pysyä RHEL-perheessä. Se voisi yhtä hyvin olla Debian-palvelin, vaikka pelikirjaa pitäisi säätää.
Rakentaja on Fedora-järjestelmä, joka on toteutettu playbook-builder.yml Ansible-pelikirjan avulla. Rakentaja on Jenkins CI -palvelin, joka rakentaa kierroslukuja uudelleen, kun versionhallintaan tehdään muutoksia. Automaatio tulisi konfiguroida Jenkinsissä aktivoitumaan push-%master% -arvoon jokaiselle repo-kotelopakettilähteelle.
RPMs
Alla esitetty komentosarja havainnollistaa RPM-pakettien rakentamisprosessia Jenkinsillä.
sudo rm -rf /home/$USER/to-sign/ mkdir -p /home/$USER/to-sign/ copr-rpmbuild scm --clone-url [URL of git repo with package source] --chroot \ fedora-$(lsb_release -a | grep Release | cut -f2)-x86_64 sudo cp /var/lib/copr-rpmbuild/results/*.rpm /home/$USER/to-sign rm -rf /var/lib/copr-rpmbuild/results
Kun RPM-rakennus on valmis, vastuullisen tiimin jäsenen täytyy yhdistää rakennuspalvelimeen SSH:n kautta allekirjoittaakseen valmiin RPM-paketin seuraavasti:
sudo rpmsign --addsign /path/to/to-sign/directory/*rpm
Työkalua kuten %rsync% tulisi käyttää uusien pakettien siirtämiseen peiliin. Kun olet varmistanut käyttöoikeuksien oikeellisuuden, suorita:
sudo createrepo_c --update /path/to/RPMs or SRPMs
peilissä, jotta oikea kierroslukuvarasto voidaan päivittää.
ISOs
ISO:t tulisi rakentaa tarpeen mukaan. ISO:n rakentamiseen tarvitaan kaksi edellytettä:
-
Kickstart-tiedosto, jota Anaconda Installer käyttää
-
The
lorax-lmc-novirtandpykickstartFedora packages
Alkuperäinen ISO-koonti
-
Kloonaa Fedora Kickstarts -tietovarasto: %git clone https://pagure.io/fedora-kickstarts.git%
-
Tule hakemistoon: %cd fedora-kickstarts/%
-
Valitse kickstart, jota käytät pohjana remixillesi
-
Litistä kickstart: %ksflatten --config [kickstartin nimi].ks -o flat-[kickstartin nimi].ks --versio [fedora-versio]%
-
Muokkaa %%packages% -osiota flat kickstartissa, jos haluat lisätä tai poistaa peruspaketteja
-
Aseta %SELinux% sallivaksi muodossa: %sudo setenforce 0%
-
Aja
livemedia-creator:sudo livemedia-creator --ks /path/to/flat/kickstart/file --no-virt \ --resultdir /var/lmc --project [image name] --make-iso --volid [image name] \ --iso-only --iso-name [image name].iso --releasever [fedora release] \ --title [image name] --macboot
-
Tuloksena oleva ISO on %/var/lib/lmc%.
-
Lopuksi, aseta %SELinux% takaisin pakottamaan: %sudo setenforce 1%
Yleinen ISO-rakennus
Alkuperäisen ISO-version jälkeen uusi ISO voidaan luoda ajamalla:
setenforce 0 livemedia-creator --ks [kickstart-name].ks --no-virt --resultdir /var/lmc \ --project [remix name]-Live --make-iso --volid [remix name] \ --iso-only --iso-name [remix name].iso --releasever $vers \ --title [remix name]-live --macboot setenforce 1
Saatat haluta harkita ISO-version automatisoimista Jenkinsin kanssa.
Want to help? Learn how to contribute to Fedora Docs ›