Ansible

Hvordan lage en katalog i Ansible

Hvordan lage en katalog i Ansible

Ansible er et av de beste automatiseringsverktøyene som er tilgjengelige, og tilbyr enkle, intuitive og kraftige verktøy for å utføre automatiseringsoppgaver i den moderne verden.

For de fleste automatiseringsoppgaver må du opprette kataloger, spesielt når du installerer forskjellige verktøy og applikasjoner, sikkerhetskopier og gjenoppretting. Selv om du kan utføre disse oppgavene ved hjelp av et automatisert skript, gir Ansible bedre funksjonalitet, slik at du kan lage kataloger i spesifiserte verter.

Denne veiledningen viser deg hvordan du bruker Ansible-filmodulen til å opprette, fjerne og endre katalogtillatelser for spesifiserte verter.

Hvordan lage en katalog i Ansible

En av følgende metoder kan brukes til å opprette en katalog i Ansible:

For å opprette en katalog i Ansible ved hjelp av kommandomodulen, skriv inn kommandoen vist nedenfor:

$ ansible all -m command -a "mkdir ~ / backups"

Etter å ha skrevet inn kommandoen ovenfor, bør du få utdataene vist nedenfor:

Skriv inn passordfrase for nøkkel / hjem / bruker /.ssh / id_rsa ':
[ADVARSEL]: Vurder å bruke filmodulen med state = katalog i stedet for å kjøre 'mkdir'.  Hvis du trenger å bruke kommando fordi filen ikke er tilstrekkelig, kan du legge til 'warn: false' til denne kommandooppgaven eller sette 'command_warnings = False' i synlig.cfg for å bli kvitt denne meldingen.
35.222.210.12 | ENDRET | rc = 0 >>

Kontroller at beholdningen for Ansible-verter i / etc / ansible / hosts inneholder riktig informasjon om dine eksterne verter.

Selv om kommandomodulen er enkel å bruke på en enkelt Ansible-vert, blir den veldig ineffektiv når det gjelder flere verter med forskjellige kataloger og oppgaver.

For å motvirke denne ulempen, vil vi bruke Ansible-filmodulen og bygge en spillbok som inneholder vertene vi vil bruke og katalogene vi ønsker å lage.

MERK: Filmodulen kan også brukes som en enkelt kommando i Ansible, men den fungerer omtrent som kommandomodulen.

For å bruke en Ansible-spillbok, opprett en YAML-fil og skriv inn følgende oppføringer for å opprette en katalog:

- verter: alle oppgaver:
- navn: Ansible filmodul opprette katalog
fil:
sti: ~ / sikkerhetskopier
tilstand: katalog

Lagre filen og bruk ansible-playbook til å lage kataloger:

ansible-playbook mkdir.yml

Dette skal gi en utgang som den nedenfor, noe som indikerer at handlingene ble utført med suksess ved hjelp av den angitte spillboksfilen.

Spill alt] ********************************************** ************************************************* *************
OPPGAVE [Gathering Facts] ********************************************* ************************************************* **
Skriv inn passordfrase for nøkkel / hjem / bruker /.ssh / id_rsa ':
ok: [35.222.210.12]
OPPGAVE [Ansvarlig filmodul opprette katalog] ***************************************** *********************************
ok: [35.222.210.12]
SPILL RECAP *********************************************** ************************************************* ***********
35.222.210.12: ok = 2 endret = 0 ikke tilgjengelig = 0 mislyktes = 0 hoppet over = 0 reddet = 0 ignorert = 0

Hvordan lage flere kataloger med varer

Ansible spillbøker lar deg også opprette flere kataloger ved hjelp av with_items-setningen i YAML-filen.

For eksempel, for å lage sikkerhetskopier for de tre tjenestene, MySQL, repository og config, kan du bygge oppgaven som vises i YAML-filen nedenfor:

- verter: alle oppgaver:
- navn: Ansible oppretter flere kataloger med_items
fil:
sti: ~ / sikkerhetskopier / item
tilstand: katalog
med_elementer:
- 'mysql'
- 'oppbevaringssted'
- 'config'

Lagre filen ovenfor og kjør den med ansible-playbook.

$ ansible-playbook mkdir_multi.yml SPILL [alle] ******************************************** ************************************************* ************************************************* ************************************************* ***
OPPGAVE [Gathering Facts] ********************************************* ************************************************* ************************************************* ****************************************
Skriv inn passordfrase for nøkkel / hjem / bruker /.ssh / id_rsa ':
ok: [35.222.210.12]
TASK [Ansible, opprett flere kataloger med_items] ***************************************** ************************************************* ************************************************* *************
endret: [35.222.210.12] => (vare = mysql)
endret: [35.222.210.12] => (item = repository)
endret: [35.222.210.12] => (item = config)
SPILL RECAP *********************************************** ************************************************* ************************************************* *************************************************
35.222.210.12: ok = 2 endret = 1 ikke tilgjengelig = 0 mislyktes = 0 hoppet over = 0 reddet = 0 ignorert = 0

Spillboken ovenfor skal opprette flere kataloger, for eksempel ~ / backups / mysql, ~ / backups / repository, og ~ / backups / config.

$ ls -la

Kataloglisten er som vist nedenfor:

