Programmēšana

Pārskats: Alpine Linux ir paredzēts Docker

Alpine Linux ir minimāls Linux izplatījums, kas sākotnēji tika veidots ar Gentoo, bet tagad ir neatkarīgs un pats mitināts. Dažos aspektos Alpine Linux ir konceptuāli līdzīgs NanoBSD, jo tehniskie lietotāji var sākt ar Alpine Linux, lai izveidotu Linux sistēmu tikai ar to, kas nepieciešams misijas veikšanai, un nekas vairāk.

Parasti Alpine Linux tiek uzskatīts par iebūvētu ierīcēs vai ierīcēs, un tas ir guvis lielu impulsu, kad tika izvēlēts aizstāt Ubuntu kā Docker bāzes attēlu. Galvenie iemesli bija drošība, uzticamība un stabila izstrādes prakse.

Alpine Linux atšķirībā no jebkura Linux izplatīšanas, ar kuru būs sastapies tipisks Linux darbvirsmas lietotājs. Sāksim, aplūkojot direktoriju / bin, kur tiek glabāti sistēmas utilīti:

Ievērojiet, ka gandrīz visas binārās programmas ir saites uz / bin / busybox. Busybox ir kopīgu lietotāju un sistēmu utilītu komplekts, kas ir iesaiņots vienā binārā krāsā, lai nodrošinātu ātrāku startēšanu, zemākas telpas prasības un kopumā labāku drošību par samazinātu funkcionalitāti. Daudzas no retāk izmantotajām komunālo pakalpojumu opcijām ir noņemtas, taču visas parasti izmantotās opcijas paliek.

Papildus tam Alpine izmanto musl libc, kas ir minimāla standarta C / POSIX bibliotēkas un paplašinājumu ieviešana, kas paredzēta statiskai sasaistei un reāllaikā iegultām lietojumprogrammām, izvairoties no glibc uzpūšanās. Statiskā saistīšana nozīmē ātrāku palaišanu, taču aizņem vairāk vietas, tāpēc ir vislabāk piemērota mazākām sistēmām. Apvienojot visus sistēmas bināros failus vienā izpildāmā failā un sasaistot ar musl, Alpine iegūst nelielu un ātru sistēmas bināro failu komplektu, kas ir nepieciešams iegultā sistēmā.

Visbeidzot, uzmanība tiek pievērsta drošībai. Sistēma ietver Grsec / PaX kodola ielāpus, kas nodrošina Linux kodola drošības funkciju kolekciju, tostarp adrešu telpas aizsardzību, uzlabotu auditēšanu un uz lomām balstītu piekļuvi un procesu kontroli. Izmantojot tipiskus Linux izplatījumus, lietotājiem būtu jāapkopo un jāizveido savs kodols, lai iegūtu šos ielāpus, ko, iespējams, izvairītos pat vismodernākie lietotāji.

Alpine Linux instalēšana un konfigurēšana

Alpine Linux instalēšanā ir daudz kas neparasts. Tas galvenokārt sakņojas sākotnējā paredzētajā lietojumā iegultās sistēmās, piemēram, maršrutētājos. Tā kā šāds Alpine ir paredzēts, lai sāktu un palaistu no RAM, lai gan ir pieejamas hibrīdas iespējas. Saskaņā ar šo izcelsmi Alpine Linux kā bootloader izmanto extlinux, Syslinux variantu. Syslinux parasti netiek izmantots, lai sāktu pilnas Linux instalācijas, jo Linux parasti netiek instalēts FAT failu sistēmās. Tā vietā Syslinux bieži izmanto sāknēšanas vai glābšanas disketēm, dzīviem USB un citām vieglām sāknēšanas sistēmām. Alpine izmanto Syslinux projekta daļas, lai atļautu sāknēšanu no CD-ROM, un izmanto extlinux, lai sāktu darbu no Linux failu sistēmām vai FAT failu sistēmām USB ierīcēm. FAT failu sistēmām ir daži ierobežojumi, piemēram, failu lielums un failu nosaukumu garums.

Alpine atbalsta trīs instalēšanas režīmus: bez diska, “data” un “sys”. Datu instalācijā operētājsistēma tiek ielādēta RAM no tikai lasāmiem nesējiem, bet datu glabāšanai tiek pievienoti lasīšanas / rakstīšanas nodalījumi. To var izmantot, piemēram, ja maršrutētājs, kura pamatā ir Alpine, diskā glabāja ielaušanās vai piekļuves žurnālus. Žurnālu kopēšana RAM būtu vērtīga resursa izšķiešana. Bez diska režīms ir līdzīgs, taču lasīšanas / rakstīšanas nodalījums parasti ir mazāks un tiek izmantots OS konfigurācijas detaļu glabāšanai. Sys ir tradicionāls uz diska balstīts instalēšanas režīms.

