Kirjoittaja Aihe: distro upgrade  (Luettu 3772 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 643
    • Profiili
distro upgrade
« : 26.09.18 - klo:08.07 »
Mitä tapahtuu distro upgradessa ?
Miksi siihen menee niin valtavasti aikaa ?
Miksi se jokseenkin joka kerta menee puihin ?

Täydelliseen uudelleenasennukseen tyhjöltä pöydältä menee yleensä n. 20 min ja korjailuihin muutamia tunteja.
Distro upgradeen menee helposti 10-12 tuntia ja lopputuloksena olen joka kerta joutunut asentamaan kuitenkin puhtaalta pöydältä.
Suurin yksittäinen harmi asennuksissa on ollut php:n ja JS:n kaltaisissa paketeissa. Mitään varoittamatta uudemmasta versiosta on pudotettu jotain käskyjä pois tai parametrien järjestys on muuttunut. Tämän tuloksena on saanut käydä läpi koko webbiserverinsä etsien, mikseivät sivustot toimi, kun ne vielä eilen toimivat.

Eikö distrojen välisiä  muutoksia voisi pitää hallittuina ja harkittuina siten, että korvattaisiin osa kerrallaan ?
Erityisesti servereissä tämä on riesa. Pitäisi tehdä klooni-kone, johom tekisi päivityksen. Jos päivitys onnistuisi, voisi sen irrottaa verkosta, muuttaa sen nimi , tehdä korjaus DHCP:lle ja vaihtaa koneet lennossa.

Parhaillaan minulla on yksi serveri välitilassa. Ollut jo 10 tuntia. Sorruin kuvittelemaan, että distro-upgradet olisivat parantuneet viimeisen vuoden aikana.

Lisäys:
12 tunnin jälkeen kyllästyin ja tein three-finger-salut:n. Tunnin ahertelun jälkeen kone on taas jaloillaan.
Olisi jäänyt tekemättä, ellei olisi touhunnut tietokoneiden kanssa n. 40v, joista Linuxin kanssa vuodesta 1992.
« Viimeksi muokattu: 26.09.18 - klo:10.34 kirjoittanut Mistofelees »

nm

  • Käyttäjä
  • Viestejä: 16285
    • Profiili
Vs: distro upgrade
« Vastaus #1 : 26.09.18 - klo:15.54 »
Mitä tapahtuu distro upgradessa ?

Tarkoitatko jakeluversion päivitystä esim. Ubuntu 16.04 -> 18.04, vai version sisäistä normaalia päivitystä esim. komennolla sudo apt-get dist-upgrade?

Miksi siihen menee niin valtavasti aikaa ?

Jakelun päivitys versiosta toiseen on selvästi monimutkaisempi operaatio kuin puhdas asennus. En silti pitäisi Ubuntun päivitystä hitaana, verrattuna vaikkapa Windowsin päivittämiseen, jossa oikeasti menee tunteja tai pahimmillaan päiviä.

Version sisäisen päivityksen taas ei pitäisi viedä juurikaan aikaa, ellei päivitettävää ole kertynyt vuosien edestä. Esim. kuukauden välein asennettuna LTS-jakelun päivityksissä menee muutama minuutti per kerta. Riippuu toki aika paljon myös nettiyhteyden ja levyn nopeudesta.


Miksi se jokseenkin joka kerta menee puihin ?

Jakelupäivityksessä lähes kaikkien järjestelmäkomponenttien ja ohjelmien versiot vaihtuvat, ja vanhat asetukset voivat aiheuttaa ongelmia, jos ja kun kaikkea ei ole huomioitu paketoinneissa. Itse suosin tästä syystä puhdasta uudelleenasennusta, jolloin välttyy päivitykseen piileviltä bugeilta ja voi tehdä tarvittavat asetukset oikein puhtaalle alustalle.

Tavallinen version sisäinen päivitys ei muuta versioita (paitsi selaimen osalta), vaan paketteihin tulee lähinnä tietoturva- ja bugikorjauksia. Sen ei pitäisi epäonnistua juuri koskaan.


Suurin yksittäinen harmi asennuksissa on ollut php:n ja JS:n kaltaisissa paketeissa. Mitään varoittamatta uudemmasta versiosta on pudotettu jotain käskyjä pois tai parametrien järjestys on muuttunut. Tämän tuloksena on saanut käydä läpi koko webbiserverinsä etsien, mikseivät sivustot toimi, kun ne vielä eilen toimivat.

Niin, kehitys kehittyy ja ohjelmoijan on seurattava sitä. PHP:n ja muiden kielten tai sovelluskehysten osalta kannattaa pitäytyä vakaissa ja pitkään tuetuissa versioissa, jotta hyppäyksiä uuteen versioon tulee mahdollisimman harvoin.


Eikö distrojen välisiä  muutoksia voisi pitää hallittuina ja harkittuina siten, että korvattaisiin osa kerrallaan ?

En itse näkisi jakelun osittaista päivittämistä kovin järkevänä, eikä se ainakaan ole helposti toteutettavissa jakelun kehittäjien kannalta. Helpompaa päivittää kertarysäyksellä koko paketti 4 - 5 vuoden välein. Jos haluat pidemmän tukiajan, kannattaa siirtyä punahattuleiriin Centosin tai kaupallisen Red Hat EL:n käyttäjäksi. Niitä tuetaan jollain tasolla 10 vuotta, missä ajassa javascript-kehityksessäkin ovat teknologiat ehtineet jo vaihtua pariin otteeseen.  :)


