Migrering av e-postsystem

Ved migrering av eksisterande eit e-postsystem som Cerebrum allereie populerer med informasjon, kan ein ha behov for å migrere enkeltbrukarar og ikkje flytte alle i samme omgang. Migreringa kan foregå frå IMAP til Exchange, eller mellom ulike Exchange-versjonar. Instansen må gjere sjølve flyttinga, men sidan Cerebrum synkroniserer informasjon treng den å bli oppdatert undervegs i prosessen.

Kor mykje Cerebrum er involvert i ei migrering avhenger av kor mykje e-postinformasjon Cerebrum administrerer og synkroniserer. Det Cerebrum kan ha av e-postinformasjon om ein brukar:

  • Adresser brukaren er definert med. Dette lagrast i e-postmodulen.
  • Kva server e-postinnboksen ligg på. Adressa kan peike på ein IMAP- eller Exchange-server. Dette kan lagrast i eit trait for kvar brukar. For exchange kan AD-attributtet msExchHomeServerName brukast for eldre Exchange-versjonar, endå tidlegare versjonar hadde dette i homeMDB.
  • For Exchange: Kva mail database (mdb) på serveren som innboksen ligg på. Dette kan lagrast i eit trait for kvar brukar. Dette ligg i AD-attributtet homeMDB. Nøyaktig format varierer mellom Exchange-versjonar.

UiA har allereie hatt behov for å både migrere frå IMAP til Exchange og seinare også mellom ulike Exchange-versjonar (desember 2010, rev 13562:13575). Framgangsmåten som vart brukt då er utgangspunktet for dette dokumentet.

Migrering frå IMAP til Exchange

Migrering av ein brukar mellom to ulike system:

  1. Sett e-postmottaket til brukaren i pause, og ver trygg på brukaren ikkje er pålogga. Dette for å unngå at data ikkje kjem med i migreringa.
  2. Kopier over e-postdata frå gamalt til nytt system.
  3. I Cerebrum: Fjern spread frå gamalt e-postsystem (IMAP)
  4. I Cerebrum: Legg til spread til nytt e-postsystem (Exchange). Dersom Cerebrum administrerer e-postinformasjon, må du også endre kva server brukaren sin innboks ligg på.
  • Neste synk til Exchange oppdaterer brukaren sin innboks med riktig informasjon. Merk at ein tom innboks vert oppretta dersom Cerebrum ser på feil server eller brukaren ikkje er blitt migrert riktig.
  • Neste synk til IMAP vil fjerne eller sperre brukaren.

Migrering mellom Exchange-versjonar

Dersom ein skal migrere frå eit eldre exchange-system til eit nyare:

  1. Sett e-postmottaket til brukaren i pause, og pass på at brukaren ikkje er pålogga. Dette for å unngå at data ikkje kjem med i migreringa.
  2. I Cerebrum: Sett brukaren som under migrering, og endre mdb og evt. også andre Exchange-verdiar for brukaren. Dette kan til dømes gjerast med ein bofh-kommando, eller så kan Cerebrum drift gjere det via e-post eller telefon. Døme:
    jbofh> user migrate_exchange USERNAME "mailbox25"
    OK, mdb stored for user USERNAME

    Dette endrar mdb for brukaren, og hindrar brukaren i å bli synkronisert med AD fram til migreringa er over.
  3. I AD: Migrer mailboksen til brukaren til nytt system.
  4. Når migreringa er utført på AD-sida: Marker brukaren som ferdig migrert i Cerebrum. Dette kan gjerast med bofh-kommandoen:
    user migrate_exchange_finished username.
  5. Ved neste AD-synk vil då msExchHomeServerName og homeMDB bli synkronisert til AD for brukaren. Døme:
    • msExchHomeServerName = "/o=UiO/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=EXCHKRS02"
    • homeMDB = "CN=mailbox25,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=UiO,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=uio,DC=no"

Merk: Dersom den nye Exchange-versjonen krever endringar i AD-attributtar og/eller formatet på dei, treng Cerebrum ein konkret definisjon på dette. Hvis ikkje vil synken prøve å oppdatere ferdig migrerte brukarar akkurat som før, berre med ein annan homeMDB.

Bofh-kommandoar

Det er ulike måtar å utføre migreringa på. Eit alternativ er at instansen ringer eller sender e-post til Cerebrum drift om kven og når ein brukar skal migrerast, men eit meir effektivt alternativ er at instansen får tilgang til bofh-kommandoar direkte.

