Ved hjelp av Ansible kan du utføre forskjellige operasjoner på eksterne maskiner ved hjelp av rå kommandoer eller Ansible spillbøker. Som standard kjøres en Ansible-spillbok på den eksterne verten som den samme brukeren på Ansible-kontrolleren. Det betyr at hvis du trenger å kjøre en kommando som en annen bruker på den eksterne maskinen, må du spesifisere den eksplisitt i Ansible-spillboken.
For å implementere funksjonaliteten til å kjøre kommandoer som en annen bruker, må du bruke sudo-funksjonen som er tilgjengelig i Linux-systemer. Ansible blir-direktivet lar deg kjøre kommandoer som den angitte brukeren.
Brukerens informasjon er spesifisert i en Ansible-spillbok ved hjelp av bli-variablene, for eksempel blitt_pass, for å spesifisere passordet til brukeren blir_bruker, samt hvilken bruker som kan kjøre kommandoen.
Hvordan kjøre synlige oppgaver som rot
For å kjøre en bestemt kommando som rotbruker i Ansible, kan du implementere direktivet bli og sette verdien til 'sann.'Å gjøre dette forteller Ansible å implementere sudo uten argumenter når du kjører kommandoen.
Tenk for eksempel på en Ansible-spillbok som oppdaterer MySQL-serverpakken og deretter starter den på nytt. I normale Linux-operasjoner må du logge på som rotbruker for å utføre slike oppgaver. I Ansible kan du ganske enkelt kalle direktivet om å bli: ja, som vist nedenfor:
- verter: allebli: ja
oppgaver:
- navn: Ansible kjøres som root og oppdater sys
yum:
navn: mysql-server
tilstand: siste
- Navn:
service.service:
navn: mysqld
tilstand: startet på nytt
I spillboken ovenfor brukte vi bli direktivet og spesifiserte ikke brukeren bruker, siden alle kommandoer under direktivet blir kjørt som root som standard.
Dette ligner på å spesifisere det som:
- verter: allebli: ja
bli_bruker: rot
oppgaver:
- navn: Ansible kjøres som root og oppdater sys
yum:
navn: mysql-server
tilstand: siste
- navn: tjeneste.service:
navn: mysqld
tilstand: startet på nytt
Hvordan kjøre brukbare oppgaver som Sudo
For å kjøre en Ansible-oppgave som en spesifikk bruker, i stedet for den vanlige rotbrukeren, kan du bruke blitt_brukerdirektivet og sende brukerens brukernavn til å utføre oppgaven. Dette er ganske som å bruke sudo -u-kommandoen i Unix.
For å implementere blitt_brukerdirektivet, må du aktivere bli direktivet først, da blir_bruker er ubrukelig uten at dette direktivet er aktivert.
Tenk på følgende spillbok, der kommandoen kjøres som ingen bruker.
- navn: Kjør en kommando som en annen bruker (ingen)kommando: ps aux
bli: sann
bli_metode: su
blitt_bruker: ingen
blitt_flags: '-s / bin / bash'
I den ovennevnte utdraget av spillboken implementerte vi direktivet om bli, bli_bruker og annet.
- bli_metode: Dette angir metode for opptrapping av privilegier, for eksempel su eller sudo.
- blir_brukerdirektivet: Dette spesifiserer at brukeren skal kjøre kommandoen som; dette innebærer ikke blitt: ja.
- bli_flagg: Dette angir flaggene som skal brukes til den angitte oppgaven.
Du kan nå kjøre spillboken ovenfor med ansible-playbook-filnavnet.yml og se resultatet selv. For oppgaver med utdata, må du kanskje implementere feilsøkingsmodulen.
Hvordan kjøre Ansible blir med passord
For å kjøre et direktiv som krever et passord, kan du be Ansible om å be om et passord når du påkaller den angitte spillboken.
For eksempel, for å kjøre en spillbok med et passord, skriv inn kommandoen nedenfor:
ansible-playbook blir_pass.yml - spør-bli-passDu kan også spesifisere -K-flagget, som utfører lignende operasjoner som kommandoen ovenfor. For eksempel:
ansible-playbook blir_pass.yml -KNår du har angitt, blir du bedt om å oppgi et passord når oppgavene utføres.
MERK: Du kan også bruke bli direktivet i Ansible AD HOC rå kommandoer ved hjelp av -b flagget. For å lære mer, sjekk dokumentasjonen nedenfor:
https: // linkfy.til / bli Dokumentasjon
Konklusjon
Etter å ha lest denne artikkelen, bør du nå vite hvordan du bruker Ansible BECOME-direktivet for å utføre rettighetsopptrapping for forskjellige oppgaver.
Av sikkerhetsmessige årsaker er det bedre å implementere begrensninger for forskjellige kontoer og eksplisitt spesifisere når de brukes. Så eskalering av privilegier er et viktig aspekt ved bruk av sudo og su i Ansible.