Erityisesti servereissä tämä on riesa. Pitäisi tehdä klooni-kone, johom tekisi päivityksen. Jos päivitys onnistuisi, voisi sen irrottaa verkosta, muuttaa sen nimi , tehdä korjaus DHCP:lle ja vaihtaa koneet lennossa.

Kyllä. Tällainen on suositeltavaa.


Lisäys: Suosittelen tutustumaan Dockeriin ja mikropalveluihin. Niitä käyttämällä on helpompaa vakioida, ylläpitää ja päivittää palvelinasennuksia, etenkin jos eri sovellukset vaativat erilaisia versioita kirjastoista tai sovelluskehyksistä. Tämäkään ei poista sitä ongelmaa, että Dockerissa ajettavien palvelujen imaget täytyy myös pitää tietoturvan osalta ajan tasalla, ja niissäkin tulee lopulta versiohyppäyksiä, kun vanhan tuki loppuu. Imaget ovat kuitenkin parhaimmillaan hyvin yksinkertaisia verrattuna kokonaiseen jakeluun, ja niitä voi testata irrallaan samalla tai toisella tietokoneella ennen tuotantoon vientiä. Testatun imagen vaihtaminen käyttöön onnistuu sitten hyvin toteutettuna sekunneissa.
« Viimeksi muokattu: 26.09.18 - klo:16.28 kirjoittanut nm »

Mistofelees

  • Käyttäjä
  • Viestejä: 643
    • Profiili
Vs: distro upgrade
« Vastaus #2 : 26.09.18 - klo:23.11 »
Tarkoitin 16.04 -> 18.04
- Sisäisiä päivityksiä tulee ajettua päivittäin taustalla.

- M$Windowsin päivitykseen kulunut aika riippui siitä, paljonko koneessa oli dataa ja käyttäjiä. Windowsissa kun ei ole selkeää /home ja /etc hakemistoa, jotka voi kääriä talteen, eikä kaikilla ole käytössä verkkolevyjä.

- Juuri tuo, että jokseenkin kaikki muuttuu kerralla, kasvattaa todennäköisyyttä, että kaikki ei mene putkeen. Pienikin murenema voi teettää töitä tuntikausia.
(Itsekin suosin asennuksia puhtaalla pöydällä, mutta joskus ei vaan voi)

- PHP:n päivitys uudempaan tuli keväällä eteen järjestelmäpäivityksessä. Samalla osa sivuista katosi. Syyksi löytyi split(), jonka tilalle tuli explode(). Syytä en keksi, mutta se teetti työtä. Kun hallinnassa on muutamia satoja käsin rakennettuja sivuja, tähän meni tunteja. JS:n versiomuutokset teettivät aina valtavasti työtä. Osa hallinnon ohjelmista pyöri vanhalla versiolla, osa uudella ja versioiden saaminen toimimaan samoissa koneissa vaati temppunsa. Ja asiakkaat odottivat, koska palkanlaskenta saa hommansa tehtyä.