Kva bofh-kommandoar som er relevante for e-postmigreringa:

  • email exchange_migrate(username): For migrering frå IMAP til Exchange:
    1. Fjerner IMAP-spread
    2. Set Exchange-spread om det ikkje allereie eksisterer.
    3. Endrer kva server brukaren sin innboks ligg på til ein predefinert server. Merk at vi må definere kva den predefinerte serveren skal vere før denne kommandoen kan brukast.
  • email move(username, server): For å flytte ein brukar sin innboks frå ein server til ein annan. Denne kommandoen fungerer likt uavhengig av kva system e-post vert behandla i, men sjølve flyttinga fungerer ulikt etter korleis synkroniseringsjobben fungerer for det systemet brukaren ligg i. Alt denne kommandoen gjer, er å sette kva server som skal oppdaterast med e-postinformasjon. Neste synkronisering vil då peike brukaren mot gitt server. Denne kommandoen kan berre brukast dersom det ikkje trengs migrering, om e-postsystemet tek seg av migreringa automatisk, eller om admin kan gjere dette i bakgrunnen.
  • user migrate_exchange(username, mdb): For å migrere frå ein mdb til ein annan, som gjerne kan vere i ein annan versjon. Sjølve flyttinga må gjerast utanfor Cerebrum, i AD/Exchange, dette set berre kva mdb Cerebrum skal oppdatere med informasjon om brukaren. Admin må først køyre denne kommandoen slik at brukaren ikkje vert synkronisert meir, deretter flytte brukaren, og så markere flyttinga som utført med user_migrate_exchange_finished. Kva kommandoen utfører:
    1. Sjekker at mdb er ein gyldig string (cereconf.EXCHANGE_HOMEMDB_VALID).
    2. Set ny mdb i trait for brukaren.
    3. Set også trait "under_migration", for å markere at brukaren er under migrering og skal ikkje rørast av AD-synken.
  • user_migrate_exchange_finished(username): Markerer at ei flytting av ein brukar til ein ny mdb er fullført.
    1. Fjerner trait "under_migration", for å markere at brukaren kan synkronisert att.
    2. Set trait "migrated", for å markere at brukaren er blitt migrert. Dette trengs ikkje nødvendigvis av alle instansar, då den avhenger av om ny Exchange-versjon er bakoverkompatibel eller ikkje.

Forberedingar i Cerebrum for Exchange

Før Cerebrum kan synkronisere mot Exchange, eller nye Exchange-versjonar, må det gjerast nokre endringar. Merk at det kan vere behov for også andre endringar, då instansar kan ha lokale variantar av AD-synken.

Cereconf

  • EXCHANGE_HOMEMDB_VALID: treng å oppdaterast med gyldige, nye databasar. Lista kan innehalde både nye og gamle mdb. Den brukast for å validere gitt mdb når ein set ein mdb for ein brukar, til dømes gjennom bofh. Denne konstanten brukast ikkje når mdb allereie er satt for ein brukar.

Konstantar

Konstantar som må oppdaterast for instansen. Med den gamle AD-synken må vi lagre migreringsinformasjonen i traits, for den nyare må vi oppdatere AD-tabellane med nye verdiar.

  • trait_exchange_mdb (Cerebrum.modules.no.Constants): Trait for å lagre mdb per brukar, lagrast berre som ein enkel string. Dette må settast opp for kvar brukar som skal synkroniserast.
  • trait_exchange_under_migration (må definerat i instansen sin eigen Constants): Trait for å markere at brukaren er under migrering: Dersom trait for migrering er satt på ein brukar skal Exchange-synken ignorere brukaren. . TODO: nøyaktig kva vil skje?
  • trait_exchange_migrated: Dersom den nye Exchange-versjonen treng andre AD-attributtar enn den tidlegare versjonen, treng vi å kunne skille ut ferdig migrerte brukarar. Dette kan vi gjere med eit trait.

AD-synkroniseringa

AD-synkroniseringa må utvidast til å ta hensyn til brukarar under migrering, ved å ikkje endre exchange-attributta i AD. Cerebrum-instansane bruker ulike variantar av AD-synkar, så akkurat korleis dette løysast er ikkje beskreve her. Som eit utgangspunkt kan du sjå kva som er blitt gjort i UiA sin AD-synk med:

svn diff -r13561:13576 Cerebrum/modules/no/hia/ 

Kva synken grovt sett må gjere:

  1. Lage ei liste over  alle brukarar som er markerte til å vere under migrering.
  2. Alle brukarar under migrering skal bli ignorerte vidare i synken. Ingen AD-attributtar skal bli endra på. Merk at dette gjeld også ved nedgradering (sperring, deaktivering, flytting og/eller sletting), så det er viktig å sjekke at synken berre ikkje sperrer brukarar under migrering, sidan dette kjem på slutten, etter oppdateringa av brukarar.
  3. Dersom det er skilnad på Exchange-versjonane må synken ta hensyn til nye homeMDB-format og eventuelt også andre attributtar for dei brukarane som er markerte som ferdig migrerte.
Av jokim
Publisert 30. apr. 2013 20:54 - Sist endret 6. mai 2013 05:50