Me pehea te awhina a GitLab ki a koe ki te penapena i nga rokiroki NextCloud nui

Hei Habr!

I tenei ra e hiahia ana ahau ki te korero mo o maatau wheako ki te mahi aunoa i te taapiri o nga raraunga nui mai i nga rokiroki Nextcloud i roto i nga whirihoranga rereke. Ka mahi ahau hei teihana ratonga i Molniya AK, kei reira matou e whakahaere whirihoranga o nga punaha IT; Ka whakamahia a Nextcloud mo te rokiroki raraunga. Tae atu, me te hanganga tohatoha, me te taapiri.

Ko nga raruraru ka puta mai i nga ahuatanga o nga whakaurunga he nui nga raraunga. Ko te whakaputanga i tukuna e Nextcloud, te taapiri, nga take kaupapa, me te maha atu ka hanga he maha nga taarua.

prehistory

I te wa e whakahaere ana i a Nextcloud, ka puta ake te raru o te whakarite i tetahi taapiri whai hua, me whakamunatia, na te mea he mea nui te raraunga.

Ka tukuna e matou nga whiringa mo te penapena i nga taapiri i to maatau waahi, i te kaihoko ranei i runga i nga miihini motuhake mai i Nextcloud, me whai huarahi aunoa mo te whakahaere.

He maha nga kaihoko, he rereke nga whirihoranga katoa, kei runga i o raatau ake waahi me o raatau ake ahuatanga. He tikanga paerewa tenei ina nou te katoa o te pae, ka mahia nga taapiri mai i nga karauna; kaore i te pai.

Tuatahi, me titiro ki nga raraunga whakauru. Me:

  • Te tauineine i runga i te ahua o tetahi pona, maha ranei. Mo nga whakaurunga nui ka whakamahia e matou te minio hei rokiroki.
  • Rapua nga raru e pa ana ki te mahi i nga taapiri.
  • Me pupuri e koe he taapiri ki o kiritaki me/ranei ki a matou.
  • Kia tere me te ngawari te mahi i nga raru.
  • He tino rereke nga kaihoko me nga whakaurunga - kaore e taea te tutuki.
  • Me iti te tere whakaora i roto i nga ahuatanga e rua: te whakaora katoa (te aituā), kotahi te kōpaki i murua i te pohehe.
  • Ka hiahiatia te mahi tangohanga.

Me pehea te awhina a GitLab ki a koe ki te penapena i nga rokiroki NextCloud nui

Hei whakaoti i te raru o te whakahaere i nga taapiri, i whakauruhia e matou a GitLab. Ētahi atu kōrero mā te rutu.

Ko te tikanga, ehara i te mea ko matou te tuatahi ki te whakaoti rapanga penei, engari ki ta matou titiro he mea whakahihiri ta matou wheako mahi, whakapau kaha, a kua rite matou ki te whakapuaki.

I te mea he kaupapa here puna tuwhera to taatau kamupene, i rapu matou i tetahi otinga puna tuwhera. Ka huri, ka tohatohahia o maatau whanaketanga me te whakairi. Hei tauira, kei a GitHub to tatou mono mo Nextcloud, ka tukuna e matou ki nga kaihoko, me te whakarei ake i te haumarutanga o nga raraunga inaa ka whakakorea ohoreretia, ka whakakorehia ranei.

Nga taputapu taapiri

I timata matou ki te rapu tikanga otinga ma te whiriwhiri i tetahi taputapu hanga taapiri.

Ko te tar + gzip auau kare e mahi pai - he taarua nga raraunga. He iti noa nga huringa o te pikinga, a ko te nuinga o nga raraunga kei roto i te konae kotahi ka tukurua.
He raruraru ano - te kore o te rokiroki raraunga tohatoha. Ka whakamahia e matou te minio me te nui o ana raraunga. Me mahi ano ranei koe ma te minio ano - utaina ka whakamahi i nga mokowhiti katoa i waenga i te punaha konae, a, he mea nui ake, ka warewarehia etahi o nga peere me nga korero-meta. Whakamahia ranei te tangohanga.