Lisäykseen:
Ylläpitotyökalut ovat kehittyneet samoin, kuin järjestelmätkin. Viime aikoina ihan merkittävää vauhtia. Paljon on silti vielä tilaa kehitykselle. Onneksi ei tarvitse enää leipätyökseen ylläpitää koneita. Jäljellä on vain harrastepohjalla muutamia pienempiä järjestelmiä.

Mistofelees

  • Käyttäjä
  • Viestejä: 643
    • Profiili
Vs: distro upgrade
« Vastaus #3 : 01.10.18 - klo:11.55 »
Nyt on sitten 18.04 toiminut koneessa melkein viikon ja sain pikkuvirheet nokittua läpi.
Tänään oli ilmoitus odottamassa, että kone pitäisi bootata.
No minähän boottasin. Seurauksena se, että php7.0 katosi koneesta ja sen mukana kaikki paketit, joita olen siihen lataillut, eivätkä webbisivut toimi.
Kaiken lisäksi apt-get:ltä tulee ilmoitus, että koneessa on jo tuorein versio php:stä, vaikka se ja kaikki sen tuetut apupaketit ovat kadonneet.

Taas aloitetaan nokkiminen alusta.

MIkä h*"#¤%&/ älyväläys tämäkin nyt taas on ?
Voihan p*(/Q#*
« Viimeksi muokattu: 01.10.18 - klo:12.01 kirjoittanut Mistofelees »

nm

  • Käyttäjä
  • Viestejä: 16285
    • Profiili
Vs: distro upgrade
« Vastaus #4 : 01.10.18 - klo:12.22 »
Kuulostaa varsin erikoiselta, ellet ole asentanut jostain jakelun ulkopuolisista lähteistä, mihin versio 7.0 hieman viittaa. Ubuntu 18.04:n PHP on 7.2.

Mitä php-paketteja järjestelmään on asennettu dpkg:n mukaan?

Koodia: [Valitse]
dpkg -l | grep php
Missä katoaminen täsmälleen ilmenee? Apachen mod-php:ssä (libapache2-mod-php7.2), FastCGI:ssä (php7.2-fpm) vai CGI:ssä (php7.2-cgi)

Mistofelees

  • Käyttäjä
  • Viestejä: 643
    • Profiili
Vs: distro upgrade
« Vastaus #5 : 01.10.18 - klo:20.10 »
Paketti oli tosiaan php 7.2, eikä 7.0, kuten olin vahingossa kirjoittanut
dpkg -l|grep php
ii  php            1:7.2+60ubun all          server-side, HTML-embedded scripti

Erikoiselta tämä alkaakin tuntua. Ja toisaalta hyvin tutulta. Tuntuu siltä, että joka kerta, kun tulee joku vähäkään isompi päivitys, Apache ja/tai php murenee.

Aamulla sivusto toimi OK

apt-get dist-upgraden ja boottaus
=> ei toimi nettiselaimella, mutta toimii komentorivillä. Jotain on siis taas rikki Apache2:n asetuksisssa
Kiroilua ja järjestelmän tutkimista.

Sain systeemin  lopulta toimimaan, kun poistin Apache2 ja pinseteillä poimien kaikki php-paketit, väliin autoremovea. Apache2:n ja php7.2 uusi asennus, kokeilu ja poisto ja vielä kerran koko kierros.
Lopulta jotain loksahti kohdalleen ja nyt taas toimiii.

Ei pienintäkään aavistusta, mitä tapahtui, mutta asennus useampaan kertaan korjasi tilanteen.
Nyt pääsen lataamaan puuttuvat php-paketit ja korjaamaan webbisivut, joita tuli puukotettua hässäkän aikana. Ikävintä on, että vika tuli ensimmäisenä ilmi kohtalaisen ison grafiikkaa sisältävän sivuston kohdalla, jota olen rakentanut koko viime viikon. Epäilin vian olevan siinä ja aloin puukottaa. Nyt pitää karsia kaikki puukotuksensa ;(
« Viimeksi muokattu: 01.10.18 - klo:20.14 kirjoittanut Mistofelees »

nm

  • Käyttäjä
  • Viestejä: 16285
    • Profiili
Vs: distro upgrade
« Vastaus #6 : 01.10.18 - klo:20.25 »
Erikoiselta tämä alkaakin tuntua. Ja toisaalta hyvin tutulta. Tuntuu siltä, että joka kerta, kun tulee joku vähäkään isompi päivitys, Apache ja/tai php murenee.

Suosittelen Dockerisointia. Huomattavasti helpompaa testata päivityksen vaikutusta ja tarvittaessa palata edelliseen toimivaan versioon. Samalla myös konfiguraatiomuutokset ja kaikki pienet säädöt tulee laitettua versionhallintaan, jolloin ongelmien selvittely on mukavampaa.
« Viimeksi muokattu: 01.10.18 - klo:20.28 kirjoittanut nm »

Mistofelees

  • Käyttäjä
  • Viestejä: 643
    • Profiili
Vs: distro upgrade
« Vastaus #7 : 01.10.18 - klo:21.14 »
Pitänee tutustua. Nämä minun touhuni ovat niin pienimuotoisia ja vasemmalla kädellä hoidettuja, että olen koittanut vältellä uusien työkalujen opettelua. Raskaaksi kyllä käy tälläinen räpeltäminenkin.

Vieläkin on jotain rikki. Perus sivustot toimivat, mutta phplottia käyttävät sivut kieltäytyvät yhteistyötä selaimella. Toimivat kyllä komentorivillä.
Lisäys: repesi käyntiin, kun tyhjensin /var/log/apache:n ja tein "service apache2 restart". Restart oli varmaan 4. tai 5. kerta.
« Viimeksi muokattu: 02.10.18 - klo:00.07 kirjoittanut Mistofelees »

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: distro upgrade
« Vastaus #8 : 02.10.18 - klo:08.01 »
Pitänee tutustua. Nämä minun touhuni ovat niin pienimuotoisia ja vasemmalla kädellä hoidettuja, että olen koittanut vältellä uusien työkalujen opettelua. Raskaaksi kyllä käy tälläinen räpeltäminenkin.
...

Et kerro oletko oikea- vai vasenkätinen.
Jos olet oikeakätinen niin suosittelen opettelemaan perusjutut kunnolla, ja sen jälkeen ne pikkujututkin "oikealla kädellä".

Kokeilut ja kikkailut ovat sitten oma kuvionsa - vallan mainioita kohteita erilaiseen räpeltämiseen ;)

Ville Pöntinen

  • Käyttäjä
  • Viestejä: 2078
    • Profiili
Vs: distro upgrade
« Vastaus #9 : 02.10.18 - klo:20.45 »
"Distro upgradeen menee helposti 10-12 tuntia ja lopputuloksena olen joka kerta joutunut asentamaan kuitenkin puhtaalta pöydältä."

Pakko sanoa, että toi kuulostaa todella pitkältä ajalta. Mä olen työpöytäkäytössä olevaa Ubuntua päivittänyt ~15 vuotta, välillä tietysti asennettu uudestaan, mutta koskaan päivitys ei ole kestänyt noin kauaa. Vain kerran päivitys veti systeemin korjaamattomaan tilaan. Mulla kyllä ei ole kuin perusjutut (liittyen esim. ohjelmointiin, virtuaalikoneisiin tms) asennettuna. Yleensä mun uudelleenasennukset on aina littyneet siihen, että olen päivittänyt koneen tai kiintolevyn jne.

Tässä ketjussa ei nyt siihen vedottu, mutta yleisesti väite, että päivittäminen kerää sitä "tauhkaa" jonnekin ja se hidastaa konetta on musta höpöhöpöä... Päivittäminen, useimmiten, säilyttää vanhat asetukset ja säästää siten aikaa. Ohjelmien asentaminen uudelleen on nopeata, mutta noi asetukset jne vie aikaa pirusti, jos joutuu asentamaan kaiken alusta.

Palvelimen asennankin aina uudelleen, aikaa siihen pitääkin sitten varata, kaikki pitää varmuuskopioida, tarkistaa uuden version ohjelmien yhteensopivuudet etukäteen jne...