Instalējot bez diska vai datu režīmā, konfigurācijas failu glabāšanai tiek izmantota Alpine Local Backup sistēma. Tas tiek darīts ar lbu (vietējā rezerves utilīta), kas izseko failus, kas mainījušies direktorijā / etc, un šīs izmaiņas saglabā .apkovl "pārklājuma" failos (tar-gzip arhīvos). Izmantojot lbu, administratori var, piemēram, salīdzināt, apvienot vai atgriezties pie iepriekšējām konfigurācijām.

Es sāku ar mēģinājumu instalēt bez diska, jo es gribēju palaist Alpine tā, kā tas sākotnēji bija paredzēts, kā ierīču OS. Diemžēl VMware instalācijā es sastapos ar ilgstošu (2015) kļūdu, kas nav salabots, kā arī nav atjaunināta dokumentācija. Šķiet, ka virtuālais disketes attēls netiek uzstādīts sāknēšanas laikā. Tas nozīmē, ka konfigurācijas izmaiņas tiek zaudētas katrā atsāknēšanas reizē.

Es beidzot ķēros pie sistēmas instalācijas, kas gāja vienkārši labi. Pirmais, kas jāpamana, ir tas neko, pat nav SSH, ir instalēts pēc noklusējuma. Ja tiek veidotas iegultās sistēmas, tas, iespējams, ir laba lieta. Linux iesācējiem vajadzētu sagatavoties stāvai mācīšanās līknei. Nedaudz izlasījis par Alpine Package Manager (APK), lai sāktu darbu, es instalēju minimālu rīku komplektu: Sudo, SSH un tīmekļa grafisko sistēmu pārvaldības rīku ACF.

Alpine Linux sistēmas administrēšana

Lai gan lielākajai daļai Linux sistēmu ir grafisks sistēmas administrēšanas rīks, Alpine iestatīšanai izmanto čaulas skriptus. Es izmantoju jumta skriptu setup-alpine, lai konfigurētu visus pamatus, piemēram, tīklu veidošanu, resursdatora nosaukumu, diskus, laika joslu utt. Lai gan setup-alpine ir pietiekami, lai iegūtu darbspējīgu sistēmu, jebkuram uzlabotam būs nepieciešams rediģēt sistēmas konfigurācijas failus tieši un izmantojot lbu lai saglabātu tos rakstāmos datu nesējos. Ņemiet vērā, ka setup-alpine ir arī instalētājs, tāpēc var norādīt diska nosaukumu, un tas ierakstīs OS multivides ierīcēs, aicinot izveidot rakstāmu nodalījumu direktorijām / etc un / var.

Arī Alpine programmatūras izstrāde un izplatīšana ir atšķirīga. Daļēji tas ir tāpēc, ka to paredzēts izmantot iegultās sistēmās vai kā konteineru bāzes attēlu, bet arī tāpēc, ka autori uzskatīja, ka esošās pakotņu pārvaldības sistēmas nedarbosies labi sistēmā, kuru parasti darbina no RAM. Alpine Package Manager (APK) atbilst visām šīm prasībām ar zemu pieskaitāmo un ātru instalēšanas laiku. Tomēr es vēlos, lai viņi būtu slāņojušies pāri API, kas būtu standartāks. Mums jau ir pietiekami daudz pakotņu pārvaldības API, un ir kaut kas sakāms par saderību. APK tiek izmantots konteineru vai atsevišķu sistēmu konfigurēšanai.

Paku piegāde tiek veikta, izmantojot portu koku, kas man atgādina FreeBSD portu kolekciju. Tomēr tā vietā, lai vadītu sarežģītu makefile sistēmu, tā izmanto citu Alpine Linux izgudrojumu abuild. Aports krātuve atspoguļo ostu koku visā pasaulē un apk pievienot… noteikti ir daudz ātrāks nekā citas pakotņu pārvaldības sistēmas.

Otra lieta, kas jāievēro par Alpine, ir OpenRC izmantošana init sistēmai. Viena no divpadsmit Linux sistēmām tagad ir OpenRC, kas sākās Gentoo (tāpat kā Alpine). Funkcionāli nekas netrūkst, taču esiet gatavs apgūt jaunu palaišanas līmeņu un init komandu sistēmu.

Par laimi lielu daļu ikdienas administrēšanas var veikt, izmantojot tīmekļa Alpine Configuration Framework (ACF), lai gan darbs ar ACF nebija pilnīgi vienmērīgs. Tas neatklāja parasto lietotāju, kuru pievienoju sev, izmantojot adduser, piemēram. ACF GUI izskatās līdzīgi tipiskā Linux bāzes maršrutētāja tīmekļa saskarnei:

Lai atrastu un instalētu, ACF arī prasa zināmu rakšanu. Ikdienas lietotājs sistēmu nebūtu atklājis, ja nav uzmanīgs, un pat tad nav instalēšanas instrukciju.

Alpine Linux krātuve un tīklošana