Ko nga taputapu taapiri me te taarua e waatea ana i te puna tuwhera (kei a Habré Tuhinga mo tenei kaupapa) me o matou whiringa toa borg и Riwhi. Ko ta maatau whakataurite mo nga tono e rua kei raro, engari mo tenei wa ka korero atu matou ki a koe me pehea ta matou whakarite i te kaupapa katoa.

Te whakahaere i nga taapiri

He pai a Borg me Restic, engari karekau he momo mana whakahaere o te hua. Mo te kaupapa o te whakahaere me te whakahaere, i whiriwhiria e matou he taputapu kua whakatinanahia e matou, me te kore e kore e taea e matou te whakaaro ki a matou mahi, tae atu ki te automation - koinei te CI / CD rongonui - GitLab.

Ko te whakaaro e whai ake nei: kua whakauruhia te gitlab-runner ki ia node e pupuri ana i nga raraunga Nextcloud. Ka whakahaerehia e te kaiwhaiwhai he tuhinga i runga i te waarangi e aro turuki ana i te mahi taapiri, ka whakarewahia a Borg, Restic ranei.

He aha ta tatou i whiwhi? He urupare mai i te mahi, he pai te whakahaere i nga huringa, nga korero mo te he.

konei konei i runga i GitHub I whakairihia e matou nga tauira o te tuhinga mo nga momo mahi, a ka mutu ka whakapiri atu ki te taapiri o Nextcloud anake, engari he maha atu ano nga ratonga. Kei reira ano he kaihōtaka mena kaore koe e pai ki te whirihora a-ringa (kaore matou e pai) me te .gitlab-ci.yml

Karekau he huarahi hei whakarereke i te taima CI/CD i te Gitlab API, engari he iti. Me whakanui ake, mea atu 1d.

Waimarie, ka taea e GitLab te whakarewahia ehara i te mea i runga i te mahi, engari i runga i te waarangi, koinei te mea e hiahiatia ana e matou.

Inaianei mo te tuhinga takai.

Ka whakatauhia e matou nga tikanga e whai ake nei mo tenei tuhinga:

  • Me whakarewahia e te kaihoroi me te ringaringa mai i te papatohu me te mahi kotahi.
  • Me noho he kaikawe hapa:
  • waehere whakahoki.
  • rapua he aho i roto i te poro. Hei tauira, mo matou he hapa he karere kaore e kiia e te papatono he mate.
  • Tukatuka waahi. Me tika te wa arahi.
  • Kei te hiahia matou i tetahi raarangi tino taipitopito. Engari mena he hapa anake.
  • He maha nga whakamatautau ka mahia i mua i te tiimata.
  • Nga putea iti mo te waatea i kitea e maatau i te waa tautoko:
  • Ko te timatanga me te mutunga ka tuhia ki te syslog o te miihini o te rohe. Ka awhina tenei ki te hono i nga hapa o te punaha me te mahi taapiri.
  • Ko tetahi waahanga o te raarangi hapa, mena he, ka puta ki te stdout, ka tuhia te katoa o te raarangi ki tetahi konae motuhake. He pai ki te titiro tonu ki te CI me te arotake i te hapa mena he mea iti.
  • Patuiro aratau.

Ka tiakina te rangitaki katoa hei taonga toi i GitLab; ki te kore he hapa, ka mukua te rangitaki. Ka tuhia e matou te tuhinga ki te bash.

Ka harikoa matou ki te whakaaro ki nga whakaaro me nga korero mo te puna tuwhera - nau mai.

Nahea teie ohipa

