Hvordan få mest mulig ut av Ansible Unarchive

Hvordan få mest mulig ut av Ansible Unarchive
Unhchiving refererer til dekompresjon av filer som er i .Zip, tjære og tjære.GZ -format. Det er prosessen via hvilke filer som er gjenopprettet fra et eksisterende arkiv. Dette arkivet kan være til stede lokalt på systemet ditt eller på en ekstern server.

Arkivering har sine fordeler, den største av dem er enkel bærbarhet. Det lar deg gruppere filer av forskjellige typer og komprimere dem til en enkelt bærbar .ZIP/TAR -fil som kan dekomprimeres for å hente de originale filene senere.

Ansible gir også arkivalternativer ved hjelp av Ansible.bygget.Unarkivmodul. Denne modulen har unzip -alternativene tilgjengelige, sammen med noen alternativer som lar den kopiere filer før du henter dem ut.

Denne guiden er ment å hjelpe deg med å lære hvordan du kan bruke unarkivmodulen i Ansible. Vi vil gå over det grunnleggende i Unarchive -modulen, noen vanlige parametere og eksempler på hvordan du implementerer dem.

Når det er sagt, la oss begynne.

Forutsetninger for unarkiv i Ansible

Følgende er kravene til at Ansible Unarchive -modulen skal fungere ordentlig på systemet ditt.

  • Et system med Ansible forhåndsinstallert. Vi anbefaler at du bruker en Linux -distribusjon.
  • Eksterne verter, enten separate systemer eller virtuelle maskiner. Programvare som Oracle VirtualBox, Vagrant og VMware -arbeidsstasjoner er perfekte for jobben.
  • "Zipinfo", "GTAR" og "Unzip" -kommandoer skal installeres på verten.

Vi vil også anbefale at du har noen grunnleggende kunnskaper om hvordan du utfører kommandoer i terminalen.

Begrensninger av unarkiv i Ansible

Mens unarkivmodulen fungerer bra med .tjære, og .ZIP -filer, det kan ikke brukes med filer av typen .gz, .BZ2, .XZ -filer. Filer må inneholde en .tjærearkiv for at modulen skal fungere. For filer som bruker GTAR, må du sørge for at -diff -argumentet støttes.

Den neste delen av denne guiden vil dekke parametrene til Unarkive -modulen.

Parametere for Ansible Unarchive -modulen

Ansible Unarchive -modulen har sin egen liste over parametere som utvider funksjonaliteten til den generelle modulen.

En liste over viktige moduler er gitt nedenfor.

  • “Attributter” - Disse styrer attributtene til et gitt filsystemobjekt.
  • “Copy” - Denne funksjonen kommer med to valg, ja eller nei. Hvis det valgte alternativet er ja, blir filen kopiert til den eksterne verten fra den lokale enheten.
  • “Creates” - Brukes til å lage en bane/katalog.
  • “Ekskluder” - lar deg ekskludere visse filer og kataloger fra å bli trukket ut.
  • ”Gruppe” - utpeker en gruppe som filsystemobjektet tilhører.
  • “Inkluder” - Inkluder filer og kataloger som du vil trekke ut.
  • “Mode” - Regjerer tillatelsene til filsystemet.
  • “Eier” - Angir en bruker som eier av et filsystemobjekt

Bortsett fra parametrene ovenfor, er flere alternativer tilgjengelige med Ansible Unarchive -modulen. For mer informasjon om parametrene, sjekk ut den offisielle Ansible Unarchive Module -dokumentasjonen online.

Den neste delen av denne guiden vil gå over noen eksempler på hvordan du bruker unarkiv i Ansible.

Bruke unarkiv for å trekke ut en fil i en gitt katalog

Følgende eksempel illustrerer hvordan du kan trekke ut a .TGZ -fil (kalt arkiv.tgz) til en gitt sti.

- Navn: Trekk ut arkiv.tgz inn/var/lib/arkiv
Ansible.bygget.Unarkiv:
SRC: Arkiv.tgz
dest:/var/lib/arkiv

