Hva er forskjellen mellom skall og kommando i Ansible?

Hva er forskjellen mellom skall og kommando i Ansible?

I Ansible Core er det forskjellige Ansible -moduler inkludert for nesten alle typer brukssaker. Moduler er også kjent som 'Library eller Task Plugins', diskrete kodeenheter som brukes på Playbook -oppgaven, eller kommandolinjen. Hver ansettelsesmodul kjøres vanligvis på den eksterne målnoden og samler returutgangen. De to mest brukte skallemodulene er skall og kommando.

Skallmodulen i Ansible brukes til å utføre alle skallkommandoer mot de mål-UNIX-baserte vertene. Skallmodulen utfører kommandoer i noder eller skallskript. En annen dedikert Ansible -modul er skript som overfører skallskriptet fra kontrollmaskinen til den eksterne serveren og utfører den. I kommandomodulen kjøres den gitte kommandoen på alle utvalgte noder. Den utførte kommandoen vil ikke bli behandlet gjennom skallet.

Ansible -moduler er nesten like og utfører de samme oppgavene på første visning, men det er noen avgjørende forskjeller mellom disse modulene. Her vil vi nevne i denne artikkelen noen hovedforskjeller mellom skallet og kommandomodulene i Ansible.

Forskjellig mellom skall vs. Kommandomodul i Ansible

I de fleste av brukssakene utfører både skall- og kommandomoduler den samme jobben. Imidlertid er det få hovedforskjeller mellom disse to modulene.

Variabel og operasjonsstøtte

Mens du bruker kommandomodulen, vil ikke kommandoene bli utført gjennom et skall. Følgelig er variabler som $ hjem ikke tilgjengelige, og operasjoner som, | og og vil ikke fungere i dette tilfellet. Hvis du vil bruke disse variablene og operasjonene, må du bruke en skallmodul.

Kommandoutførelse

I skallmodulen blir kommandoer utført gjennom et skall eller som standard i den eksterne noden '/bin/sh'. Som vi har nevnt ovenfor, blir ikke utførelse av kommandoer ikke behandlet gjennom skallet i skallet gjennom skallet. Plasseringen kan endres med et kjørbart alternativ. Rør- og omdirigeringsfunksjoner er derfor tilgjengelige i skallmodulen.

Sikkerhet

Hvis du vil kjøre en kommando forutsigbart og sikkert, anbefales det å bruke kommandomodulen i stedet for skallet. Kommandomodulen vil ikke bli påvirket av brukerens miljø; det er sikrere enn skallmodulen.

Konklusjon

Selv om begge modulene er nyttige, bør du først sjekke om en mer spesifikk ansible modul er tilgjengelig for den gitte oppgaven. Det er beste praksis å bruke moduler i stedet for å utføre RAW -kommandoen fordi moduler oppfyller alle standarder, inkludert unntakshåndtering. Hvis du finner ut at det ikke er noen modul tilgjengelig, er det sikrere å bruke kommandomodulene fordi oppgaver ikke vil bli påvirket gjennom brukermiljøoppsettet. Bruk skallmodulene hvis du trenger noen spesifikke variable funksjoner og operasjoner.