Ka whakarewahia he kaiwhaiwhai me te kaikohikohi Bash i runga i te node taapiri. E ai ki te kaiwhakariterite, ka whakarewahia te mahi CI/CD i roto i tetahi kemu motuhake. Ka whakarewahia e te kaikawe he tuhinga takai mo te ao mo enei mahi, ka tirotirohia e ia te mana o te putunga putunga, nga tohu whakairi me nga mea katoa e hiahia ana matou, ka hoki ki runga ka horoi i te mea tawhito. Ko te taapiri kua oti ka tukuna ki S3.

Ka mahi matou i runga i tenei kaupapa - he kaiwhakarato AWS o waho, he rite ranei ki a Ruhia (he tere ake, kaore nga raraunga e wehe i te Russian Federation). Ka whakauruhia ranei e matou he huinga minio motuhake mo te kiritaki i runga i tana pae mo enei kaupapa. I te nuinga o te wa ka mahia e matou tenei mo nga take haumarutanga, i te mea kaore te kaihoko e hiahia kia wehe nga raraunga i to raatau ara iahiko.

Kaore matou i whakamahi i te ahuatanga o te tuku taapiri ma te ssh. Kaore tenei e taapiri i te haumarutanga, a ko nga kaha o te whatunga o te kaiwhakarato S3 he nui ake i to maatau miihini ssh kotahi.

Hei tiaki i to miihini o to rohe mai i te kaiwhaiwhai, na te mea ka taea e ia te whakakore i nga raraunga i runga i te S3, me whakaahei koe ki te whakaputa.
Ka whakamuna te tārua i te tārua i ngā wā katoa.

He aratau kore whakamuna a Borg none, engari karekau matou e kii kia whakahurihia. I tenei aratau, ehara i te mea karekau he whakamunatanga, engari ko te kaute o nga mea e tuhia ana kaore i te tatauhia, ko te tikanga ka taea anake te tirotiro i te tapatahi, ma te whakamahi i nga tohu.

Ka tirotirohia e te kaihōtaka motuhake nga taapiri mo te tika o nga tohu me nga ihirangi. He puhoi, he roa hoki te haki, no reira kotahi te marama e whakahaere motuhake ana. Ka roa pea etahi ra.

Readme i Russian

Nga mahi matua

  • prepare te whakarite
  • testcheck arowhai hihiko
  • maincommand roopu matua
  • forcepostscript he mahi ka mahia i te mutunga, i te hapa ranei. Ka whakamahia e matou hei wetewete i te wehenga.

Nga mahi ratonga

  • cleanup Ka tuhia e matou nga hapa, ka whakakore ranei i te konae rangitaki.
  • checklog poroporoaki te rangitaki mo te puta mai o tetahi raina me te hapa.
  • ret kaihautu puta.
  • checktimeout tirohia mo te wa mutunga.

taiao

  • VERBOSE=1 Ka whakaatu tonu matou i nga hapa i runga i te mata (stdout).
  • SAVELOGSONSUCCES=1 tiakina te rangitaki i te angitu.
  • INIT_REPO_IF_NOT_EXIST=1 Waihangahia he putunga mena karekau. Kua monoa e te taunoa.
  • TIMEOUT te wa morahi mo te mahi matua. Ka taea e koe te tautuhi hei 'm', 'h', 'd' ranei i te mutunga.

Aratau rokiroki mo nga kape tawhito. Taunoa:

  • KEEP_DAILY=7
  • KEEP_WEEKLY=4
  • KEEP_MONTHLY=6

Taurangi kei roto i te tuhinga

  • ERROR_STRING — aho mo te taki takiuru mo te hapa.
  • EXTRACT_ERROR_STRING — kupu whakaatu mo te aho whakaatu mena he hapa.
  • KILL_TIMEOUT_SIGNAL — tohu mo te patu ki te pau te wa.
  • TAIL — e hia nga aho me nga hapa kei te mata.
  • COLORMSG — te tae o te karere (kowhai taunoa).

