Med Ansible kan du utföra olika operationer på fjärrmaskiner med råa kommandon eller Ansible-spelböcker. Som standard körs en Ansible-spelbok på fjärrvärden som samma användare på Ansible-styrenheten. Det betyder att om du behöver köra ett kommando som en annan användare på fjärrmaskinen måste du ange det uttryckligen i din Ansible-spelbok.
För att implementera funktionerna för att köra kommandon som en annan användare måste du använda sudo-funktionen som är tillgänglig i Linux-system. Ansible blir direktivet låter dig köra kommandon som den angivna användaren.
Användarens information specificeras i en Ansible-spelbok med hjälp av variablerna, såsom become_pass, för att ange lösenordet för användaren become_user, samt vilken användare som kan köra kommandot.
Hur man kör synliga uppgifter som rot
För att köra ett specifikt kommando som rotanvändare i Ansible kan du implementera direktivet bli och ställa in värdet till 'sant.'Genom att göra detta ber vi Ansible att implementera sudo utan argument när du kör kommandot.
Tänk till exempel på en Ansible-spelbok 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 ringa direktivet om att bli: ja, som visas nedan:
- värdar: allabli: ja
uppgifter:
- namn: Ansible kör som root- och uppdateringssystem
yum:
namn: mysql-server
state: senaste
- namn:
service.service:
namn: mysqld
tillstånd: startat om
I spellägen ovan använde vi direktivet och specificerade inte användaren för användar-användare, eftersom alla kommandon under direktivet körs som root som standard.
Detta liknar att specificera det som:
- värdar: allabli: ja
bli_användare: root
uppgifter:
- namn: Ansible körs som root- och uppdateringssystem
yum:
namn: mysql-server
state: senaste
- namn: tjänst.service:
namn: mysqld
tillstånd: startat 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 normala rotanvändaren, kan du använda direktivet become_user och skicka användarens användarnamn för att utföra uppgiften. Det här är som att använda kommandot sudo -u i Unix.
För att implementera Become_user-direktivet måste du först aktivera Become-direktivet, eftersom Become_user är oanvändbart utan att detta direktiv är aktiverat.
Tänk på följande spelbok, där kommandot körs som ingenanvändare.
- namn: Kör ett kommando som en annan användare (ingen)kommando: ps aux
bli sann
bli_metod: su
bli_användare: ingen
become_flags: '-s / bin / bash'
I ovannämnda playbook-utdrag implementerade vi direktivet om att bli, bli_användare och andra.
- bli_metod: Detta ställer in privilegierings eskaleringsmetoden, till exempel su eller sudo.
- bli_användardirektiv: Detta anger att användaren ska köra kommandot som; detta innebär inte att bli: ja.
- bli_flagg: Detta ställer in flaggorna som ska användas för den angivna uppgiften.
Du kan nu köra spelboken ovan med filnamnet ansible-playbook.yml och se resultatet själv. För uppgifter med utdata kan du behöva implementera felsökningsmodulen.
Hur man kör Ansible blir med lösenord
För att köra ett direktiv som kräver ett lösenord kan du be 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 become_pass.yml - fråga-bli-passDu kan också ange flaggan -K, som utför liknande operationer som ovanstående kommando. Till exempel:
ansible-playbook become_pass.yml -KNär du väl har angett kommer du att bli ombedd att ange ett lösenord när uppgifterna utförs.
NOTERA: Du kan också använda bli direktivet i Ansible AD HOC råkommandon med flaggan -b. Läs mer i dokumentationen nedan:
https: // linkfy.to / becomeDocumentation
Slutsats
Efter att ha läst den här artikeln borde du nu veta hur du använder Ansible BECOME-direktivet för att utföra behörigheter för olika uppgifter.
Av säkerhetsskäl är det bättre att implementera 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.