Alpine atbalsta vairākas atmiņas iespējas, izņemot tikai RAM, ar datu nesējā saglabātu konfigurāciju un zibatmiņas kartēm. Tomēr dokumentācija vai drīzāk tās trūkums apgrūtināja izpratni par glabāšanu. Piemēram, es gribēju ierakstīt pielāgotu ISO ar lietojumprogrammu, kas nav pieejama aportos, iespējams, pietiekami bieži. Dokumentācija tam bija strupceļš:

Šķiet, ka četrarpus gadi ir jāgaida. Taisnības labad jāsaka, ka glabāšana nekad nav bijusi liela Alpu vienādojuma daļa, koncentrējoties uz iegultām lietojumprogrammām, tāpēc nav pārsteigums, ka tai vajadzētu būt vājajai vietai. Notiek darbs lielākajā daļā jomu, kuras sagaidāms no Linux izplatītāja, piemēram, LVM, iSCSI un RAID, taču gatavojieties pavadīt diezgan daudz laika, mēģinot saprast dokumentāciju, vai lasot pirmkodu, lai to visu noskaidrotu.  

Tīkla veidošana ar Alpine ir pavisam cits stāsts nekā uzglabāšana. Tīklošanas dokumentācija ir labāk uzrakstīta un pilnīgāka, un tā bieži ietver labāko praksi efektīvu tīklu izveidošanai. Tiek atbalstīti IP4, IP6, sasaistīšana, VLAN, savienošana un gandrīz jebkura vēlamā tīkla iestatīšana. Jūs atradīsit pat norādījumus par satelīta interneta savienojumu izveidi!

Konfigurāciju var veikt ar tradicionāliem rīkiem, piemēram, ifconfig un route, vai dažām jaunākām pakotnēm, piemēram, iproute2. Pieminēšanas vērts ir interesants apakšprojekts ar nosaukumu Alpine Wall, kas ir Linux ugunsmūra konfigurācijas rīks. Tiek atbalstīts pat sērijveida līniju PPP, kas mūsdienās ir nedaudz pārsteidzoši.

Es daudz uzzināju, lasot šo dokumentāciju, atklājot vairākus konfigurācijas ieteikumus, kurus iepriekš nezināju, kā arī dažus līdz šim nezināmus tīkla utilītus. Šī dokumentācijas daļa ir grāmatzīmju vērta kā ātra atsauce uz tīkla veidošanu, pat ja jūs neizmantojat Alpine Linux.

Alpine Linux jaunināšana un pazemināšana

Alpine Linux izlaišanas tehnoloģija ne tuvu nav tik stingra vai formāla kā nobriedušas sistēmas, piemēram, FreeBSD, taču tā aptver pamatus. Un tas ir labi piemērots Alpine galvenajiem Docker mitināšanas un ierīču lietošanas gadījumiem.

Būtībā ir divas plūsmas, malas un stabilas. Edge ir ritošā atbrīvošanās filiāle, momentuzņēmums visur, kur notiek attīstība ik pēc sešiem mēnešiem. Iepakojumi pārvietojas pa malām un, kad tie ir gatavi, tiek virzīti uz stabilu / kopienu, kur tos sešus mēnešus atbalsta kopiena. Paketes, kas to pārdzīvo un turpina attīstīties, galu galā padara to stabilu / galveno, kur tos atbalsta divus gadus.

Jauninot no filiāles 2.x uz 3.x, nedaudz jāpievērš uzmanība, jo mainās C bibliotēkas (no uClibc uz musl). Ja neesat piesardzīgs, puse no jaunināšanas var neizdoties. Pakotņu jaunināšana pa 3.x līniju ir vienkāršāka, lai gan joprojām ir manuāls process, kuru lielākoties vada skripti. Triks, lai izprastu jaunināšanas procesu, ir iegūt pareizu APK krātuvi (kopienu, malu vai galveno), notīrīt kešatmiņu un pēc tam ļaut APK jaunināt visas paketes ar apk jauninājums.

Arī kodola jaunināšana ir vienkārša, un, lai ierakstītu jauno kodolu un kopiju kastē sāknēšanas vidē, tiek izmantots iestatīšanas sāknēšanas skripts.

Kopumā Alpine sistēmā nav pārāk daudz kustīgu daļu, tāpēc, kad arhitektūra ir izprasta, jauninājumu nav grūti saprast.

Alpine Linux īsumā

Alpine Linux ir lieliska izvēle jebkurai sistēmai, kas ir orientēta uz tīklu un ir paredzēta vienreiz. Ielaušanās atklāšana, tīkla uzraudzība un IP telefonija ir piemēroti piemēri Alpine Linux lietojumprogrammām. Un tā ir dabiska konteineru izvēle. Lietotnes, kas intensīvi izmanto disku, jāpārbauda uzmanīgi. Lietotājiem vajadzētu sagatavoties pavadīt kādu laiku, iesaistoties sabiedrībā un saritinot piedurknes, lai sasmērētu rokas. Būs nepieciešami izmēģinājumi un kļūdas.

$config[zx-auto] not found$config[zx-overlay] not found