totalt 0
drwxrwxr-x. 5 debian debian 51 Mar 6 17:26 .
drwx------. 6 debian debian 117 Mar 6 17: 26…
drwxrwxr-x. 2 debian debian 6 Mar 6 17:26 config
drwxrwxr-x. 2 debian debian 6 mar 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6 Mar 6 17:26 repository

Hvordan sette tillatelser for en katalog

Ansible lar deg spesifisere tillatelser for en katalog ved hjelp av modusdirektivet. Tenk på følgende spillbok, som oppretter en katalog og angir tillatelser:

- verter: alle
oppgaver:
- navn: Ansible opprette katalog og angi tillatelser
fil:
sti: / sikkerhetskopier
tilstand: katalog
modus: "u = rw, g = wx, o = rwx"
bli: ja

I oppføringen ovenfor opprettet vi en katalog i /. Vi trengte også å bli rot, derav bli: ja oppføring.

$ ansible-playbook-tillatelse.yml SPILL [alle] ******************************************* ************************************************* ************************************************* ************************************************* ***
OPPGAVE [Gathering Facts] ********************************************* ************************************************* ************************************************* ****************************************
Skriv inn passordfrase for nøkkel / hjem / bruker /.ssh / id_rsa ':
ok: [35.222.210.12]
OPPGAVE [Ansible opprette katalog og angi tillatelser] **************************************** ************************************************* ************************************************* ****************
endret: [35.222.210.12]
SPILL RECAP *********************************************** ************************************************* ************************************************* *************************************************
35.222.210.12: ok = 2 endret = 1 ikke tilgjengelig = 0 mislyktes = 0 hoppet over = 0 reddet = 0 ignorert = 0

Hvis du ser tillatelsene til katalogen vi opprettet, vil du se følgende:

$ ls -lrt / | grep-sikkerhetskopier

Resultatet er som vist nedenfor:

drw - wxrwx.   2 rotrot 6 mar 6 17:36 sikkerhetskopier

Slik endrer du rekursivt tillatelser i en katalog

For å endre tillatelsene til en katalog og dens filer rekursivt, spesifiser du bare den rekursive oppføringen, som vist nedenfor:

- verter: alle
oppgaver:
- navn: Ansible opprette katalog og angi tillatelser
fil:
sti: / sikkerhetskopier
tilstand: katalog
modus: "u = rw, g = wx, o = rwx"
rekursiv: ja
bli: ja

Hvordan sette tillatelser i flere kataloger

Å sette opp tillatelser for flere kataloger i Ansible er også så enkelt som noen få linjer med oppføringer. Tenk på følgende spillbok.

- verter: alle
oppgaver:
- navn: Ansible oppretter flere kataloger med tillatelser
fil:
sti: "element.sti "
modus: "element.modus"
tilstand: katalog
med_elementer:
- path: '~ / backups / mysql', mode: '0777'
- path: '~ / backups / repository', mode: '0755'
- path: '~ / backups / config', mode: '0707'

Hvordan slette en katalog i Ansible

For å fjerne en katalog og alt innholdet ved hjelp av en Ansible-spillbok, spesifiser du tilstanden som fraværende, som vist nedenfor:

- verter: alle
oppgaver:
- navn: Ansible slett katalog
fil:
sti: / sikkerhetskopier
tilstand: fraværende
bli: ja

Denne kommandoen vil fjerne katalogen og alle barnefilene og katalogene.

MERK: Forsikre deg om at du har tillatelser til katalogen du jobber med.

Hvordan lage en tidsstemplet katalog

I noen tilfeller kan det hende du må opprette en katalog med et tidsstempel festet til det, noe som kan være veldig nyttig, spesielt når du lager sikkerhetskopier. For å opprette en tidsstemplet katalog, kan vi bruke variabelen ansible_date_time.

Tenk på følgende spillbok:

- verter: alle
oppgaver:
- navn: Ansible legg til tidsstempel i katalogen
fil:
sti: "/ backup / mysql ansible_date_time.Dato"
tilstand: katalog
modus: "0777"
bli: ja

Når du har kjørt spillboken, vil du ha en katalog med tidsstempelet.

$ ls -l

Katalogoppføringen skal være som vist nedenfor:

totalt 0 drwxrwxrwx. 2 rotrot 6 mar 6 18:03 mysql2021-03-06

MERK: For å unngå feil, sjekk alltid YAML-filsyntaks som du har tenkt å bruke i Ansible.

Konklusjon

Denne veiledningen viste deg at det er veldig enkelt og intuitivt å jobbe med Ansible-moduler, noe som gjør automatisering av komplekse oppgaver enklere. Ved hjelp av Ansible-filmodulen kan du opprette en eller flere kataloger og legge til tillatelser for hver. Du kan også bruke den samme modulen til å fjerne en katalog. For mer informasjon om hvordan du bruker Ansible-filmodulen, sjekk den offisielle dokumentasjonen på ressurssiden.

Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...
Hvordan fange opp og streame spilløkten din på Linux
Tidligere ble spill bare ansett som en hobby, men med tiden så spillindustrien en enorm vekst når det gjelder teknologi og antall spillere. Spillpubli...
Beste spill å spille med håndsporing
Oculus Quest introduserte nylig den gode ideen om håndsporing uten kontrollere. Med et stadig økende antall spill og aktiviteter som utfører støtte en...