De Ansible wordt richtlijn om opdrachten uit te voeren als opgegeven gebruiker

Ansible Become Directive Run Commands



Met Ansible kunt u verschillende bewerkingen uitvoeren op externe machines met behulp van onbewerkte opdrachten of Ansible-playbooks. Standaard wordt een Ansible-playbook op de externe host uitgevoerd als dezelfde gebruiker op de Ansible-controller. Dat betekent dat als u een opdracht als een andere gebruiker op de externe computer moet uitvoeren, u dit expliciet in uw Ansible-playbook moet specificeren.

Om de functionaliteit van het uitvoeren van opdrachten als een andere gebruiker te implementeren, moet u de sudo-functie gebruiken die beschikbaar is in Linux-systemen. Met de Ansible word-richtlijn kunt u opdrachten uitvoeren als de opgegeven gebruiker.







De informatie van de gebruiker wordt gespecificeerd in een Ansible-playbook met behulp van de variabelen word, zoals word_pass, om het wachtwoord van de gebruiker word_user op te geven, evenals welke gebruiker de opdracht kan uitvoeren.



Hoe Ansible-taken als root uit te voeren

Om een ​​specifieke opdracht uit te voeren als de rootgebruiker in Ansible, kun je de word-richtlijn implementeren en de waarde instellen op 'true'. Hierdoor vertelt Ansible om sudo zonder argumenten te implementeren bij het uitvoeren van de opdracht.



Denk bijvoorbeeld aan een Ansible playbook die het MySQL-serverpakket bijwerkt en vervolgens opnieuw opstart. Bij normale Linux-bewerkingen zou u moeten inloggen als de rootgebruiker om dergelijke taken uit te voeren. In Ansible kun je de word: yes-richtlijn gewoon aanroepen, zoals hieronder weergegeven:





- hosts: alle

worden:Ja

taken:

- naam: Ansible-runalsroot en update sys

jammie:

naam: mysql-server

staat: laatste

- naam:

dienst.dienst:
naam: mysqld

staat: herstart

In het bovenstaande playbook hebben we de word-richtlijn gebruikt en hebben we niet de gebruiker get_user gespecificeerd, omdat alle opdrachten onder de word-richtlijn standaard als root worden uitgevoerd.

Dit is vergelijkbaar met het specificeren als:



- hosts: alle

worden:Ja

word_user: root

taken:

- naam: Ansible-runalsroot en update sys

jammie:
naam: mysql-server

staat: laatste

- naam:service.service:

naam: mysqld

staat: herstart

Ansible-taken uitvoeren als Sudo

Om een ​​Ansible-taak uit te voeren als een specifieke gebruiker, in plaats van als de normale rootgebruiker, kunt u de instructie being_user gebruiken en de gebruikersnaam van de gebruiker doorgeven om de taak uit te voeren. Dit is vergelijkbaar met het gebruik van de opdracht sudo -u in Unix.

Om de word_user-richtlijn te implementeren, moet u eerst de word-richtlijn activeren, omdat de word_user onbruikbaar is zonder dat deze richtlijn geactiveerd is.

Beschouw het volgende playbook, waarin de opdracht wordt uitgevoerd als de niemand-gebruiker.

- naam: Run aopdracht alseen andere gebruiker(niemand)
opdracht:psvan

worden:waar

word_methode:zijn

word_user: niemand

word_flags:'-s /bin/bash'

In het bovenstaande playbook-fragment hebben we de word-, word_user- en andere word-richtlijnen geïmplementeerd.

  1. worden_methode : Dit stelt de escalatiemethode voor bevoegdheden in, zoals su of sudo.
  2. word_user richtlijn : Dit specificeert de gebruiker om de opdracht uit te voeren als; dit wil niet zeggen: ja.
  3. word_flags : Dit stelt de vlaggen in die voor de opgegeven taak moeten worden gebruikt.

Je kunt nu het bovenstaande playbook uitvoeren met de ansible-playbook bestandsnaam.yml en het resultaat zelf zien. Voor taken met een uitvoer moet u mogelijk de debug-module implementeren.

Hoe Ansible uit te voeren wordt met wachtwoord

Om een ​​word-instructie uit te voeren waarvoor een wachtwoord vereist is, kun je Ansible vertellen om een ​​wachtwoord te vragen bij het aanroepen van het opgegeven playbook.

Als u bijvoorbeeld een playbook met een wachtwoord wilt uitvoeren, voert u de onderstaande opdracht in:

ansible-playbook geworden_pass.yml--vraag-word-pas

U kunt ook de vlag -K opgeven, die soortgelijke bewerkingen uitvoert als de bovenstaande opdracht. Bijvoorbeeld:

ansible-playbook geworden_pass.yml-TOT

Eenmaal opgegeven, wordt u om een ​​wachtwoord gevraagd wanneer de taken worden uitgevoerd.

OPMERKING : U kunt de word-richtlijn ook gebruiken in onbewerkte Ansible AD HOC-opdrachten met behulp van de vlag -b. Bekijk de onderstaande documentatie voor meer informatie:

https://linkfy.to/becomeDocumentatie

Conclusie

Na het lezen van dit artikel, zou u nu moeten weten hoe u de Ansible BECOME-richtlijn moet gebruiken om privilege-escalatie voor verschillende taken uit te voeren.

Om veiligheidsredenen is het beter om voor verschillende accounts beperkingen in te voeren en expliciet aan te geven wanneer ze worden gebruikt. Escalatie van bevoegdheden is dus een belangrijk aspect van het gebruik van sudo en su in Ansible.