Ich erstelle ein Playbook, das zuerst einen neuen Benutzernamen erstellt. Ich möchte dann "moretasks.yml" als den neuen Benutzer ausführen, den ich gerade erstellt habe. Derzeit stelle ich remote_user für jede Aufgabe ein. Gibt es eine Möglichkeit, dass ich es einmal für die gesamte Aufgabenstellung einstellen kann? Ich konnte anscheinend keine Beispiele dafür finden und auch keinen meiner Versuche, remote_user um Hilfe zu bringen.Set remote_user für Aufgaben in Ansible playbook, ohne es pro Aufgabe zu wiederholen
Unten ist main.yml:
---
- name: Configure Instance(s)
hosts: all
remote_user: root
gather_facts: true
tags:
- config
- configure
tasks:
- include: createuser.yml new_user=username
- include: moretasks.yml new_user=username
- include: roottasks.yml #some tasks unrelated to username.
moretasks.yml:
---
- name: Task1
copy:
src: /vagrant/FILE
dest: ~/FILE
remote_user: "{{newuser}}"
- name: Task2
copy:
src: /vagrant/FILE
dest: ~/FILE
remote_user: "{{newuser}}"
Ich dachte, sudo_user wäre der, der nur ausgeführt wird, wenn du eine sudo-Aktion ausführen musst? Ich möchte darauf hinweisen, dass die Benutzer, die ich erstelle, keine Sudoprivilegien haben. Alle Aktionen in "Moretasks" sind lokal zu Hause. Ist es immer noch angemessen (irreführend?), Den sudo_user-Ansatz zu verwenden? (Der Ansatz hat funktioniert) – Shark
Sie haben Recht, @Shark. In der Dokumentation sudo_user: Dies ist der Standardbenutzer für sudo, wenn --sudo-user nicht angegeben ist oder 'sudo_user' nicht in einer Ansible-Play-Box angegeben ist. Der Standardwert ist der logischste: "root". – Esteban
Beachten Sie, dass 'sudo' und' sudo_user' zugunsten von 'werden' und' werden_user' veraltet sind. http://docs.ansible.com/ansible/become.html#become – kkurian