Ko taua tuhinga, e kiia nei ko wordpress, he ingoa herenga, ko tana mahi he mea hoki kei te tuara i te paataka raraunga mysql. Ko te tikanga ka taea te whakamahi mo nga whakaurunga Nexcloud node-kotahi, ka taea hoki e koe te whakahoki i te paataka raraunga. Ko te waatea ehara i te mea ko nga mea katoa kei te waahi kotahi, engari ko nga mea kei roto i te papaarangi e tata ana ki nga ihirangi o nga konae, na te mea he iti noa te rereketanga o te waa.

Restic vs Borg

He whakataurite ano kei waenganui i a Borg me Restic kei runga i a Habré, karekau he mahi ki te hanga i tetahi atu, engari na matou ake. He mea nui ki a matou te ahua o te ahua ki o maatau raraunga, me o maatau korero. Ka kawea mai e matou.

Ko o maatau paearu whiriwhiri, hei taapiri atu ki era kua whakahuahia ake nei (te taarua, te whakaora tere, me etahi atu):

  • Te ātete ki te mahi kore oti. Tirohia mo te patu -9.
  • Rahi i runga i te kōpae.
  • Te whakaritenga mo nga rauemi (CPU, mahara).
  • Te rahi o nga pupuhi kua penapena.
  • Mahi tahi me S3.
  • Taki tapatahi.

Mo te whakamatautau, i tangohia e matou tetahi kaihoko me nga raraunga tuuturu me te rahi o te 1,6 TB.
Ngā tikanga.

Kaore a Borg e mohio ki te mahi tika me te S3, a ka whakairihia e matou te kopae hei whae, ma poauau. I tukuna e Restic ki a S3 ano.

He tere, he pai hoki te mahi a Goofys, kei reira ano kōwae keteroki kōpae, ka tere ake te mahi. Kei roto i te waahanga beta, a, he pono, i hinga matou i te ngaronga raraunga i te wa o nga whakamatautau (etahi atu). Engari ko te mea ngawari ko te tikanga taapiri kaore e nui te panui, engari ko te nuinga o te tuhi, na reira ka whakamahia e matou te keteroki i nga wa e tirotirohia ana.

Hei whakaiti i te mana o te whatunga, i whakamahia e matou he kaiwhakarato rohe - Yandex Cloud.

Nga hua whakamatautau whakataurite.

  • Patua -9 me te whakaara ano i angitu.
  • Rahi i runga i te kōpae. Ka taea e Borg te kopiri, na ka rite nga hua ki te tumanako.

Pūrua
rahi

borg
562Gb

Riwhi
628Gb

  • Na PTM
    He iti noa te kai a Borg, me te taapiri taunoa, engari me arotake tahi me te tukanga goofys. I te katoa, he rite ki a raatau me te whakamahi mo te 1,2 nga waahanga i runga i te miihini mariko whakamatautau.
  • Maharahara. He 0,5GB te roa o te okiokinga, he 200MB a Borg. Engari he iti noa tenei ki te whakarite ki te keteroki konae punaha. Na he mea tika kia tohatohahia etahi atu mahara.
  • Ko te rereketanga o te rahi o te pupuhi i tino miharo.

Pūrua
rahi

borg
āhua 500MB

Riwhi
āhua 5MB

  • He pai te wheako me te S3 a Restic. Ko te mahi a Borg na roto i nga goofys kaore e puta he patai, engari kua tohuhia he mea tika kia mahi umount i muri i te otinga o te taapiri kia taea ai te tautuhi i te keteroki. Ko te mea motuhake o te S3 ko te kore e tukuna atu nga kongakonga ki raro i te pamu ki te peere, ko te tikanga ko nga raraunga kaore i oti te whakakii ka arahi ki te kino nui.
  • He pai te mahi a te tirotiro pono i roto i nga keehi e rua, engari he rereke te tere.
    Takoto 3,5 haora.
    Borg, me te 100GB SSD keteroki konae - 5 haora.He rite tonu te hua tere ki te mea kei runga te raraunga i te kōpae paetata.
    Ka panui tika a Borg mai i te S3 kaore he keteroki 33 haora. Tino roa.

