NMSState: Yfirlýsandi netstillingarverkfæri


Linux vistkerfið býður upp á fjölmargar leiðir til að stilla netkerfi þar á meðal hið vinsæla nmtui GUI tól. Þessi handbók kynnir enn eitt netstillingartæki sem kallast NMSState

NMSstate er yfirlýsandi netstjóri til að stilla netkerfi á Linux vélum. Það er bókasafn sem býður upp á skipanalínuverkfæri sem stjórnar stillingum hýsilnetsins. Það stjórnar hýsingarneti í gegnum yfirlýsingu API á norðurleið. Þegar þessi handbók er skrifuð er NetworkManager púkinn eini veitandinn sem NMSState styður.

Í þessari handbók skoðum við nokkur dæmi um notkun NMSState tólsins. Fyrir þessa handbók munum við sýna fram á þetta með Fedora Linux.

Netstjórnun getur tekið tvær aðferðir - bráðnauðsynleg og yfirlýsandi. Í mikilvægu nálguninni skilgreinir þú beinlínis netkerfi viðmóts með því að keyra skipanir á flugstöðinni. Áherslan er á „hvernig“.

Til dæmis, til að fella netkerfi með því að nota nauðsynlega nálgun, keyrðu skipunina:

$ sudo ifconfig enp0s3 down

Á hinn bóginn notar yfirlýsingaraðferðin YAML skrá til að beita breytingunum á uppsetningu. Flest DevOps hljómsveitarverkfæri eins og Kubernetes nota þessa nálgun til að dreifa belgforritum með YAML skrá.

Þessi nálgun veitir það sem almennt er nefnt Infrastructure as Code (IaC) í DevOps hringjum. Þetta eykur sjálfvirkni netstillingar á gestgjafanum og veitir hraðvirkari og áreiðanlegri leið til að gera margar breytingar á netviðmóti með lágmarks villum.

Nú skulum við skipta um gír og sjá hvernig þú getur notað NMSState stillingartólið til að stilla netviðmótið þitt í Linux.

Skref 1: Settu upp NMSState Networking Config Tool

Við munum koma boltanum í gang með því að setja upp Nmstate. Athugaðu fyrst framboð pakkans frá Fedora geymslum sem hér segir:

$ sudo dnf search nmstate

Frá úttakinu getum við séð að netstjórinn er tiltækur á opinberu geymslunum.

Næst skaltu setja upp NMstate eins og hér segir. Þetta virkar á Fedora 31 og síðari útgáfum.

$ sudo dnf install nmstate

Skipunin setur upp NMSState netstjóra API ásamt öðrum Python ósjálfstæðum.

Þegar uppsetningunni er lokið skaltu ganga úr skugga um að nmstate pakkinn sé settur upp sem hér segir.

$ rpm -qi nmstate

Fyrir RHEL-undirstaða Linux, virkjaðu fyrst copr geymsluna.

$ sudo dnf copr enable nmstate/nmstate-stable

Settu síðan upp NMstate eins og hér segir.

$ sudo dnf install nmstate

Skoðaðu viðbótarleiðbeiningar um hvernig á að setja upp NMSstate frá upprunanum.

Þegar það hefur verið sett upp geturðu athugað hvaða útgáfu af NMstate er uppsett sem hér segir.

$ nmstatectl version

1.0.2

Notkun NMSState Configuration Tool í Linux

Með NMstate uppsett, skulum við fara niður í Knitty-gritties um hvernig þú getur nýtt þér netstjóra API.

Til að skoða núverandi netuppsetningu á netviðmótinu þínu skaltu keyra eftirfarandi skipun. Hér er uppsetning enp0s3 viðmótsins þíns.

$ nmstatectl show enp0s3

Úttakinu er skipt í 4 aðskilda hluta:

  • dns-resolver: Þessi hluti inniheldur uppsetningu nafnaþjóns fyrir tiltekið viðmót.
  • leiðarreglur: Þetta kveður á um leiðarreglur.
  • leiðir: Þetta felur í sér bæði kvikar og kyrrstæðar leiðir.
  • Viðmót: Þessi hluti tilgreinir bæði ipv4 og ipv6 stillingar.

Breyting á netstillingu í Linux

Þú getur notað NMSState stillingartólið til að stilla gestgjafana þína í æskilegt ástand með því að nota annað hvort gagnvirka eða skráabundna stillingu.

  • Gagnvirkt: Þetta breytir netviðmóti með því að nota nmstatectl edit skipunina. Þessi skipun opnar textaritil sem er skilgreindur af EDITOR umhverfisbreytunni. Þegar breytingarnar hafa verið vistaðar beitir NMSState nýju uppsetningunni strax nema setningafræðivillur hafi fundist.
  • Skrá-undirstaða: Í stillingu sem byggir á skrá er viðmótsstillingunni beitt með því að nota YAML eða JSON skrá með því að nota nmstatectl application skipunina.

