Izolācija
Rudel ir pieprasījumā atlasītu pārklājumu sistēma. Atlasīts pieprasījums izmanto smilškastes datubāzes tabulas un tēmas failus, vienlaikus darbojoties resursdatora WordPress instalācijā.
Izolēts katrā smilškastē
WordPress tabulas
Katrai smilškastei tiek ģenerēts tabulu prefikss: resursdatora prefikss un smilškastes ID pirmās septiņas heksadecimālās rakstzīmes MD5.
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users
Rudel pārslēdz WordPress tabulu prefiksu, pirms WordPress pabeidz sāknēšanu, tāpēc katrs vaicājums smilškastes pieprasījumā lasa un raksta smilškastes kopijas.
Lietotāji
users un usermeta tabulas tiek klonētas kopā ar pārējām. Izveides brīdī smilškastē ir resursdatora lietotāji un paroles; pēc tam smilškastē izveidotie, mainītie vai dzēstie lietotāji neietekmē resursdatoru, un resursdatora izmaiņas nesasniedz smilškasti.
Aktīvās tēmas faili
Atlasītā tēma tiek kopēta smilškastes direktorijā:
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}
Ja tēma ir bērntēma, Rudel kopē arī vecāktēmu, lai veidņu saistība paliktu derīga. Smilškaste vienmēr nodrošina izveides brīdī reģistrēto tēmu; tēmas maiņa smilškastē neko nemaina.
Koplietots ar resursdatoru
- WordPress kodols
- spraudņu faili
- augšupielādēti multivides faili
Resursdatorā instalēts vai atjaunināts spraudnis ir instalēts vai atjaunināts katrā smilškastē. Aktīvo spraudņu saraksts tiek glabāts opciju tabulā, tāpēc aktivizācijas stāvoklis katrā smilškastē ir atsevišķs. Smilškastē veiktās augšupielādes nonāk resursdatora augšupielāžu direktorijā. Tādējādi smilškastes izveide ir ātra un nav nepieciešams globāli aizstāt WP_CONTENT_DIR.
Saglabājiet Rudel aktīvu katrā smilškastē. Tā pasta bloķēšana un tēmas pārklājums darbojas no spraudņa, un, ja tas tiek deaktivizēts, kamēr atlasīta smilškaste, no koplietotā wp-config.php tiek noņemta arī sāknēšanas rinda, kas izslēdz smilškastu atlasi visai instalācijai (13. problēma).
Smilškastes atlase
HTTP pieprasījumi atlasa smilškasti, izmantojot:
- galveni
X-Rudel-Environment(mantotais aizstājvārdsX-Rudel-Sandbox) - sīkdatni
rudel_environment(mantotais aizstājvārdsrudel_sandbox)
Rudel nekad neiestata un neizdzēš sīkdatni. Lai atgrieztos pie resursdatora, izdzēsiet to; administrēšanas joslas vienums Sandbox norāda uz resursdatora URL, bet sīkdatne paliek (10. problēma).
WP-CLI komandas atlasa smilškasti, izmantojot:
- vides mainīgo
RUDEL_ENVIRONMENT --url, kura resursdatora nosaukums sākas ar smilškastes ID, piemēram,--url=http://alpha-3be7.example.test
Atlase nav autentificēta. Jebkurš klients, kas var piekļūt vietnei un nosūta derīgu smilškastes ID, tiek novirzīts uz šo smilškasti, un smilškastu ID (nosaukums un četras heksadecimālās rakstzīmes) ir viegli uzminami. Neuzskatiet smilškastes atlasi par piekļuves kontroles robežu; aizsargājiet publisku resursdatoru tīmekļa servera vai tīkla līmenī.
Pieprasījumu noklusējumi
Atlasītam pieprasījumam Rudel:
- bloķē izejošo e-pastu, izmantojot
pre_wp_mailfiltru - iestata
WP_TEMP_DIRuz smilškastes direktorijastmp - iestata
WP_CACHE_KEY_SALTuz smilškastei specifisku vērtību, lai noturīgās objektu kešatmiņas nodalītu smilškastes atslēgas - piedāvā
WP_DEBUGžurnalēšanu smilškastesdebug.logun autentifikācijas atslēgas un sāļus, kas atvasināti no smilškastes ID
Sāknēšanas process definē katru no šīm konstantēm tikai tad, ja wp-config.php to vēl nav definējis. Standarta wp-config.php definē WP_DEBUG un visas atslēgas un sāļus, tāpēc šādā instalācijā smilškastes pieprasījumi izmanto resursdatora atkļūdošanas iestatījumu un atslēgas un sāļus (4. problēma). Tā kā lietotāji tiek klonēti, resursdatora pieteikšanās sīkdatne var būt derīga smilškastē.
Izpildlaika metadati
Rudel izpildlaika metadati paliek resursdatora WordPress MySQL tabulās:
wp_rudel_environments
wp_rudel_worktrees
Šīs tabulas ir Rudel patiesais informācijas avots. Vides direktorijās ir pārvaldīti faili un artefakti, nevis izpildlaika reģistra stāvoklis.