2016-04-05 9 views
4

Ich muss verschiedene anssible Aufgaben als root ausführen, aber aus Sicherheitsgründen kann ich dies nur tun, indem ich den Befehl "super su-root" ausführen und das Passwort eintippe. Kein Sudo erlaubt. Ist es möglich, den Benutzer nach der Anmeldung so zu wechseln?Benutzer nach der Anmeldung in Ansible wechseln

+0

Was ist Ihre ansible Version? – helloV

+0

Gebäude von der Quelle, so spät. –

Antwort

1

Ja, es ist möglich:

Directives 

These can be set from play to task level, but are overriden by connection variables as they can be host specific. 

become 
set to ‘true’/’yes’ to activate privilege escalation. 

become_user 
set to user with desired privileges, the user you ‘become’, NOT the user you login as. Does NOT imply become: yes, to allow it to be set at host level. 

become_method 
at play or task level overrides the default method set in ansible.cfg, set to ‘sudo’/’su’/’pbrun’/’pfexec’/’doas’ 

Connection variables 
Each allows you to set an option per group and/or host, these are normally defined in inventory but can be used as normal variables. 

ansible_become 
equivalent of the become directive, decides if privilege escalation is used or not. 

ansible_become_method 
allows to set privilege escalation method 

ansible_become_user 
allows to set the user you become through privilege escalation, does not imply ansible_become: True 

ansible_become_pass 
allows you to set the privilege escalation password 

http://docs.ansible.com/ansible/become.html

+0

Werde nicht funktioniert afaik, da das erfordert eine Form von sudo (dh, führen Sie den Befehl als ein anderer Benutzer, aber nicht wechseln Benutzer). Ich muss tatsächlich auf root vor jeder anderen Aufgabe mit dem Befehl "Super su-root" wechseln. –

0

ansible wurde von der Verwendung sudo-the become generic privilege escalation method genau Übergang usecases wie diese zu unterstützen.

Sie müssen wahrscheinlich another become_method für Ihren super Befehl implementieren, oder bitten Sie das Ansible-Team, das für Sie zu tun.

+0

Ich glaube nicht, dass "wird" hier funktionieren wird. Von Ihrem Link: "Eskalationsmethode für Privilegien (Standard = sudo), gültige Auswahlmöglichkeiten: [sudo | su | pbrun | pfexec | doas]". Es scheint nicht, dass man dafür einen beliebigen Befehl setzen kann. – tubaguy50035

+0

Richtig, ich schlage vor, OP muss Unterstützung für ihren Befehl in ansible selbst implementieren. Jede Implementierung scheint nur ein paar ziemlich einfache Linien zu sein, und sie bauen bereits auf Quellenbasis auf. Obwohl es offensichtlich keine ideale Lösung ist, ist es vielleicht am einfachsten, mit ihrer Situation umzugehen. –

+0

Dies ist bereits möglich, indem '' an_exe' verwendet wird (was ein undokumentiertes Feature ist), aber das löst das Problem nicht, weil ich das "an" -Paradigma überhaupt nicht verwenden kann. Der Befehl, den ich habe, wird Benutzer wechseln, nicht Befehl als ein anderer Benutzer ausführen. –

Verwandte Themen