Ansible Bli direktiv för att köra kommandon som specificerad användare

Ansible Become Directive Run Commands



Med Ansible kan du utföra olika operationer på fjärrmaskiner med hjälp av råa kommandon eller Ansible playbooks. Som standard körs en Ansible -spelbok på fjärrvärden som samma användare på Ansible -kontrollen. Det betyder att om du behöver köra ett kommando som en annan användare på fjärrdatorn måste du ange det uttryckligen i din Ansible -spelbok.

För att implementera funktionen för att köra kommandon som en annan användare måste du använda sudofunktionen som är tillgänglig i Linux -system. Ansible word -direktivet låter dig köra kommandon som den angivna användaren.







Användarens information specificeras i en Ansible playbook med hjälp av bli -variablerna, till exempel blir_pass, för att ange lösenordet för användaren blir_användare, samt vilken användare som kan köra kommandot.



Hur man kör Ansible Tasks som root

För att köra ett specifikt kommando som rotanvändare i Ansible kan du implementera direktivet för att bli och sätta värdet till 'true'. Om du gör detta får Ansible att implementera sudo utan argument när du kör kommandot.



Tänk till exempel på en Ansible playbook som uppdaterar MySQL-serverpaketet och sedan startar om det. I normala Linux -operationer måste du logga in som rotanvändare för att utföra sådana uppgifter. I Ansible kan du helt enkelt kalla direktivet för bli: ja, som visas nedan:





- värdar: alla

bli:ja

uppgifter:

- namn: Ansible runsomroot och uppdatera sys

yum:

namn: mysql-server

tillstånd: senaste

- namn:

service.service:
namn: mysqld

tillstånd: startas om

I ovanstående spelbok använde vi direktivet för att bli och angav inte användaren bli_användare, eftersom alla kommandon under det här direktivet körs som root som standard.

Detta liknar att ange det som:



- värdar: alla

bli:ja

bli_användare: root

uppgifter:

- namn: Ansible runsomroot och uppdatera sys

yum:
namn: mysql-server

tillstånd: senaste

- namn: service.service:

namn: mysqld

tillstånd: startas om

Hur man kör Ansible Tasks som Sudo

För att köra en Ansible -uppgift som en specifik användare, snarare än den vanliga rotanvändaren, kan du använda direktivet för att bli_användare och skicka användarens användarnamn för att utföra uppgiften. Det här är ungefär som att använda sudo -u -kommandot i Unix.

För att implementera direktivet för att bli_användare måste du först aktivera kommandodirektivet, eftersom bli_användaren är oanvändbar utan att detta direktiv är aktiverat.

Tänk på följande playbook, där kommandot körs som ingen -användare.

- namn: Kör akommando somen annan användare(ingen)
kommando:psav

bli:Sann

bli_metod:dess

bli_användare: ingen

bli_flagg:'-s /bin /bash'

I ovannämnda playbook -kodavsnitt implementerade vi direktivet för bli, bli_användare och andra till direktiv.

  1. bli_metod : Detta anger metoden för upptrappning av privilegier, till exempel su eller sudo.
  2. bli_användardirektiv : Detta anger att användaren ska köra kommandot som; detta betyder inte bli: ja.
  3. bli_flagg : Detta anger flaggorna som ska användas för den angivna uppgiften.

Du kan nu köra ovanstående playbook med ansible-playbook filename.yml och se resultatet själv. För uppgifter med en utmatning kan du behöva implementera felsökningsmodulen.

Hur man kör Ansible blir med lösenord

För att köra ett bli -direktiv som kräver ett lösenord kan du säga åt Ansible att be om ett lösenord när du anropar den angivna spelboken.

Om du till exempel vill köra en spelbok med ett lösenord anger du kommandot nedan:

ansible-playbook blir_pass.yml--fråga-bli-pass

Du kan också ange -K -flaggan, som utför liknande operationer som kommandot ovan. Till exempel:

ansible-playbook blir_pass.yml-TILL

När du har angett det kommer du att bli ombedd att ange ett lösenord när uppgifterna körs.

NOTERA : Du kan också använda bli -direktivet i Ansible AD HOC raw -kommandon med -b -flaggan. Mer information finns i dokumentationen nedan:

https://linkfy.to/becomeDocumentation

Slutsats

Efter att ha läst den här artikeln bör du nu veta hur du använder Ansible BECOME -direktivet för att utföra uppgradering av privilegier för olika uppgifter.

Av säkerhetsskäl är det bättre att införa begränsningar för olika konton och uttryckligen ange när de används. Så eskalering av privilegier är en viktig aspekt av att använda sudo och su i Ansible.