
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