Eristäminen
Rudel on pyynnön perusteella valittava päällekkäisjärjestelmä. Valitussa pyynnössä käytetään eristysympäristön tietokantatauluja ja teematiedostoja, mutta pyyntö suoritetaan edelleen isännän WordPress-asennuksessa.
Eristetty kussakin eristysympäristössä
WordPress-taulut
Kukin eristysympäristö saa luodun taulujen etuliitteen: isännän etuliite ja eristysympäristön tunnuksen MD5-arvon seitsemän ensimmäistä heksamerkkiä.
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users
Rudel vaihtaa WordPress-taulujen etuliitteen ennen kuin WordPress on käynnistynyt, joten jokainen eristysympäristöpyynnön kysely lukee eristysympäristön kopioita ja kirjoittaa niihin.
Käyttäjät
Taulut users ja usermeta kloonataan muiden mukana. Eristysympäristössä ovat luontihetkellä isännän käyttäjät ja salasanat; sen jälkeen eristysympäristössä luodut, muutetut tai poistetut käyttäjät eivät vaikuta isäntään, eikä isännässä tehdyt muutokset siirry eristysympäristöön.
Aktiiviset teematiedostot
Valittu teema kopioidaan eristysympäristön hakemistoon:
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}
Jos teema on alateema, Rudel kopioi myös yläteeman, jotta mallipohjasuhde säilyy kelvollisena. Eristysympäristö tarjoaa aina luontihetkellä tallennetun teeman; teeman vaihtaminen eristysympäristössä ei vaikuta tähän.
Yhteiset isännän kanssa
- WordPress-ydin
- lisäosatiedostot
- ladatut mediatiedostot
Isännälle asennettu tai siellä päivitetty lisäosa asennetaan tai päivitetään jokaiseen eristysympäristöön. Aktiiviset lisäosat tallennetaan valintatauluun, joten aktivointitila on eristysympäristökohtainen. Eristysympäristössä tehdyt lataukset tallentuvat isännän lataushakemistoon. Näin eristysympäristön luonti pysyy nopeana eikä WP_CONTENT_DIR-asennusta tarvitse korvata maailmanlaajuisesti.
Pidä Rudel aktiivisena jokaisessa eristysympäristössä. Sen sähköpostin esto ja teemojen päällekkäisyys toimivat lisäosan kautta. Jos lisäosa poistetaan käytöstä eristysympäristön ollessa valittuna, myös jaetun wp-config.php-tiedoston käynnistysrivi poistetaan, jolloin eristysympäristön valinta kytkeytyy pois käytöstä koko asennuksessa (ongelma #13).
Eristysympäristön valitseminen
HTTP-pyynnöissä eristysympäristö valitaan seuraavien avulla:
X-Rudel-Environment-otsake (vanha aliasX-Rudel-Sandbox)rudel_environment-eväste (vanha aliasrudel_sandbox)
Rudel ei koskaan aseta eikä tyhjennä evästettä. Palaa isäntään poistamalla eväste; hallintapalkin Sandbox-kohteen linkki johtaa isännän kohteeseen URL, mutta eväste jää paikalleen (ongelma #10).
WP-CLI-komennoissa eristysympäristö valitaan seuraavien avulla:
RUDEL_ENVIRONMENT-ympäristömuuttuja--url, jonka isäntä alkaa eristysympäristön tunnuksella, kuten--url=http://alpha-3be7.example.test
Valitsinta ei ole todennettu. Mikä tahansa sivustoon yhteyden saava asiakas saa eristysympäristön käyttöönsä lähettämällä kelvollisen eristysympäristön tunnuksen, ja tunnukset (nimi sekä neljä heksamerkkiä) on helppo arvata. Älä käsittele eristysympäristön valintaa käyttöoikeuksien rajana; suojaa julkinen isäntä verkkopalvelimen tai verkon tasolla.
Pyyntöjen oletukset
Valitussa pyynnössä Rudel:
- estää lähtevän sähköpostin
pre_wp_mail-suodattimella - asettaa arvon
WP_TEMP_DIReristysympäristöntmp-hakemistoon - asettaa arvon
WP_CACHE_KEY_SALTeristysympäristökohtaiseksi, jotta pysyvät oliovälimuistit pitävät eristysympäristöjen avaimet erillään - ottaa käyttöön lokituksen
WP_DEBUGeristysympäristöndebug.log-arvolle sekä eristysympäristön tunnuksesta johdetut todennusavaimet ja suolat
Käynnistysrutiini määrittelee nämä vakiot vain, jos wp-config.php ei ole jo määritellyt niitä. Tavallinen wp-config.php määrittelee arvon WP_DEBUG sekä kaikki avaimet ja suolat, joten tällaisessa asennuksessa eristysympäristöpyynnöt käyttävät isännän debug-asetusta ja avaimia sekä suoloja (ongelma #4). Myös käyttäjät kloonataan, joten isännän kirjautumiseväste voi toimia eristysympäristössä.
Ajon aikaiset metatiedot
Rudel-ajon aikaiset metatiedot pysyvät isännän WordPress MySQL-tauluissa:
wp_rudel_environments
wp_rudel_worktrees
Nämä taulut ovat Rudel-järjestelmän totuuden lähde. Ympäristöhakemistot sisältävät hallittuja tiedostoja ja artefakteja, eivät ajonaikaista rekisteritilaa.