Leyfðu okkur nú að skíta í hendurnar og athuga hvernig þú getur breytt netstillingum með NMSState.

Fedora kerfið okkar hefur tvö virk netviðmót með eftirfarandi uppsetningu:

$ ip -br -4 a
lo               UNKNOWN        127.0.0.1/8 
enp0s3           UP             192.168.2.104/24 
enp0s8           UP             192.168.2.103/24 

Við munum nota gagnvirka stillingu til að breyta MTU (Maximum Transmission Unit) á enp0s3 netviðmótinu. Sjálfgefið er þetta stillt á 1500 eins og sýnt er.

$ ifconfig

Við munum breyta þessu í 4000. Við munum gera það með því að nota nmstatectl edit skipunina sem hér segir.

$ sudo nmstatectl edit enp0s3

Þetta opnar stillingarnar í textaritli. Fyrir okkar tilvik opnast það í vim ritstjóra. Næst skaltu skruna alla leið niður og finna mtu færibreytuna. Við munum breyta gildinu í 4000, alveg eins og við myndum breyta skrá í vim. Þá munum við vista breytingarnar.

Þegar þú vistar og hættir skránni muntu sjá spæna úttak á flugstöðinni þar sem NMstate vistar breytingarnar. Engin íhlutun er nauðsynleg svo, bara sitja kyrr.

Við skulum nú staðfesta að breytingin var gerð.

$ ifconfig

Frá úttakinu í flugstöðinni getum við séð að við höfum breytt MTU í 4000 frá sjálfgefna 1500 gildinu.

Leyfðu okkur nú að breyta stillingunum með því að nota skráareiginleika. Í þessu dæmi ætlum við að slökkva á IPv6 fyrir enp0s8 netviðmótið. Fyrsta skrefið er að búa til YAML skrá sem mun tilgreina æskilegt ástand enp0s8 netviðmótsins.

$ sudo nmstatectl show enp0s8 > enp0s8.yml

Næst munum við breyta YAML skránni sem hér segir.

$ sudo vim enp0s8.yml

Skrunaðu niður að ipv6 hlutanum. Til að slökkva á IPv6 skaltu stilla virkt færibreytu á falskt og eyða línunum sem hafa verið slegnar í gegn.

Vistaðu stillingarnar og notaðu nýja ástandið með því að nota YAML skrána sem hér segir.

$ sudo nmstatectl apply enp0s8.yml

Keyrðu nú skipunina sem sýnd er til að staðfesta að IPv6 hafi verið óvirkt. Úttakið sem birtist sýnir að IPv6 fyrir enp0s8 netviðmótið er autt, sem gefur til kynna að við höfum gert IPv6 óvirkt á viðmótinu.

$ ip -br a 

Annar mjög handhægur virkni sem NMstate býður upp á er hæfileikinn til að stilla tímabundið æskilegt netkerfi. Þegar þú ert ánægður með uppsetninguna geturðu haldið áfram og gert breytingarnar varanlegar. Annars munu breytingarnar sem gerðar eru fara aftur í upphafsstillingar þegar fresturinn rennur út. Sjálfgefinn tími er 60 sekúndur.

Til að sýna fram á þetta munum við stilla fasta IP tímabundið á enp0s3 viðmótinu og slökkva á DHCP. Enn og aftur skaltu opna skrána með textaritli.

$ sudo vim enp0s3.yml

Skrunaðu að ipv4 hlutanum. Tilgreindu fasta IP - í okkar tilviki 192.168.2.150 og eyddu línunum sem hafa verið strikaðar í gegnum. Að auki, vertu viss um að stilla dhcp færibreytuna á false.

Vistaðu skrána og framkvæmdu breytingarnar tímabundið sem hér segir.

$ sudo nmstatectl apply --no-commit --timeout 20 enp0s3.yml

Valmöguleikinn --no-commit beitir breytingunum tímabundið í tímabil sem er skilgreint af --timeout valmöguleikanum sem, í þessu dæmi, er 20 sekúndur.

Til að sannreyna tímabundna beitingu breytinganna munum við athuga IP stillinguna á 20 sekúndna tímabili.

$ ip -br a 

Frá úttakinu geturðu séð að IP-viðmótsstillingin fór aftur í DHCP eftir 20 sekúndur. IP vistfangið fór aftur í 192.168.2.104 frá fyrri kyrrstöðu stilltu IP sem var 192.168.2.150.

Að vísu er NMSState tólið þægilegt tól til að stilla netviðmótið þitt. Það er yfirlýsingartæki sem beitir æskilegri stillingarstöðu viðmóts gestgjafa með því að nota NetworkManager API.

Ríkið er auðvelt að skilgreina með því að nota annaðhvort gagnvirku nálgunina eða með því að nota skráartengda aðferð sem notar fyrirfram stillta YAML skrá. Þetta eykur sjálfvirkni stillingarverkefna og minnkar villur við uppsetningu.