Liigu sisu juurde

Isoleerimine

Rudel on päringuga valitav ülekatete süsteem. Valitud päring kasutab liivakasti andmebaasi tabeleid ja liivakasti teemafaile, kuid käivitub endiselt hosti WordPress installi kaudu.

Iga liivakasti eraldatus

WordPress tabelid

Iga liivakast saab genereeritud tabeli eesliite: hosti eesliide pluss liivakasti ID MD5 esimesed seitse kuueteistkümnendmärki.

Text
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users

Rudel vahetab tabeli WordPress enne, kui WordPress on käivitumise lõpetanud, nii et liivakasti päringu iga päring loeb liivakasti koopiaid ja kirjutab nendesse.

Kasutajad

Tabelid users ja usermeta kloonitakse koos ülejäänutega. Liivakast alustab loomise hetkel hosti kasutajate ja paroolidega; hiljem liivakastis loodud, muudetud või kustutatud kasutajad hosti ei mõjuta ning hostis tehtud muudatused liivakasti ei jõua.

Aktiivse teema failid

Valitud teema kopeeritakse liivakasti kataloogi:

Text
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}

Kui teema on alateema, kopeerib Rudel ka emateema, et mallide seos jääks kehtima. Liivakast kasutab alati loomise ajal salvestatud teemat; teemade vahetamine liivakastis ei avalda mõju.

Hostiga jagatud

  • WordPress tuum
  • pluginafailid
  • üles laaditud meediafailid

Hostis installitud või uuendatud plugin installitakse või uuendatakse kõigi liivakastide jaoks. Aktiivsete pluginate loend salvestatakse valikute tabelis, seega on aktiveerimisolek iga liivakasti puhul eraldi. Liivakastis üles laaditud failid satuvad hosti üleslaadimiste kataloogi. Nii on liivakastide loomine kiire ja välditakse WP_CONTENT_DIR globaalset asendamist.

Hoidke Rudel aktiivsena igas liivakastis. Selle e-posti blokeerimine ja teemade ülekate töötavad plugina kaudu ning selle desaktiveerimine valitud liivakasti ajal eemaldab jagatud failist wp-config.php ka algkäivituse rea, lülitades liivakasti valimise kogu installis välja (probleem nr 13).

Liivakasti valimine

HTTP päringud valivad liivakasti järgmise kaudu:

  • päis X-Rudel-Environment (vana alias X-Rudel-Sandbox)
  • küpsis rudel_environment (vana alias rudel_sandbox)

Rudel ei määra ega kustuta kunagi küpsist. Hosti naasmiseks kustutage see; haldusriba üksus Liivakast lingib hosti URL-ile, kuid jätab küpsise alles (probleem nr 10).

WP-CLI käsud valivad liivakasti järgmise kaudu:

  • keskkonnamuutuja RUDEL_ENVIRONMENT
  • --url, mille host algab liivakasti ID-ga, näiteks --url=http://alpha-3be7.example.test

Valijat ei autentita. Iga saitile ligi pääsev klient, kes saadab kehtiva liivakasti ID, saab selle liivakasti ning liivakasti ID-sid (nimi pluss neli kuueteistkümnendmärki) on lihtne ära arvata. Ärge käsitlege liivakasti valimist juurdepääsupiirina; kaitske avalikku hosti veebiserveri või võrgu tasandil.

Päringu vaikeväärtused

Valitud päringu puhul Rudel:

  • blokeerib väljamineva e-posti pre_wp_mail filtri kaudu
  • määrab WP_TEMP_DIR liivakasti tmp kataloogiks
  • määrab WP_CACHE_KEY_SALT liivakastipõhise väärtuse, et püsivate objektide vahemälud hoiaksid liivakastide võtmed lahus
  • võimaldab WP_DEBUG logimise liivakasti debug.log-i ning liivakasti ID-st tuletatud autentimisvõtmed ja soolad

Algkäivitus määrab kõik need konstandid ainult siis, kui wp-config.php pole neid juba määranud. Tavaline wp-config.php määrab WP_DEBUG ning kõik võtmed ja soolad, seega kasutavad liivakasti päringud sellises installis hosti silumisseadet ning hosti võtmeid ja soolasid (probleem nr 4). Kuna ka kasutajad kloonitakse, võib hosti sisselogimisküpsis kehtida liivakastis.

Käitusaja metaandmed

Rudel käitusaja metaandmed jäävad hosti WordPress MySQL tabelitesse:

Text
wp_rudel_environments
wp_rudel_worktrees

Need tabelid on Rudel tõeallikas. Keskkondade kataloogid sisaldavad hallatavaid faile ja artefakte, mitte käitusaja registri olekut.