Pritunl: kontrola stato kontraŭ la generita profilo
Klienta profilo kaj kopio de agordo ambaŭ aspektas kiel sekurkopioj. Komparu, kion posedas MongoDB, kion posedas la gastiganto, kaj kiel restarigi funkciantan Pritunl.
Unu arkivo restarigas funkciantan Pritunl-agordon; la alia restarigas nur bildon de ĝi. Klienta profilo, kopio de la agordo de la gastiganto kaj tarball de la stata dosierujo ĉiuj aspektas kiel sekurkopioj, kaj neniu el ili sola reportas la organizaĵojn, uzantojn kaj servilajn difinojn, kiujn Pritunl administras. La diferenco estas posedo: parto de la stato apartenas al datumbazo, parto al la gastiganto, kaj parto estas regenerita eligo. Elektu la malĝustan tavolon kaj la restarigo produktas servilon, kiu startas, aŭskultas kaj scias nenion. Ĉi tiu komparo apartigas la tri tavolojn, por ke la arkivo, kiun vi konservas, kongruu kun la paneo, el kiu vi resaniĝas.
Du objektoj aspektas kiel sekurkopioj kaj nur unu restarigas la servon
Elŝutita klienta profilo enhavas atestilon, ŝlosilon kaj finpunkton. Ĝi estas kompleta por tiu unu aparato kaj senutila kiel registro de la agordo: ĝi portas neniujn organizaĵojn, neniujn malŝaltitajn uzantojn, neniujn servilajn vojojn kaj neniujn administrajn kontojn. Restarigo el dosierujo de profilo donas klientojn, kiuj ne povas aŭtentigi sin kontraŭ io ajn.
Kopio de la agordo de la gastiganto estas same parta. /etc/pritunl.conf enhavas agordojn je gastiganta nivelo, inkluzive kiel atingi la datumbazon, kaj ĝi ne enhavas la VPN-objektojn mem.
Kion posedas la datumbazo kaj kion posedas la gastiganto
Pritunl tenas servilajn difinojn, uzantojn, organizaĵojn kaj ŝlosilojn en MongoDB. Tiu datumbazo estas la aŭtoritata rega ebeno, kaj ĉiu generita OpenVPN-dosiero sur la disko estas eligo derivita de ĝi. Ŝanĝo farita rekte en generita dosiero postvivas ĝis la sekva regenerado kaj poste malaperas, do redakti rultempajn dosierojn ne estas daŭra korekto. La sama regulo validas por efektivaj vojoj kaj interfacoj: ili priskribas, kion la rega ebeno produktis, ne kion ĝi devus produkti.
La gastiganto kontribuas per pli malgranda sed neportebla aro de valoroj. Unu el ili estas /var/lib/pritunl/pritunl.uuid, la identeco de tiu aparta nodo.
Tiu identeco plej gravas en areto. Anstataŭa gastiganto bezonas sian propran registriĝon anstataŭ klono de la UUID de aktiva nodo, alie la du batalas pri la sama identeco. Registru la mapadon inter ĉiu gastiganto, ĝia UUID kaj la datumbazo, kiun ĝi montras, ĉar ununura datumbaza eligo ne priskribas, kiuj gastigantaj agordoj apartenis al kiu maŝino. Programaraj versioj kaj publikaj finpunktaj nomoj apartenas al la sama registro.
Faru konsekvencan eligon, ne dosierujan kopion
Kopiado de la MongoDB-datumdosierujo dum la servo skribas produktas dosierojn, kiuj eble ne formas uzeblan datumbazon. Uzu anstataŭe la subtenatan eligvojon de la datumbazo, ruligitan kontraŭ la topologio, kiun vi efektive havas:
mongodump --uri="mongodb://127.0.0.1:27017/pritunl" --out=/var/backups/pritunl/db
sudo tar czf /var/backups/pritunl/host.tgz /etc/pritunl.conf /var/lib/pritunl/pritunl.uuid
Memstara gastiganto toleras tiun simplan formon. Replika aro bezonas konsekvencan tempopunkton, kaj oplog-bazita eligo havas postulojn, kiujn simpla eligo ne havas. La subtenata proceduro dependas de via MongoDB-versio kaj topologio, do ne konkludu ĝin el la ĉeesto de datumdosierujo. Arkivu la gastigantan tavolon apud la eligo, en la sama rulo, kun la sama tempindiko.
Ekzerku la restarigon antaŭ ol vi bezonos ĝin
Sekurkopio, kiun neniu restarigis, estas hipotezo. Konstruu la servon en izolita reto, restarigu la eligon kaj remetu la gastigantajn dosierojn:
mongorestore --uri="mongodb://127.0.0.1:27017" --drop /var/backups/pritunl/db
sudo tar xzf /var/backups/pritunl/host.tgz -C /
Poste kontrolu la objektojn anstataŭ la procezon: ensalutu, konfirmu, ke organizaĵoj kaj uzantoj ĉeestas, kaj lanĉu unu testklienton kontraŭ servila difino, kiun vi rekonas. Malhelpu la restarigitan gastiganton anonci la produktan finpunkton aŭ akcepti realajn konektojn ĝis adresoj kaj identecoj estos intencaj. Ĉi tie vi ankaŭ malkovras, ke la arkivo bezonas akreditaĵojn, kiuj vivis nur sur la paneinta maŝino, do konservu restarigajn akreditaĵojn en sendependa loko. Restarigo, kiu dependas de la gastiganto, kiun vi ĵus perdis, ne estas restariga plano.
Fine, memoru, ke malnova momenta bildo restarigas malnovajn decidojn. Se administranto malŝaltis identecon post kiam la eligo estis farita, la restarigo reŝaltas ĝin. Repacigo post resaniĝo apartenas al la proceduro, ne al la postpenso.