Innhold
1 Før du begynner
Dokumentet kan oppdaterast om du oppdager feil undervegs i testinga, til dømes om det er feil rekkefølge på visse jobbar.
Vi har splitta opp jobbane i importar, eksportar og jobbar som ikkje kan testast før vi begynner prodsettinga. Sjå Sleggemetoden [PDF] for korleis testprosessen utførast.
Nokre jobbar er blitt utelatte frå testinga, til dømes statistikk og rapportar som sendast ut på e-post. Desse skal fungere, og har liten risiko om dei vert feil første gangen etter oppgradering.
Kommandoane for å køyre dei ulike jobbane finn du i scheduled_jobs.py. Du kan, for dei instansane som har fått dette lagt til, kunne køyre:
python scheduled_jobs.py -v
For å bl.a. liste ut alle jobbar sine parameter. Legg til -h for meir info.
2 Instansane
2.1 NIH
2.1.1 Importar
- FS_merge_xml
- FS_update_fnr
- FS_import_OU
- FS_import_FS
- process_students
- deactivate_quarantined_accounts - dryrun og sjekk logg.
- SAP_import_ou_id
- SAP_import_person
- SAP_process_affiliations
2.1.2 Eksportar
- Cristin-eksport
- OrgLDIF
- Bofhd - start og køyr nokre enkle kommandoar.
AD-synkar må testast i dryrun når ein går i prod - sjekk av loggfil.
2.1.3 Test ved prodsetting
- ABC-eksport
- FS_import_from_FS - samanlikn filer ved prodsetting, skal vere like.
- Individuation
- update_FS_mailadr, sjekke logg ved dryrun.
- AD
2.2 Giske
Obs: Giske liknar på ØFK, men er mykje mindre, så denne treng vi ikkje å køyre eige testmiljø for.
2.2.2 Eksportar
- OrgLDIF
- Bofhd - start og køyr nokre enkle kommandoar.
2.2.3 Test ved prodsetting
- AD, quick og fullsynk. Obs: Har vore nede ei god stund no, så får ikkje verifisert om det fungerer eller ikkje.
2.3 HiH
Obs: Denne instansen skal ikkje vere nødvendig å køyre testopplegget for, då den har lite som er unikt for seg. Er feil blitt fiksa hos dei andre, skal denne også mest truleg vere ok, og kan heller berre testast når ein går i produksjon.
2.3.1 Importar
- FS_merge_xml
- FS_update_fnr
- FS_import_ou
- FS_import
- process_students
- deactivate_quarantined_students
- pop_fronter_groups
- SAP_import_ou_id
- SAP_import_person
- SAP_process_affiliations
- set_lms_spread_ans
- set_lms_spread_stud
- set_bewator_spread_ans
- set_bewator_spread_stud
- set_bewator_spread_tilk
2.3.2 Eksportar
- ABC_generate_export
- bewator_generate_files
- Cristin
- gen_fronter
- generate_entitlements_pickle - kan sjekke pickle-fila ved å køyre python inline, importere dei med pickle.loads() og køyre djupare samanlikning.
- OrgLDIF
- ldif_generate_users
- Bofhd - start og køyr nokre enkle kommandoar.
2.3.3 Test ved prodsetting
- AD, full og quick, grupper, distribusjonsgruppe. Obs: Mange ulike domener!
- individuation
- update_fs - dryrun, sjekk logg.
- FS_import_from_fs - samanlikn filer ved prodsetting, skal vere like.
- sap_data_to_fs (hr2fs-person.py) - dryrun, sjekk logg.
2.4 HiNesna
2.4.1 Importar
- FS_merge_xml
- FS_update_fnr
- FS_import_ou
- FS_import
- generate_acounts_from_FS
- SAP_import_ou_id
- SAP_import_person
- SAP_process_affilations
- generate_accounts_from_SAP
- send_welcome_sms: Obs: berre i dryrun, elles står du i fare for å sende ut SMS om du har tilgang til SMS-gatewayen frå testmiljøet.
2.4.2 Eksportar
- Bofhd - start og køyr nokre enkle kommandoar.
- OrgLDIF
- ldif_samson3_generate
2.4.3 Test ved prodsetting
- individuation
- FS_import_from_fs - samanlikn filer ved prodsetting, skal vere like.
2.5 HiØ (hiof)
2.5.1 Importar
- merge_fs_xml
- update_fnr
- import_ou
- import_fs
- process_students
- import_sap_ou_id
- import_sap_person
- process_sap_affs
- sap_sync_auto_groups
- process_ad_attrs
- process_ad_spread_adm
- process_ad_spread_fag
- process_ad_spread_stud
- process_ad_spread_adm_rep
- process_ad_spread_fag_rep
- process_ad_spread_stud_rep
- send_welcome_sms: Obs: berre i dryrun, elles står du i fare for å sende ut SMS om du har tilgang til SMS-gatewayen frå testmiljøet.
- pop_fronter_groups
- quar_accounts OBS OBS OBS! Kjør med dryrun argument! (-d eller --dryrun (les koden)), ellers sender du masse mail!!
- deactivate_accounts
2.5.2 Eksportar
- cristin_generate_file
- Bofhd - start og køyr nokre enkle kommandoar.
- generate_email_dump
- gen_fronter_xml
- OrgLDIF
- ldif_users
2.5.3 Test ved prodsetting
- Individuation
- abc_generate_file
- import_from_fs - samanlikn filer før og etter oppgradering, skal vere like.
- update_fs - dryrun, sjekk logg
- AD. Obs: mange domener.
2.6 NMH
2.6.1 Importar
- merge_fs_xml - Filer[#nmh_dump]_: person.xml, nettpublisering.xml
- update_fnr - Fil[#nmh_dump]_: fnr_update.xml
- import_ou - Fil[#nmh_dump]_: ou.xml
- import_fs - Filer[#nmh_dump]_: studieprog.xml, emner.xml
- process_students
- SAP_import_ou_id - Fil[#nmh_dump]_: ou.xml
- SAP_import_person - Fil[#nmh_dump]_: feide_persondata.txt
- SAP_process_affs - Filer[#nmh_dump]_: feide_persondata.txt, feide_persti.txt
- SAP_import_utvalg - Fil[#nmh_dump]_: feide_perutvalg.txt
[1] | Filene hentes fra produksjonsmiljø før import startes |
2.6.2 Eksportar
- ldif_org
- Bofhd - start og køyr nokre enkle kommandoar.
2.6.3 Test ved prodsetting
- FS_import_from_fs - samanlikn filer ved prodsetting, skal vere like.
- update_fs - dryrun, sjekk logg
- export_abc
- generate_lms_export_file
- Individuation
- AD sync (ad_user_sync, ad_pwd_sync, ad_group_sync)
2.7 Øfk
2.7.1 Importar
- import_abc_data: Fil[#ofk_dump]_: abc_enterprise-ofk.xml
- process_entity
- update_ou_groups ?
- db_clean_changelog?
[2] | Filene hentes fra produksjonsmiljø før import startes |
2.7.2 Eksportar
- Bofhd - start og køyr nokre enkle kommandoar.
- gen_fronter
- make_kvern_file
- ldif_org
2.7.3 Test ved prodsetting
- AD sync (ad_usersync, ad_pwdsync, ad_groupsync)
- Individuation
2.8 WebID
WebID treng ikkje å køyre i test, men kan testast direkte når den går i produksjon. Instansen er såpass liten, og tåler noko meir nedetid enn dei andre tenestene.
2.8.1 Test ved prodsetting
- grim_reaper
- ldif_all
- bofhd - start og køyr nokre enkle kommandoar
- CIS: SoapGroupPublish - start, sjekk at den køyrer
- CIS: SoapVirthomeServer - start, sjekk at den køyrer
2.9 UiA
2.9.1 Importar
- merge_fs_xml - Fil[#uia_dump]_: person.xml
- update_fnr - Fil[#uia_dump]_: fnr_update.xml
- import_ou - Fil[#uia_dump]_: ou.xml
- import_fs - Fil[#uia_dump]_: studieprog.xml
- process_students
- populate_external_groups
- SAP_import_ou_id - Fil[#uia_dump]_: ou.xml
- SAP_import_person - Fil[#uia_dump]_: feide_persondata.txt
- SAP_process_affs - Filer[#uia_dump]_: feide_persondata.txt, feide_persti.txt
- populate_auto_groups
- terminate_old_guests
- update_affiliation_groups
- process_deleted
- clean_cl
[3] | Filene hentes fra produksjonsmiljø før import startes |
2.9.2 Eksportar
- bofhd - start og køyr nokre enkle kommandoar
- cristin_generate
- abc_generate_file
- generate_fronter_file
- ldif_mail
- ldif_org
- ldif_posix
- ldif_radius
- gen_passwd
- gen_group
- gen_ng_user
2.9.3 Test ved prodsetting
- AD sync (ad2_usersync, ad2_passwordsync, ad2_groupsync, ad_maillistsync, ad_guestsync)
- Individuation
- send_welcome_sms -- i dryrun, sjekk logg
- update_fs - dryrun, sjekk logg
2.10 UiO
2.10.1 Importar
- FS_merge_fs_xml
- update_fnr
- FS_import_fs
- FS_import_fs_pq_data
- process_students
- SAP_convert_file
- SAP_import_ou
- SAP_import_persons
- SAP_update_employees
- SAP_sync_auto_groups
- import_folk_URLs
- quota_calc
- email_server_weights
- update_publication_reservations
- dns_subnet_import
- ephorte_symlink_steder
- ephorte_populate
- LMS_build_groups_from_fs
- process_bofhd_request - berre at den starter og avslutter, vanskeleg å teste
den skikkeleg utan aktivitet, så det må gjerast etter prodsetting.
- release_guests
- db_clean_passwords
- db_clean_changelog
- tag_student_disks
2.10.2 Eksportar
Bofhd - start og køyr nokre enkle kommandoar
cis_individuation - Køyr mot testmiljø, w3utv-ws01.
bofhd_epay - Treng å få Nettskjema-folka til å få testa denne.
pq - Dette er ein "webservice". Treng å få utskrift-drift til å få testa og verifisert at denne fungerer som den skal.
DNS-drift må verifisere output frå visse jobbar, dersom det er endringar:
- dns_dhcp_generate_dump
- dns_build_uio_no
- dns_build_129_240
- dns_build_2001_0700_0100
- dns_build_trofast_uio_no
- dns_build_151_157
- dns_build_158_36
- dns_build_193_157
- dns_build_ping
unix-drift må verifisere output frå enkelte jobbar, dersom det er endringar:
- dns_nis_mng
- dns_nis_hosts_map
- nis_gen_passwd
- nis_gen_group
- nis_gen_ng_user
ecommerce_gen_export - BASWARE må verifisere eventuelle endringar.
ephorte_generate_export - Arkiv må verifisere eventuelle endringar, men då treng vi i så fall å synke til testmiljøet deira.
ephorte_symlink_export - Arkiv må verifisere eventuelle endringar, men då treng vi i så fall å synke til testmiljøet deira.
cristin_generate_file
fronter_generate_full - Ved endringar i output må DML (td. Knut Augedal) verifisere at endringane er ok. Dette gjerast ved at dei oppretter eit testmiljø hos fronter.com, og vi overfører XML-fila dit med tilhøyrande kode.
check_userdisks_gen_cache
hostpolicy_generate_dump - unix-drift må verifisere eventuelle endringar.
hpc_gen_group
hpc_gen_md5pwd
ifi_auto
ifi_gen_passwd
ifi_gen_group
ifi_gen_ng_user
ldif_group
ldif_org
ldif_posix
ldif_hostgroup
ldif_mail
ldif_mail_cyrus_hack
ldif_mail_dns
ldif_kurs
ldif_subnets
ldif_voip
ldif_automount
ldif_hosts
ldif_isf
medfak_generate_map_* (fleire jobbar her)
pwd_name_dictionary
generate_employee_ids
SAP_generate_BAS2SAP_exportfile
dump_sidegjoremal_data
money2paper
list_disk_quotas
ua_export
populate_valg
2.10.3 Test ved prodsetting
FS_import_from_fs - Sjå til at FS-filene ikkje har endra seg. Merk at FS endrer seg fort i arbeidstid, så du vil kunne få ein del endringar avhengig av kor lenge det var mellom pre- og post-oppgraderingsfiler.
update_fs - Køyr i dryrun og sjekk loggen for endringar.
FS_update_from_SAP - Køyr i dryrun og sjekk loggen for endringar.
AD: AD_usersync, AD_groupsync - Køyr i dryrun og sjekk loggen for endringar.
cis_individuation - Testast ved å gå til https://brukerinfo.uio.no/forgotten/ og legge inn både riktig og feil data. Treng tilgang til ein studentbrukar utan tilgangar for å teste at heile passordbytteprosessen, alternativt endre på koden for å få tilgang.
web_postmaster - kan sjekkast ved å gå til https://brukerinfo.uio.no/postmaster/ og hente ut ei liste eller to.
Ephorte-eksportar: Desse treng vi ikkje å teste dersom vi har verifisert at XML-filene produsert av ephorte-eksportane ikkje har forandra seg. Dersom det er endringar vil det kreve at vi koordinerer med Arkiv, eventuelt også trofast-drift.
- ephorte_sync_test - ePhorte sitt test-miljø, mest sannsynleg minst kritisk.
- ephorte_sync_kurs - For kursing, vil kunne testast når det ikkje går kurs.
- ephorte_sync_prod - Dei andre eksportane må ha blitt verifiserte først.
build_homedirs - Må be unix-drift om å verifisere at endringar på heimeområder fungerer etter oppgradering.
Notes - Fleire jobbar. Køyr i dryrun og sjekk loggar. Notes-drift må verifisere om notes-id-filer ser ok ut. Det er ikkje sikkert vi treng å teste dette, sidan vi har migrert frå Notes.
Exchange: Jo og postmaster bør sjå over dette. Mest sannsynleg ingen endringar, då det meste skal allereie vere i HEAD.
send_welcome_sms - dryrun først, sjekk loggen.
dbfg_update - Krever tilgang til prod-databaser. Køyr i dryrun først.
dbfg_expire - Krever tilgang til prod-databaser. Køyr i dryrun først.
2.10.4 Test etter prodsetting
- notify_change_password
- process_bofhd_request
- process_bofhd_req_mail
3 Felles
Tenester som må testast (meir) i produksjon:
- bofhd - Tenesta må startast, og du kan logge på med bootstrap_account og køyre ulike kommandoar.
- cis - Tenesta må startast, og tenesta som bruker den må gåast gjennom. For individuation til dømes må du gå til gløymd-passord-tenesta og legge inn både ekte og falske data og sjå at du får reelle resultat.
- AD-synk - AD-jobbar må startast i dryrun, og loggen må bli sett over for å sjå kva som eventuelt endrast. Det skal vere ingen eller minimalt med endringar.
- pq - printerquota-service på UiO - treng at dei som jobber med utskriftstenesta køyrer ein test mot denne under oppgradering.
- update_FS_mailadr - Sidan den gjer endringar i FS må den køyrast i dryrun. Sjekk loggen, skal vere ingen eller minimalt med endringar.
Tenester som må testast etter migrering:
- notify_change_password - køyrer ein gang i veka, så har nokre dagar på oss til å sjekke at denne er ok.
- BofhdRequest - Vanskeleg å teste utan å vere i produksjon.
3.1 Prodsettingsrutine
Ei felles sjekkliste som kan brukast for prodsetting av kvar instans.
Send e-post til instansen om at vi tek ned Cerebrum.
Varsle unix-drift si ukevakt om at vi tek ned instansen, så dei kan ignorere feil frå Nagios i perioden. TODO: Eller kan vi sjølv slå av Nagios-varsling midlertidig? Cerebrum drift kan dette. :)
Stopp instansen på vanleg måte, som beskreve i driftsrutinene. Vent til alt er nede. Ingen jobbar skal køyre for instansen.
Be DBA-drift om å ta ein kopi av databasen, i tilfelle vi må rulle tilbake.
Ta ein kopi av ~/src/cerebrum, så det vert enklare å eventuelt rulle tilbake.
Sjå til at det ikkje er lokale endringar i svn- og csv-trea. Desse bør enten bli reverterte eller bli sjekka inn.
Køyr alle importar og eksportar. Dette er beskreve i planen over. Ta vare på eksportfilene.
TODO: Skal vi lage ein sqldump, for å kunne samanlikne databasen også?
Køyr alle jobbar som ikkje kunne bli testa i testmiljøet, til dømes AD.
Køyr svn up og cvs up.
Installer filene med: setup.py.
Legg inn nye eventuelle konstantar med: makedb.py --update-codes
Køyr alle importar og eksportar på nytt. Pass på å ikkje overskrive tidlegare data. Samanlikn resultatet med gamle data.
Køyr i dryrun alle synkar som ikkje har kunne blitt køyrd i test. Sjå over loggen. Det skal vere minimalt med endringar.
Start bofhd på ein beskytta port, logg på og sjå til at dei viktigaste kommandoane fungerer.
Dersom alt er ok: Start Cerebrum-instansen att, som beskreve i driftsrutinene.
Send e-post til instansen om at Cerebrum er oppe att. Be dei også varsle oss om dei oppdager feil.
3.2 Prodsettingsrutine for UiO
For UiO må vi gjere litt meir ved oppgradering.
Send e-post til cerebrum-uio-varsel@usit.uio.no om at vi tek ned Cerebrum.
Legg ut eller oppdater driftsmeldinga.
Varsle unix-drift si ukevakt om at vi tek ned instansen, så dei kan ignorere feil frå Nagios i perioden. TODO: Eller kan vi sjølv slå av Nagios-varsling midlertidig? Cerebrum drift kan dette. :)
Stopp instansen på vanleg måte, som beskreve i driftsrutinene. Vent til alt er nede. Ingen jobbar skal køyre for instansen.
Be DBA-drift om å ta ein kopi av databasen. Dette så vi kan rulle tilbake i tilfelle problem.
Legg til en "Header" merknad i webklientfilene for brukerinfo/Glemtpassord tjenesten TODO: flere sluttbrukerorienterte tjenester som vi bør huske å flagge som nede på en høfelig måte og teknisksett mener ikke å huske hvordan dette skal gjøres: hvilken indeksfil skal endres midlertidig osv. .
Ta ein kopi av ~/src/cerebrum.
Sjå til at det ikkje er lokale endringar i svn- og csv-trea. Desse bør enten bli reverterte eller bli sjekka inn.
Køyr alle importar og eksportar. Dette er beskreve i planen over. Ta vare på eksportfilene.
TODO: Skal vi lage ein sqldump, for å kunne samanlikne databasen også?
Køyr alle jobbar som ikkje kunne bli testa i testmiljøet, til dømes AD.
Oppgrader miljøet og migrer git:
Køyr: cvs up ~/src/cerebrum_sites
Flytt mappa: mv ~/src/cerebrum ~/src/cerebrum.old
Køyr: svn up ~/src/cerebrum.old
Sjekk ut Git-repoet:
git clone https://utv.uio.no/stash/scm/crb/cerebrum.git ~/src/cerebrum
Sjå til at mappa ikkje differ frå ~/src/cerebrum.old. Det vil vere nokre skilnader i modular som AD2, men som ikkje er i bruk for UiO. Diffen kan sjåast med:
diff -rN ~/src/cerebrum ~/src/cerebrum.old
Installer Cerebrum med setup.py.
Legg inn nye eventuelle konstantar med: makedb.py --debug --update-codes
Køyr alle importar og eksportar på nytt. Pass på å ikkje overskrive tidlegare data. Samanlikn resultatet med gamle data.
Køyr i dryrun alle synkar som ikkje har kunne blitt køyrd i test. Sjå over loggen. Det skal vere minimalt med endringar.
Start bofhd på ein beskytta port, logg på og sjå til at dei viktigaste kommandoane fungerer.
Dersom alt er ok: Start Cerebrum-instansen att, som beskreve i driftsrutinene.
Send e-post til instansen om at Cerebrum er oppe att. Be dei også varsle oss om dei oppdager feil.
Skru på jobben notify_change_password i scheduled_jobs som var skrudd av (kommentert ut) for denne omgangen den skulle ha kjørt før vedlikeholdsvinduet i helgen.
TODO: Fyll ut med meir som må gjerast!