Ansible: Verwenden unterschiedlicher Sudo-Benutzer für unterschiedliche Hosts

Ansible: Verwenden unterschiedlicher Sudo-Benutzer für unterschiedliche Hosts

Habe vor Kurzem angefangen, Ansible zu verwenden. Wir haben Server, auf denen die Anwendung unter verschiedenen Benutzern eingerichtet ist, wie z. B. auf dem Server xyz.com, der Unix-Benutzer ist xyz_user und so weiter.

Im Fall von xyz.com:

ansible xyz.com -a 'command' -u xyz_user -K

Wie können wir den Sudo-Benutzer in der Ansible-Konfiguration so festlegen, dass automatisch Sudo für den für den Server definierten Benutzer ausgeführt wird?

Antwort1

Sie können die Ansible-Playbooks für diese Art von Dingen nutzen.

z.B

--- 
- hosts: host1:host2 
  user: user1 
  sudo: yes
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade 
- hosts: host3 
  user: ubuntu
  sudo: yes 
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade

Hoffe, es funktioniert für Sie :)

Antwort2

Ich würde empfehlen, Hostvariablen basierend auf den Inventar- oder Gruppenvariablen zu verwenden. Auf diese Weise können Sie den SSH-Benutzer pro Host oder pro Hostgruppe festlegen. Der Vorteil dieses Ansatzes besteht darin, dass er für Ihre Playbooks transparent ist. In den Playbooks müssen Sie sich dann nur um die Installation von Dingen kümmern und müssen nicht darauf zugreifen.

Ein Beispiel zum Festlegen des Benutzers nach Host und Gruppe:

[xyz]
www.xyz.com ansible_ssh_user=xyz_user

[abc]
www.abc.com

[abc:vars]
ansible_ssh_user=abc_user

Und hier ist die Dokumentation, die die Funktionsweise viel besser erklärt als ich:http://docs.ansible.com/intro_inventory.html

verwandte Informationen