Ich habe die Frage bereits zum Stackoverflow gestellt, aber ich dachte mir, dass dies ein besserer Ort sein könnte, um eine Antwort zu erhalten: Ich möchte eine virtuelle Maschine mit Ubuntu 16 LTS unter Verwendung von Vagrant und Ansible (lokal) bereitstellen. Ein Teil der Bereitstellung besteht darin, einige Unity Launcher-Symbole für einen Benutzer hinzuzufügen und zu entfernen, der ebenfalls von demselben Skript erstellt wird. Das Skript wird vom vagrant
Benutzer gestartet . Nachdem ich einige verwandte Fragen durchgesehen hatte, versuchte ich Variationen von
dbus-launch --exit-with-session
vor dem Befehl gsettingsbecome_flags: '-i'
become_flags: '-H'
become_flags: '-E'
auf den folgenden grundlegenden ansible Befehl
- name: Remove Launcher Icons
command: gsettings set com.canonical.Unity.Launcher favorites "['application://org.gnome.Nautilus.desktop', 'application://firefox.desktop', 'application://gnome-terminal.desktop', 'application://atom.desktop', 'application://unity-control-center.desktop', 'unity://running-apps', 'unity://expo-icon', 'unity://devices']"
become: true
become_user: "{{ user }}"
Bisher kein Erfolg, ABER das Ausführen des Befehls als angemeldeter Benutzer funktioniert.
BEARBEITEN Mein bester Ansatz für eine Lösung wäre, ein Shell-Skript von ansible aus zu starten, anstatt die Änderung in ansible direkt vorzunehmen. Ich bin mir jedoch nicht sicher, wie es aussehen soll.