Gwersi o'r Maes: Delwedd Arbenigol RHEL ar Azure
Roeddwn yn ceisio lansio delwedd RHEL arbenigol ar Azure yr wythnos diwethaf - ac fel pob tasg sydd ar yr wyneb yn edrych yn syml, trodd yn antur nifer o sgript gyda phob haen yn datgelu haen araill oddi tani.
Y broblem wreiddiol: adeiladodd y tîm .ISO o'r ddelwedd RHEL arbenigol, ond bob tro yr oeddent yn ei adeiladu ac ei darparu yn Azure, roedd y VM yn dangos nad oedd yr Azure Agent yn ymateb, a doedd dim modd mewngofnodi i'r VM â'r cyfrineiriau rhagosodwyd. Curiosity piqued, dyma fi'n ymchwilio.
Dyma fy nodiadau o'r maes - yn y gobaith y byddan nhw'n arbed amser rhywun.
Yr Ymagwedd Brofi - Hyper-V Nythu
Cam cyntaf oedd atgynhyrchu'r broblem. Llwythais yr .ISO i fy amgylchedd Azure i, adeiladais VM RHEL gan ddefnyddio'r ddelwedd, a chadarnhau yr union broblem - Azure Agent heb ymateb, porthladdoedd cyfresol ddim yn gweithio.
Nid oedd gwaith diagnosteg yn bosibl trwy'r VM ei hun - felly symudai i fy Hyper-V lleol. Ond yn fuan sylweddolais broblem arall: roedd uwchlwytho ffeiliau 500GB+ i Azure ar bob ymgais yn cymryd gormod o amser. Felly adeiladais weinydd Hyper-V nyth ar Azure ei hun - VM sy'n rhedeg Hyper-V mewnol - fel y gallwn i adeiladu VM ar Azure yn uniongyrchol a phrofi'n gyflymach. Gosodais hefyd borthladd cyfresol rhithwir i fonitro allbwn diagnosteg.
Nid yw hyn yn nodwedd mae dogfennaeth Hyper-V yn ei gorchymyn yn aml, ac fel y disgwyliai unrhyw un sydd wedi gweithio gyda gwneud y peth hwn, roedd rhai gosodiadau i'w galluogi: mae'n rhaid galluogi "Virtualization Extensions" yn benodol ar y VM gwesteiwr.
Unwaith y sefydlwyd hynny roedd y peiriant profi yn barod - ac roeddwn i nawr yn gallu profi cyfres o gamau cyn ymddiried iddynt ar Azure.
Y Gwrthdaro Dogfennaeth
Y rhan mwyaf rhwystredig o'r holl broses: mae yna ddwy ddogfen wahanol sy'n ymwneud â lansio RHEL arbenigol ar Azure - un gan Microsoft Learn ac un gan Red Hat - ac mae gan y ddwy gamau gwahanol yn yr un lif.
Nid "gwahanol yn yr un ffordd" yw hynny - y maent mewn gwirionedd yn anghytuno ar rai penderfynau allweddol. Ar yr union brydiau pan fyddech chi'n disgwyl cymorth pendant, rydych chi'n gwynebu dewis rhwng opsiynau sy'n ymddangos yr un mor awdurdodol.
Y datrysiad: dilyn y ddogfen Microsoft Learn yn bennaf ar gyfer camau Azure-benodol, a'r ddogfen Red Hat ar gyfer penderfynau penodol i RHEL - ond rhaid arbrofi.
Os Nad DNS Yw, Mae'n Wal Dân
Mae'r dywediad cymunedol IT "Os nad DNS yw, mae'r wal dân" yn llythrennol wir yn yr achos hwn.
Gosodwyd y peiriant ar Azure. Roedd y porthladdoedd NSG yn gywir. Roedd y cyfeiriad IP yn gywir. Ac eto, roedd SSH yn blocio.
Wedi sawl awr, sylweddolais: fy wal dân IPS/IDS domestig i - sydd gosodwyd mewn ffyrdd mwy sensitif na waliau tân cartref cyffredin - oedd yn blocio ymdrech cychwyn cysylltiad SSH allanol. Nid oedd neges wall yn ddigon amlwg i nodi'r ffynhonnell.
Y datrysiad: defnyddio rheol dros dro i ganiatáu traffig, profi SSH, ailgynnal y profi, ac yna adfer y polisi rheolaeth. Nid yr amser effeithlon, ond dysgais yr wers am yr hyn y gallai wal dân gatre wneud i drafodaethau allanol.
Llwyddiant Olaf - y Delwedd Gallery a'r Sgript
Ar ôl sawl ymdrech gydag opsiynau wahanol Delwedd, y llwyddiant yn y diwedd ddaeth drwy ddefnyddio gosodiadau Delwedd Gallery yn gronolegol gywir cyn creu'r VM - nid fel opsiwn bratiog ar ôl y creu.
Serch hynny, roedd y porthladdoedd cyfresol yn dal ddim yn gweithio. Ar bwynt hwn sylweddolais fod angen tweak kernel hefyd - gosodiad nad oedd yn y ddogfennaeth Microsoft na Red Hat ond oedd yn amlwg o'r ddelwedd Gallery swyddogol.
Am fod gennyf gymaint o gamau wedi'u hen sgriblo mewn nodlyfr a OneNote, penderfynais ysgrifennu sgript .sh i wneud yr holl newidiadau yn drefnus. Roedd hwn yn ymarfer gwych gan ei fod wedi helpu i seilio pob penderfyniad mewn un man. Ar ôl sawl ymgais ychwanegol, adeilades VM a gweithiodd - porthladdoedd cyfresol, SSH, Azure Agent. Yr holl beth. Rhannes y sgript gyda'r cydweithiwr ac fe gadarnhaodd llwyddiant.
Mae hwn yn fanylder bychan yn y broses yr oedd y ddogfennaeth yn annelwig yn ei gylch, ond mae'n gwneud y gwahaniaeth.
Y Gost Annhysgwyl o Egress
Ar ôl i bopeth weithio, edrychais ar reolaeth costau Azure ychydig wythnosau'n ddiweddarach ac roedd pigyn enfawr yno. O gyfartaledd o ~£9 y mis i £63 mewn un cyfnod. Yn ddealladwy, roeddwn i'n sicr fy mod i'n dadneilltuo adnoddau pan nad oeddent yn defnyddio - felly trowm i graffu ar y manylion.
Y rheswm: rhwydwaith egress. Traffig yn gadael Azure yn ôl i fy labordy cartref, a traffig rhwng fy nhanysgrifiad personol a'r weinydd Hyper-V nyth busnes ar Azure. Y ddau yn cyfrannu at fwy na hanner yr holl gost y cyfnod hwnnw.
Yr atgoffa: y tro nesaf rwy'n gwneud profi ar Azure neu unrhyw blatfform cymyl, ffactor y costau rhwydweithio i mewn i'r dadansoddiad. Nid dim ond cyfrifo a storio.
Mae'r sgript a greodd i gael pethau i weithio ar gael ar GitHub - RHEL-Azure-Base-Image-Setup - os yw'n ddefnyddiol fel man cychwyn.
Parhau i archwilio