Ko te mea nui ka taea e Borg te kopiri me te nui ake o nga pupuhi - ka iti ake te utu o te rokiroki me te GET/PUT i S3. Engari ka tae mai tenei ki te utu mo te whakawhiwhinga uaua me te puhoi. Mo te tere whakaora, kaore matou i kite i tetahi rereketanga. He iti ake te roa o nga taapiri a Restic (i muri i te tuatahi), engari kaore i tino nui.

Ko te mea whakamutunga ko te rahi o te hapori i whiriwhiria.

Na ka whiriwhiria e matou te borg.

He kupu torutoru mo te kopeke

He pai rawa atu a Borg i te algorithm compression algorithm i roto i tana taonga - zstd. Ko te kounga kōpeketanga ehara i te kino atu i te gzip, engari he tere ake. He rite te tere ki te lz4 taunoa.

Hei tauira, e rua nga wa pai ake i te putunga raraunga MySQL i te lz4 i te tere kotahi. Engari, ko te wheako me nga raraunga pono e whakaatu ana he iti rawa te rereketanga o te tauwehenga o te kohinga o te Nextcloud node.

He pai ake te aratau compression bonus a Borg - mena he nui te entropy o te konae, katahi ka kore rawa e whakamahia te compression, ka piki ake te tere. Whakahohehia e te whiringa i te wa e hanga ana
-C auto,zstd
mo te zstd algorithm
Na ki tenei kōwhiringa, i roto i te whakarite ki te kōpeketanga taunoa, ka tatou
560Gb me 562Gb ia. Ko nga raraunga mai i te tauira i runga ake nei, me whakamaumahara ahau ki a koe, me te kore e pupuhi te hua ko te 628Gb. Ko te hua o te rereketanga 2GB i miharo matou, engari i whakaaro matou ka whiriwhiria e matou i muri i nga mea katoa. auto,zstd.

Tikanga manatoko tārua

E ai ki te kaiwhakariterite, ka whakarewahia te miihini mariko mai i te kaiwhakarato, mai i te kaihoko ranei, e tino whakaiti ana i te kawenga whatunga. He iti ake te utu i te whakaara ake i a koe ano me te taraiwa waka.

goofys --cache "--free:5%:/mnt/cache" -o allow_other --endpoint https://storage.yandexcloud.net --file-mode=0666 --dir-mode=0777 xxxxxxx.com /mnt/goofys
export BORG_PASSCOMMAND="cat /home/borg/.borg-passphrase"
borg list /mnt/goofys/borg1/
borg check --debug -p --verify-data /mnt/goofys/borg1/

Ma te whakamahi i te kaupapa ano, ka tirohia e matou nga konae me te wheori (i muri i te meka). I muri i nga mea katoa, ka tukuna e nga kaiwhakamahi nga mea rereke ki Nextcloud kaore he wheori katoa. Ko te whakahaere i nga tirotiro i te wa o te ringihanga he nui rawa te wa, ka pokanoa ki nga pakihi.

Ka taea te whakaraerae ma te rere i nga kaiwhaiwhai i runga i nga waahanga rereke me nga tohu rereke.
Ka kohia e ta maatau tirotiro nga mana taapiri ma te API GitLab i te matapihi kotahi; mena ka tika, ka kitea nga raru me te ngawari ki te waahi.

mutunga

Ko te mutunga mai, ka tino mohio matou ka mahia e matou he taapiri, he tika a matou taapiri, he iti noa te wa ka puta mai nga raru ka whakatauhia i te taumata o te kaiwhakahaere mahi. He iti rawa te mokowhiti o te taapiri ki te tar.gz, Bacula ranei.

Source: will.com

Tāpiri i te kōrero