Rebuildworld/kernel 11.x vs. 12.x

Miroslav Lachman 000.fbsd at quip.cz
Tue Aug 20 09:24:40 CEST 2019


Marek Soudny wrote on 2019/08/20 08:26:

> Mirku, upgrad rsyncem me nikdy nenapadl, ale kdyz uz jsi ho zminil, 
> rozumim tomu dobre, ze na 1 "builder" stroji udelas klasicky make 
> buildworld, buildkernel, installkernel a installworld, vcetne rebootu a 
> mergemaster(u) a vysledny (base?) system pak "jednoduse" rsyncnes, s 
> osetrenim nejakyho exclude listu s /etc/{passwd,group,master.passwd}, na 
> ostatni servery, ktery pak jenom rebootnes?

Ano, tak nejak to je. Nejdriv jsem pouzival centralni build, 
primountovany na ostatni masiny pres NFS, takze na cilovych strojich se 
spoustel uz jen installkernel a installworld. Coz sice funguje, ale i s 
kazdym patch level updatem se prepisuji vsechny soubory v base, coz na 
nekterych VM trva strasne dlouho, protoze jsou od provideral imitovane 
na 200 IOPS. Takze to, co normalne trva 2 minuty tam trva pul hodiny.

Takze pak jsem prisel s tim, udelat na buildserveru samostatny adresar, 
do ktereho udelam installkernel a installworld s nastavenim DESTDIR. Tim 
vznikne instalace bez souboru v /etc/, takze tohle uz se da rsyncem 
prenaset na ostatni stroje.
Porad tam je ale problem s tim, ze se zmeni cas modifikace u souboru, u 
kterych se nezmenil jejich obsah (respektive byly prepsane stejnym 
obsahem). Sice se po siti nemusi obsah souboru prenaset, ale zmena casu 
na cilovem stroji stejne vyvola dalsi diskovou operaci. Tomu jsem se 
potreboval vyhnout.

Takze jsem to pak posunul jeste o kousek dal a na build serveru mam tech 
adresaru vice:

/vol0/rsync_updates/11.3-RELEASE_amd64
/vol0/rsync_updates/11.3-RELEASE-p1_amd64
/vol0/rsync_updates/11.3-RELEASE-p2_amd64
/vol0/rsync_updates/11.3-UPDATED_amd64
/vol0/rsync_updates/11.3-CHANGES_amd64

Takze kdyz vysla 11.3, udelal jsem make installkernel a installworld 
DESTDIR=/vol0/rsync_updates/11.3-RELEASE_amd64
Naklonoval ho do 11.3-UPDATED_amd64 (pouzivam ZFS) a z toho 
11.3-UPDATED_amd64 se pak pouziva rsync pro kopirovani na cilove stroje

Kdyz vysla 11.3-RELEASE-p1, tak jsem udelal instalaci s DESTDIR do 
11.3-RELEASE-p1_amd64. Nasledne pak spocitam checksumy pro vsechny 
soubory v 11.3-RELEASE_amd64 a v 11.3-RELEASE-p1_amd64 - tam, kde se 
checksum a velikost souboru lisi, soubor prekopiruju do 
11.3-UPDATED_amd64 a do 11.3-CHANGES_amd64
Takze v 11.3-UPDATED_amd64 je zase kompletni base system (bez /etc/) v 
aktualni verzi a v 11.3-CHANGES_amd64 jsou jenom soubory, ktere se mezi 
RELEASE a RELEASE-p1 zmenily - to pro pripad, ze bych je chtel 
distribuovat i nejak jinak. Treba si z nich zabalit TAR atp.

Kdyz vysla 11.3-RELEASE-p2, tak se zase udela buildworld buildkernel, 
installkernel a installworld do adresare 11.3-RELEASE-p2_amd64, 
spocitaji checksumy, rozdilne soubory se nakopiruji do 
11.3-UPDATED_amd64 a 11.3-CHANGES_amd64 a z 11.3-UPDATED_amd64 se to 
rsyncem roznese na cilove stroje.

Nemuzu zatim prohlasit, jak moc (ne)spolehlivy tenhle system je. 
Pouzivam to asi pul roku. Na zacatku bylo v planu pouzivat na version 
upgrade to reseni s NFS a jen na patch level updaty pouzivat rsync, ale 
jednou jsem si to omylem pustil na stroji, kde byla 10.4 a rsyncem jsem 
to upgradnul na 11.2. Takze kdyz to proslo a stroj nabootoval, trosku 
jsem si jeste pohral se scriptem, aby me to upozornilo na rozdilne verze 
atd., ale ted delam upgrady z 11.2 na 11.3 taky rsyncem a zatim jsem na 
problem nenarazil. Cimz nerikam, ze problem nastat nemuze. Urcite muze.

Zatim jsem mel ale daleko vetsi prusvih s tim, kdyz jsem se pokusil po 
tom rsync upgrade pouzit etcupdate misto stareho dobreho mergemasteru 
(necim se /etc/ updatovat musi, to rsync vyresit nemuze)

etcupdate mi na vsech strojich, kde jsem ho zkousel, zmeni prava na 
skriptech v /etc/rc.d - nenastavi jim spustitelnost - tem, ktere 
etcupdate musel mergovat - takze po rebootu nenabehly nejake sluzby a 
treba taky ldconfig.

Navic mi etcupdate hlasi konflikty i v souborech, do kterych jsem ja 
nezasahoval a mergemaster je dokaze sam v poklidu updatovat bez 
manualniho zasahu.

Pouzivate nekdo uspesne etcupdate?

Mirek


More information about the Users-l mailing list