Utfør nå denne kommandoen i Linux -terminalen for å kjøre en spillbok.

Ansible-Playbook Testbook.yml

“SRC” betegner filen som skal tas ut mens “Dest:” brukes til å spesifisere banen.

Vi skal se flere eksempler for å forstå hvordan du bruker unarkivmodulen bedre.

Unarkiv en fil tilgjengelig på den eksterne verten

Følgende eksempel illustrerer hvordan du kan trekke ut en fil som allerede er til stede på den eksterne verten eller maskinen.

- Navn: Pakk ut en fil som allerede er til stede på det eksterne systemet.
Ansible.bygget.Unarkiv:
src: /tmp /arkiv.glidelås
dest:/usr/local/bin
Remote_src: Ja

Den nevnte koden vil trekke ut filarkivet.Zip in/usr/local/bin.

Bruke unarkivmodulen for å trekke ut en fil som er online

Dette var en funksjon som ble lagt til i Ansible versjon 2.0. Den lar deg trekke ut en fil som er tilgjengelig på nettet som ikke er lastet ned ennå på systemet.

Følgende eksempel illustrerer hvordan du kan oppnå dette.

- Navn: Pakk ut en fil som ikke er lastet ned ennå på systemet ditt
Ansible.bygget.Unarkiv:
SRC: https: ///.glidelås
dest:/usr/local/bin
Remote_src: Ja

Den nevnte kodeblokken vil trekke ut filen i destinasjonsstien/usr/lokal/bin.

Forskjellen i spillkode med og uten unarkiv

Følgende eksempel er ment å hjelpe deg med å se forskjellen mellom kode som benytter seg av unarkiv -kommandomodulen.

Vi starter med å ta en titt på hvordan du skriver koden for å kopiere og unarkive filer. Vi bruker kopimodulen sammen med TAR -XVF -kommandoen for utvinning.

---
- Navn: Kopier en gitt fil og trekker ut innholdet
Verter: Test_servere
vars:
- UserId: "Linuxuser1"
- oracle_home: "/opt/oracle"
- JDK_INSTL_FILE: "Server-Linux.tjære.gz "(navn på .tjære.GZ -fil.)
oppgaver:
- Navn: Kopier innholdet i JDK -filene
Bli: Ja
bli_user: "userId"
Tagger: app, cpbinaries
kopiere:
src: "item"
dest: "oracle_home"
Mode: 0755
med_items:
- "jdk_instl_file"
- Navn: Installer Java
Bli: Ja
bli_user: "userId"
Tagger: Javainstall
Shell: "TAR XVFZ Oracle_Home/jdk_instl_file"
args:
chdir: "oracle_home"
Register: Javainstall

De samme oppgavene kan oppnås på en mye enklere måte ved å bruke unarkivmodulen som vist nedenfor.

---
- Navn: Kopier en gitt fil og trekker ut innholdet
Verter: Test_servere
vars:
- UserId: "Linuxuser1"
- oracle_home: "/opt/oracle"
- JDK_INSTL_FILE: "Server-Linux.tjære.gz "
oppgaver:
- Navn: Kopier og installer JDK -innhold og Java
Bli: Ja
bli_user: "userId"
Tagger: Javainstall
Unarkiv:
src: "item"
dest: "oracle_home"
Mode: 0755
med_items:
- "jdk_instl_file"

Legg merke til hvordan det er en betydelig reduksjon i kodelinjene sammenlignet med metoden som ikke bruker unarkivmodulen. Ved å bruke unarkivmodulen, kunne vi slå sammen oppgaven til å kopiere og unarkives inn i en.

Konklusjon

Vi håper denne guiden hjalp deg med å lære hvordan du kan bruke unarkivmodulen i Ansible. Vi dekket det grunnleggende i modulen sammen med begrensninger, forutsetninger og parametere. Vi gikk også over noen eksempler for å forbedre vår forståelse. Med dette ønsker vi deg alt godt i å lære å bruke Ansible.