NMState: Deklaratiw torlaýyn konfigurasiýa guraly
Linux ekosistemasy, meşhur nmtui GUI kömekçi programmasyny goşmak bilen seti düzmegiň köp usullaryny hödürleýär. Bu gollanma, NMState diýlip atlandyrylýan başga bir tor konfigurasiýa guraly bilen tanyşdyrýar
NMState, Linux hostlarynda tor gurmak üçin deklaratiw tor dolandyryjysy. Bu, host ulgam sazlamalaryny dolandyrýan buýruk setirini üpjün edýän kitaphanadyr. Demirgazykda ýerleşýän deklaratiw API arkaly host ulgamyny dolandyrýar. Bu gollanmany ýazan wagtyňyz NetworkManager daemon, NMState tarapyndan goldanýan ýeke-täk üpjün ediji.
Bu gollanmada, NMState guralynyň käbir mysal ulanylyşyna seredýäris. Bu gollanma üçin muny Fedora Linux ulanyp görkezeris.
Tor dolandyryşy iki çemeleşip biler - Imperator we deklaratiw. Hökmany çemeleşmede, terminalda buýruklary işledip, interfeýsiň set ýagdaýyny aç-açan kesgitleýärsiňiz. Esasy üns “nädip”.
Mysal üçin, hökmany çemeleşmäni ulanyp, bir ulgamy ýykmak üçin buýrugy işlediň:
$ sudo ifconfig enp0s3 down
Beýleki tarapdan, deklaratiw çemeleşme üýtgeşmeleri konfigurasiýa ulanmak üçin YAML faýly ulanýar. Kubernetes ýaly DevOps orkestr gurallarynyň köpüsi, YAML faýly ulanyp, pod programmalaryny ýerleşdirmek üçin bu çemeleşmäni ulanýar.
Bu çemeleşme, DevOps töwereklerinde köplenç infrastruktura diýilýän zady kod (IaC) bilen üpjün edýär. Bu, öý eýesindäki tor konfigurasiýasynyň awtomatlaşdyrylmagyny güýçlendirýär we minimal ýalňyşlyklar bilen tor interfeýsine birnäçe üýtgeşme girizmegiň çalt we ygtybarly usulyny üpjün edýär.
Indi, dişli çalyşalyň we Linux interfeýslerini sazlamak üçin NMState konfigurasiýa guralyny nädip ulanyp boljakdygyny göreliň.
1-nji ädim: NMState Networking Config Tool guruň
Nmstate gurup, topuň aýlanmagyny alarys. Ilki bilen, Fedora ammarlaryndan bukjanyň elýeterliligini aşakdaky ýaly barlaň:
$ sudo dnf search nmstate
Çykyşdan, tor ammarynyň resmi ammarlarda elýeterlidigini görüp bileris.
Ondan soň NMstate-i aşakdaky ýaly guruň. Bu “Fedora 31” we soňraky wersiýalarynda işleýär.
$ sudo dnf install nmstate
Buýruk, beýleki Python baglylyklary bilen birlikde NMState tor dolandyryjysy API gurýar.
Gurmak gutaransoň, nmstate paketiniň aşakdaky ýaly gurlandygyny barlaň.
$ rpm -qi nmstate
RHEL esasly Linux üçin ilki bilen ammar ammaryny işlediň.
$ sudo dnf copr enable nmstate/nmstate-stable
Soňra NMstate-i aşakdaky ýaly guruň.
$ sudo dnf install nmstate
Çeşmeden NMState nädip gurmalydygy barada goşmaça görkezmeleri gözden geçiriň.
Gurlandan soň, NMstate gurnalan wersiýasyny aşakdaky ýaly barlap bilersiňiz.
$ nmstatectl version 1.0.2
Linux-da NMState konfigurasiýa guralyny ulanmak
NMstate gurlansoň, Network Manager API-den nädip peýdalanyp boljakdygyňyzy Knitty-gritties-e geçeliň.
Tor interfeýsiňiziň häzirki tor konfigurasiýasyny görmek üçin aşakdaky buýrugy işlediň. Ine, enp0s3 interfeýsiňiziň konfigurasiýasy.
$ nmstatectl show enp0s3
Çykyş 4 aýratyn bölüme bölünýär:
- dns-çözüji: Bu bölümde belli bir interfeýs üçin at serweriniň konfigurasiýasy bar.
- marşrut düzgünleri: Bu marşrut düzgünlerini göz öňünde tutýar.
- ugurlar: Bu hem dinamiki, hem statiki ugurlary öz içine alýar.
- Interfeýsler: Bu bölümde ipv4 we ipv6 sazlamalary görkezilýär.
Linux-da tor konfigurasiýasyny üýtgetmek
Öý eýeleriňizi interaktiw ýa-da faýl esasly re usingimleri ulanyp, islenýän ýagdaýa düzmek üçin NMState konfigurasiýa guralyny ulanyp bilersiňiz.
- Interaktiw: Bu nmstatectl redaktirleme buýrugyny ulanyp, tor interfeýsini redaktirleýär. Bu buýruk, EDITOR gurşaw üýtgeýjisi bilen kesgitlenýän tekst redaktoryny açýar. Üýtgeşmeler ýatda saklanandan soň, sintaksis ýalňyşlary ýüze çykarylmasa, NMState täze konfigurasiýany derrew ulanýar.
- Faýl esasly: Faýl esasly tertipde, nmstatectl amaly buýrugyny ulanyp, interfeýs konfigurasiýasy YAML ýa-da JSON faýly ulanylýar.
Indi ellerimizi hapalap, NMState ulanyp, tor konfigurasiýasyny nädip üýtgedip boljakdygyny barlalyň.
Fedora ulgamymyzda aşakdaky konfigurasiýa bilen iki sany işjeň ulgam interfeýsi bar:
$ 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
Enp0s3 tor interfeýsiniň MTU-ny (Maksimum geçiriş bölümi) üýtgetmek üçin interaktiw re modeimi ulanarys. Düzgüne görä, bu görkezilişi ýaly 1500-e düzüldi.
$ ifconfig
Muny 4000-e üýtgederis. Nmstatectl redaktirleme buýrugyny aşakdaky ýaly ulanarys.
$ sudo nmstatectl edit enp0s3
Bu konfigurasiýany tekst redaktorynda açýar. Biziň üçin, vim redaktorynda açylýar. Ondan soň, aşaklygyna aýlaň we mtu parametrini tapyň. Vim faýly redaktirleýşimiz ýaly bahany 4000-e üýtgederis. Soňra üýtgeşmeleri ýatda saklarys.
Faýly ýatda saklanyňyzda we çykanyňyzda, NMstate üýtgeşmeleri tygşytlaýarka, terminalda käbir gysylan çykyşlary görersiňiz. Şonuň üçin hiç hili gatyşma zerur däl, oturyň.
Üýtgeşmäniň edilendigini indi tassyklalyň.
$ ifconfig
Terminalyň çykyşyndan, MTU-ny üstünlikli 1500 bahasyndan 4000-e üstünlikli üýtgedendigimizi görüp bileris.
Indi faýl esasly re usingimi ulanyp konfigurasiýany üýtgedeliň. Bu mysalda, enp0s8 tor interfeýsi üçin IPv6-y öçüreris. Birinji ädim, enp0s8 tor interfeýsiniň islenýän ýagdaýyny görkezjek YAML faýly döretmekdir.
$ sudo nmstatectl show enp0s8 > enp0s8.yml
Ondan soň, YAML faýlyny aşakdaky ýaly redaktirläris.
$ sudo vim enp0s8.yml
Ipv6 bölümine aşak aýlaň. IPv6-y öçürmek üçin, işledilen parametri ýalňyş düzüň we urlan setirleri pozuň.
Sazlamany ýazdyryň we YAML faýlyny aşakdaky ýaly ulanyp täze ýagdaýy ulanyň.
$ sudo nmstatectl apply enp0s8.yml
Indi IPv6-yň ýapykdygyny barlamak üçin görkezilen buýrugy işlediň. Görkezilen çykyş, enp0s8 tor interfeýsi üçin IPv6-nyň boşdygyny görkezýär, bu bolsa interfeýsde IPv6-ny üstünlikli öçürendigimizi görkezýär.
$ ip -br a
NMstate-iň berýän başga bir amatly funksiýasy, islenýän ulgam ýagdaýyny wagtlaýyn düzmek ukybydyr. Sazlama bilen kanagatlananyňyzdan soň, üýtgeşmeleri hemişelik edip bilersiňiz. Otherwiseogsam, edilen üýtgeşmeler möhleti gutarandan soň başlangyç sazlamalara gaýdyp geler. Bellenen wagt gutarmagy 60 sekunt.
Muny görkezmek üçin enp0s3 interfeýsinde wagtlaýyn statiki IP gurarys we DHCP-i öçüreris. Textene bir gezek tekst redaktoryny ulanyp faýla giriň.
$ sudo vim enp0s3.yml
Ipv4 bölümine aýlaň. Statik IP-ni kesgitläň - biziň ýagdaýymyzda 192.168.2.150 we çyzylan setirleri pozuň. Mundan başga-da, dhcp parametrini ýalňyş diýip belläň.
Faýly ýazdyryň we üýtgeşmeleri wagtlaýyn ýerine ýetiriň.
$ sudo nmstatectl apply --no-commit --timeout 20 enp0s3.yml
- ýerine ýetirmezlik
opsiýasy --timeout
opsiýasy bilen kesgitlenen döwürdäki üýtgeşmeleri wagtlaýyn ulanýar, bu mysalda 20 sekunt.
Üýtgeşmeleriň wagtlaýyn ulanylyşyny barlamak üçin, IP konfigurasiýasyny 20 sekunt aralygynda barlarys.
$ ip -br a
Çykyşdan, interfeýs IP konfigurasiýasynyň wagt aralygy 20 sekuntdan soň DHCP-e gaýdyp gelendigini görüp bilersiňiz. IP adresi, 192.168.2.150 bolan öňki statiki düzülen IP-den 192.168.2.104-e gaýdyp geldi.
Elbetde, NMState guraly tor interfeýsleriňizi düzmek üçin amatly guraldyr. NetworkManager API ulanyp, öý eýesiniň interfeýsiniň islenýän konfigurasiýa ýagdaýyny ulanýan deklaratiw gural.
Döwlet interaktiw çemeleşme ýa-da öňünden düzülen YAML faýlyny ulanýan faýl esasly usuly ulanmak arkaly aňsat kesgitlenýär. Bu konfigurasiýa meseleleriniň awtomatlaşdyrylmagyny we konfigurasiýa wagtynda ýalňyşlyklaryň azalmagyny güýçlendirýär.